消息服务MCP

一个将Apple Messages(iMessage/SMS)暴露给Claude或任何MCP兼容客户端的MCP服务器,可在任何运行Python的环境中运行。

  • by xbenng
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 xbenng/apple-messages-mcp

使用说明

苹果消息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后端是否可访问并通过身份验证

需求

安装

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.