关于 iMessage Query MCP Server
iMessage Query MCP Server 是一个运行在 macOS 上的 MCP 服务,让 LLM 能够安全地查询和分析本地 iMessage 数据库中的会话记录。项目基于 FastMCP 框架与 imessagedb 库构建,并使用 phonenumbers 对电话号码进行校验。
主要功能
- 01get_chat_transcript 工具查询指定号码的消息记录
- 02按日期范围过滤消息
- 03包含消息文本、时间戳与附件信息
- 04使用 phonenumbers 校验电话号码
- 05缺失附件文件的检测
适用场景
- 01让 LLM 汇总与某个联系人的历史对话
- 02按时间段检索 iMessage 会话内容
- 03分析会话中的附件记录
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 get_chat_transcript 工具,用于读取 iMessage 消息历史。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
iMessage Query MCP 服务
一个通过模型上下文协议(MCP)安全访问 iMessage 数据库的 MCP 服务。此服务使用 FastMCP 框架和 imessagedb 库构建,支持大模型查询和分析 iMessage 对话,并提供电话号码验证和附件处理功能。
📋 系统要求
- macOS(访问 iMessage 数据库所必需)
- Python 3.6+
📦 依赖项
安装所有必需的依赖项:
# Using pip
pip install -r requirements.txt
必需的软件包
- fastmcp:用于构建模型上下文协议服务的框架
- imessagedb:用于访问和查询 macOS 信息数据库的 Python 库
- phonenumbers:Google 的电话号码处理库,可用于正确验证和格式化号码
所有依赖项均列在 requirements.txt 中,便于安装。
📑 目录
🛠️ MCP 工具
该服务向大模型提供以下工具:
get_chat_transcript
获取指定电话号码的消息历史记录,可选择按日期筛选。包括:
- 消息文本和时间戳
- 附件信息(如有)
- 正确的电话号码验证
- 日期范围筛选
🚀 开始使用
克隆此仓库:
git clone https://github.com/hannesrudolph/imessage-query-fastmcp-mcp-server.git
cd imessage-query-fastmcp-mcp-server
📦 安装选项
你可以将此 MCP 服务安装到 Claude Desktop 或 Cline VSCode 插件中。选择最适合你需求的选项。
选项 1:安装到 Claude Desktop
使用 FastMCP 安装:
fastmcp install imessage-query-server.py --name "iMessage Query"
选项 2:安装到 Cline VSCode 插件
如需将此服务与 Cline VSCode 插件搭配使用:
- 在 VSCode 中,点击 Cline 插件侧边栏中的服务图标(☰)
- 点击“编辑 MCP 设置”按钮(✎)
- 将以下配置添加到设置文件中:
{
"imessage-query": {
"command": "uv",
"args": [
"run",
"--with",
"fastmcp",
"fastmcp",
"run",
"/path/to/repo/imessage-query-server.py"
]
}
}
将 /path/to/repo 替换为克隆此仓库所在位置的完整路径(例如,/Users/username/Projects/imessage-query-fastmcp-mcp-server)
🔒 安全功能
- 对 iMessage 数据库进行只读访问
- 使用 phonenumbers 库验证电话号码
- 安全处理附件,并检测缺失文件
- 验证日期范围
- 禁止输出进度信息,以确保 JSON 响应整洁
📚 开发文档
此仓库包含用于开发的文档文件:
dev_docs/imessagedb-documentation.txt:包含有关 iMessage 数据库结构和 imessagedb 库功能的全面文档。
开发功能时,可将此文档作为上下文;也可配合大模型辅助开发。
⚙️ 环境变量
无需设置环境变量,因为服务会自动在 macOS 默认位置查找 iMessage 数据库。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。