iMessage消息处理服务

一个用于读取iMessage、SMS和RCS消息的服务器,包括与Android用户的混合群聊,支持解码二进制消息体和合并重复聊天ID。

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

使用说明

iMessage MCP服务器

用于Claude Desktop的MCP服务器,可读取iMessages、SMS和RCS消息,包括与Android用户的混合群聊。

为什么存在

其他iMessage MCP连接器无法读取:

  • RCS消息 (较新的Android到iPhone消息)
  • 与Android用户进行群聊 (短信/彩信组)
  • 消息存储在 attributedBody 而不是纯文本

此服务器通过以下方式处理所有这些:

  • 查询短信、RCS和iMessage对话
  • 解码二进制 attributedBody blobs用于提取消息文本
  • 合并混合协议组中出现的重复聊天ID

特性

  • 列出所有对话(iMessage、SMS、RCS)
  • 按联系人姓名、电话号码或组名搜索
  • 读取任何对话类型的消息
  • 获取所有聊天记录中的最新消息
  • 正确处理iPhone/Android混合群聊

安装

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

使用Claude Desktop进行设置

  1. 打开克劳德桌面配置:

    ~/Library/Application Support/Claude/claude_desktop_config.json
    
  2. 添加服务器:

    {
      "mcpServers": {
        "imessage": {
          "command": "node",
          "args": ["/path/to/imessage-mcp-server/src/index.js"]
        }
      }
    }
    
  3. 授予对Claude Desktop的全磁盘访问权限:

    • 系统设置>隐私和安全>全磁盘访问
    • 添加克劳德桌面
  4. 重新启动克劳德桌面

使用示例

配置后,您可以向Claude询问以下问题:

  • “列出我最近的对话”
  • “搜索来自约翰的消息”
  • “读取工作组聊天中的消息”
  • “显示过去24小时的消息”

可用工具

工具 说明
list_conversations 列出所有上次活动时间的对话
search_conversations 按姓名、电话或组名搜索
read_messages 阅读特定对话中的消息
get_recent_messages 获取所有聊天记录中的最新消息

需求

  • macOS(在Sonoma/Sequoia上测试)
  • Node.js 18+
  • 带全磁盘访问的Claude桌面
  • 带有消息历史记录的消息应用程序

运作原理

服务器直接从macOS消息数据库读取(~/Library/Messages/chat.db).对于RCS和一些iMessage对话,消息文本存储在二进制文件中 attributedBody 字段而不是纯文本-此服务器对二进制格式进行解码以提取实际的消息内容。

许可证

麻省理工学院