iMessages MCP服务器
用于与macOS iMessages交互的模型上下文协议(MCP)服务器。此服务器允许LLM直接从您的Mac读取、搜索和发送iMessage。
特性
- 读取消息:从任何联系人或聊天室获取最新消息。
- 搜索:搜索您的整个iMessage历史记录。
- 发送消息:使用AppleScript发送iMessage。
- 健康检查:内置权限诊断(全磁盘访问和自动化)。
- 联系人集成:按联系人姓名或句柄查找聊天记录。
- TOON格式:使用面向令牌的对象表示法升级输出,以提高令牌效率。
📖 文档
有关详细指南,请参阅以下内容:
- 用户手册:高级使用指南。
- 入门指南:详细的设置和安装。
- 建筑与设计:技术深潜。
- 替代后端:IMCore和协议后端研究。
- MCP协议:MCP实施细节。
- 数据库层:SQLite和chat.db内部。
- AppleScript集成:本地消息传递逻辑。
- 部署:二进制和Docker指南。
- api参考:工具和资源的完整列表。
- 故障排除:常见问题和修复。
TOON格式输出
此服务器已升级为使用 TOON(面向令牌的对象表示法)v3.0 所有工具输出和资源的格式。此格式旨在最大限度地提高大型语言模型(LLM)通信中的令牌效率,与标准JSON相比,令牌开销最多可减少50%。
- 媒体类型:
text/toon; charset=utf-8 - 规格: TOON v3.0
所有表格数据(消息、聊天、联系人)都以TOON高效的表格格式返回。
部署方法
1.单二进制(MacOS)-建议易于使用
我们为macOS(英特尔和苹果硅)提供预构建的单个二进制文件。
建立自己的:
npm run build:binary二进制文件将在 bin/ 目录。
2.Docker(容器化)
非常适合隔离环境。请注意,您必须授予Docker Desktop的全磁盘访问权限。
docker-compose up -d3.手册(Node.js)
npm install
npm run build
npm start🚀 用例和示例
iMessages MCP服务器将您的iMessage历史记录转化为AI的强大知识库。以下是一些使用方法:
1.自动摘要
问你的AI: *“总结我妈妈最后10条信息。”* 或 *“关于周末旅行的小组讨论结果如何?”*
2.个人助理
- *“起草对David关于项目更新的最后一条消息的回复。”*
- *“查找Sarah上周二发给我的地址。”*
- *“提醒我我告诉迈克我今天要做什么。”*
3.通知和警报(通过脚本)
将MCP工具集成到自动化工作流程中,每天晚上通知您特定的关键字或总结您一天的对话。
4.可搜索档案
- *“在我的聊天记录中找到所有提到‘比特币’的地方。”*
- *“显示约翰上个月发送的所有照片/附件。”* (使用
get_attachment_path)
______________________________________________________________________
🛠 配置指南
1.环境变量
您可以使用环境变量自定义服务器行为:
| 变量 | 描述 | 默认值 |
|---|---|---|
CHAT_DB_PATH | iMessage的完整路径 chat.db 文件。 | ~/Library/Messages/chat.db |
DEBUG | 启用详细日志记录以进行故障排除。 | false |
2.连接到MCP客户端
克劳德桌面版
将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"imessage": {
"command": "/path/to/node",
"args": ["/path/to/imessage-mcp/dist/index.js"]
}
}
}光标/VS代码
如果使用MCP扩展,请将命令指向 node 可执行文件及其参数 index.js 路径。
______________________________________________________________________
权限要求
此服务器在macOS上需要两个主要权限:
- 全磁盘访问:需要读取位于以下位置的iMessage数据库
~/Library/Messages/chat.db.
- 首选 System Settings -> Privacy & Security -> Full Disk Access. - 添加您的终端(例如终端、iTerm2)、IDE(例如光标、VS代码)或 生成二进制.
- 自动化:需要通过messages应用程序发送消息。
- 首选 System Settings -> Privacy & Security -> Automation. - 确保您的终端/IDE/Binary具有控制权限 Messages.
故障排除
二进制执行问题
如果二进制文件运行失败,出现“权限被拒绝”或“中止”错误:
- 确保你已经跑步了
chmod +x bin/imessage-mcp-arm64. - 检查二进制文件是否已签名:
codesign -vvv bin/imessage-mcp-arm64. - 如果直接在MCP客户端(如Claude Desktop)中使用二进制文件,请确保指定了完整路径。
本机模块不匹配
二进制构建使用 pkg 如果主机的Node.js版本与目标不匹配,则本地模块有时可能会出现问题。如果你看到 NODE_MODULE_VERSION 错误,建议使用 码头工人 或 手册 部署方法。
配置
CHAT_DB_PATH:(可选)自定义路径chat.db。默认为标准macOS路径。DEBUG:(可选)设置为true查看原始SQL查询和AppleScript日志。
发展
npm run dev:首先使用热重新加载tsx.npm test:使用以下命令运行单元测试vitest.
支持项目
这座连接Mac和人工智能世界的桥梁是用激情建造和维护的。如果此工具为您节省了数小时的手动消息传递时间,或者使您的人工智能工作流程取得了突破,请考虑为其开发提供动力。
您的支持确保我们能够跟上macOS更新,维护安全补丁,并继续添加TOON优化等高价值功能。
- ☕ 一次性支持: 给我买杯咖啡
- 🚀 会员资格:加入支持者圈子,获得优先功能请求和直接实施支持。
贡献者
我们欢迎社区的贡献!无论是bug修复、新功能还是改进的文档,你的帮助都是无价的。
- 首席开发人员: 安全
- 社区:加入我们的讨论,帮助塑造本地iMessage MCP的未来!
许可证
ISC
