iMessage连接服务

一个将Claude Desktop连接到macOS上的iMessage的MCP服务器,支持读取对话、搜索消息、发送文本和访问附件。

  • by kamrenkennedy
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 kamrenkennedy/imessage-mcp

使用说明

imessage mcp

一个MCP服务器,将Claude Desktop连接到macOS上的iMessage——阅读对话、搜索消息、发送文本和访问附件。

先决条件

授予完整磁盘访问权限

  1. 打开 系统设置→ 隐私和安全→ 全磁盘访问
  2. 添加 克劳德 添加到列表并启用它
  3. 重新启动克劳德桌面

安装

1.添加到Claude桌面配置

打开 ~/Library/Application Support/Claude/claude_desktop_config.json 并添加:

{
  "mcpServers": {
    "imessage": {
      "command": "npx",
      "args": ["-y", "@kamk95/imessage-mcp"]
    }
  }
}

2.重新启动克劳德桌面


手动安装(可选)

如果您更喜欢从源代码运行:

git clone https://github.com/kamrenkennedy/imessage-mcp.git
cd imessage-mcp
npm install

然后改用此配置:

{
  "mcpServers": {
    "imessage": {
      "command": "node",
      "args": ["/absolute/path/to/imessage-mcp/index.js"]
    }
  }
}

工具

get_conversations

列出最近的iMessage对话。

参数 类型 说明
limit number 要返回的最大对话数(默认值:20)

get_messages

从特定对话中获取消息。

参数 类型 说明
chat_id 字符串 必修的。 聊天ID来自 get_conversations
limit number 要返回的最大消息数(默认值:50)

search_messages

按文本搜索所有邮件。

参数 类型 说明
query 字符串 必修的。 要搜索的文本
limit number 要返回的最大结果数(默认值:20)

get_chat_participants

让参与者参与对话。

参数 类型 说明
chat_id 字符串 必修的。 聊天ID来自 get_conversations

send_message

发送iMessage或SMS。

参数 类型 说明
recipient 字符串 必修的。 电话号码、电子邮件或联系人姓名
message 字符串 必修的。 要发送的文本

get_attachments

列出对话中的附件。

参数 类型 说明
chat_id 字符串 必修的。 聊天ID来自 get_conversations
limit number 要返回的最大附件数(默认值:20)

save_attachment

将邮件中的附件保存到磁盘。

参数 类型 说明
attachment_id 字符串 必修的。 附件ID来自 get_attachments
destination 字符串 必修的。 文件应保存的完整路径

备注

  • 消息直接从以下位置读取 ~/Library/Messages/chat.db 使用SQLite——读取不需要AppleScript
  • 通过AppleScript发送 osascript
  • 联系人姓名会自动从通讯簿中解析出来
  • 美国电话号码被标准化(从11位数字中去掉前导1)