苹果消息mcp
一 主控程序 向Claude或任何兼容MCP的客户端公开Apple Messages(iMessage/SMS)的服务器。
仅限macOS --使用AppleScript/JXA和Messages SQLite数据库。
特性
| 工具 | 描述 | 需要数据库吗? |
|---|---|---|
list_chats | 列出最近与参与者姓名的对话 | 否 |
get_chat_participants | 获取特定聊天的参与者 | 否 |
send_message | 向手机、电子邮件或聊天室发送iMessage/SMS | 否 |
get_messages | 从聊天中读取消息历史记录(按ID或联系人) | 是 |
search_messages | 在所有邮件中进行全文搜索 | 是 |
get_recent_messages | 获取所有聊天记录中的N条最新消息 | 是 |
get_attachments | 列出聊天中的附件 | 是 |
check_db_access | 检查消息数据库是否可访问 | 否 |
需求
- macOS
- Python 3.10+
- 主控程序 (
pip install mcp) - 配置了iMessage帐户的Apple Messages应用程序
全磁盘访问(用于邮件读取)
读取消息历史查询的工具 ~/Library/Messages/chat.db 直接,这需要 完全磁盘访问 对于主机进程。
要启用:
- 打开 系统设置→ 隐私和安全→ 完全磁盘访问
- 点击“+”并添加您的终端(terminal.app、iTerm2、VS Code等)
- 重新启动终端
在没有全磁盘访问的情况下, list_chats, get_chat_participants,以及 send_message 仍然有效——它们使用AppleScript,只需要自动化访问。
安装
git clone
cd apple-messages-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt用法
克劳德代码(CLI)
添加 ~/.claude/settings.json:
{
"mcpServers": {
"apple-messages": {
"command": "/path/to/apple-messages-mcp/.venv/bin/python",
"args": ["/path/to/apple-messages-mcp/server.py"]
}
}
}克劳德桌面
添加 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"apple-messages": {
"command": "/path/to/apple-messages-mcp/.venv/bin/python",
"args": ["/path/to/apple-messages-mcp/server.py"]
}
}
}VS代码(副本)
添加 .vscode/mcp.json 或用户设置:
{
"servers": {
"apple-messages": {
"command": "/path/to/apple-messages-mcp/.venv/bin/python",
"args": ["/path/to/apple-messages-mcp/server.py"]
}
}
}例子
列出您最近的聊天记录:
“显示我最近的iMessage对话”
阅读联系人的消息:
“显示我与约翰·史密斯的最后20条消息”
搜索所有邮件:
“在我的消息中搜索‘周五晚餐’”
发送消息:
“发送‘在我的路上!’至+15551234567”
备注
- 这
send_message工具 实际发送消息 --AI将在发送前进行确认。 - 消息时间戳以UTC为单位。
- 群聊由其聊天ID标识(例如。
iMessage;+;chat12345).个人聊天使用以下格式iMessage;-;+15551234567. - 服务器在中打开邮件数据库 只读 模式。它永远不会修改您的消息历史记录。
- Apple Messages必须经过授权才能在 系统设置→ 隐私和安全→ 自动化.
