使用说明
苹果消息mcp
一 主控程序 向Claude或任何兼容MCP的客户端公开Apple Messages(iMessage/SMS)的服务器。
MCP本身具有 不依赖macOS --它是一个与单独的Python客户端通信的瘦Python客户端 imessage-api 在Mac上运行的REST服务器。因此,这个MCP可以在Linux、容器或Python运行的任何地方运行,只要它可以到达API主机。
特性
| 工具 | 说明 |
|---|---|
list_chats |
列出最近与参与者姓名的对话 |
get_chat_participants |
获取特定聊天的参与者 |
send_message |
向手机、电子邮件或聊天室发送iMessage/SMS |
send_attachment |
发送文件附件 |
get_messages |
从聊天中读取消息历史记录(按ID或联系人) |
search_messages |
在所有邮件中进行全文搜索 |
get_recent_messages |
获取所有聊天记录中的N条最新消息 |
get_attachments |
列出聊天中的附件 |
fetch_attachment |
按id下载附件并将其保存在本地 |
check_db_access |
检查API后端是否可访问并通过身份验证 |
需求
- Python 3.10+
- 主控程序 (
pip install mcp) - 跑步
imessage-api在Mac上,可以从该主机访问
安装
git clone <repo-url>
cd apple-messages-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
配置
启动服务器时设置这些环境变量:
IMESSAGE_API_URL="http://<mac-host>:3001"
IMESSAGE_API_PASSWORD="<the password that matches the API's AUTH_PASSWORD_HASH>"
如果缺少其中任何一个,每个工具都会返回一个明确的错误。
克劳德代码(CLI)
添加 ~/.claude.json (或 ~/.claude/settings.json):
{
"mcpServers": {
"apple-messages": {
"type": "stdio",
"command": "/path/to/apple-messages-mcp/.venv/bin/python",
"args": ["/path/to/apple-messages-mcp/server.py"],
"env": {
"IMESSAGE_API_URL": "http://ng-macbook-pro.lan:3001",
"IMESSAGE_API_PASSWORD": "your-password"
}
}
}
}
克劳德桌面版
添加 ~/Library/Application Support/Claude/claude_desktop_config.json 形状相同。
VS代码(副本)
添加 .vscode/mcp.json 或具有相同形状的用户设置 "servers".
例子
列出您最近的聊天记录:
“显示我最近的iMessage对话”
阅读联系人的消息:
“显示我与约翰·史密斯的最后20条消息”
搜索所有邮件:
“在我的消息中搜索‘周五晚餐’”
发送消息:
“发送‘在我的路上!’至+15551234567”
备注
send_message和send_attachment实际发送 --AI将首先确认。- 消息时间戳以UTC为单位。
- 群聊使用ID,如
any;+;<guid>;1:1聊天使用iMessage;-;+15551234567或SMS;-;+15551234567当发送到现有线程时,最好使用完整的聊天ID,这样消息才能进入正确的对话(和正确的服务)。 - MCP只读取所有写入(
/send)通过API服务器,这是唯一接触的进程Messages.app或chat.db.