这是一个通过模型上下文协议(MCP)提供对您的iMessage数据库安全访问的MCP服务器。该服务器基于FastMCP框架和imessagedb库构建,使大型语言模型能够查询和分析iMessage对话,并进行适当的电话号码验证和自动macOS权限处理。
此项目使用uv进行快速可靠的Python包管理。首先安装它:
# 使用Homebrew安装uv(推荐)
brew install uv
# 或者使用官方安装程序
curl -LsSf https://astral.sh/uv/install.sh | sh
脚本会自动管理其依赖项,无需单独安装!依赖项包括:
当脚本通过uv运行时,所有依赖项都会自动安装。
服务器向大型语言模型暴露以下工具:
检索特定电话号码的消息历史记录,可选日期过滤。
参数:
phone_number(必需):任何形式的电话号码(建议使用E.164格式)start_date(可选):ISO格式的起始日期(YYYY-MM-DD)end_date(可选):ISO格式的结束日期(YYYY-MM-DD)特性:
克隆仓库:
git clone https://github.com/hannesrudolph/imessage-query-fastmcp-mcp-server.git
cd imessage-query-fastmcp-mcp-server
您可以将此MCP服务器安装在Claude Desktop、Cline VSCode插件或其他MCP客户端中。选择最适合您需求的选项。
找到您的Claude Desktop配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json添加服务器配置:
{
"mcpServers": {
"imessage-query": {
"command": "/full/path/to/imessage-query-server.py"
}
}
}
替换路径为克隆仓库的完整路径(例如:/Users/username/Projects/imessage-query-fastmcp-mcp-server/imessage-query-server.py)
完全重启Claude Desktop(Cmd+Q,然后重新启动)
要与Cline VSCode插件一起使用此服务器:
{
"imessage-query": {
"command": "/full/path/to/imessage-query-server.py"
}
}
对于其他MCP客户端,使用直接脚本路径作为命令:
/full/path/to/imessage-query-server.py
脚本的shebang(#!/usr/bin/env -S uv run --script)会自动处理依赖项管理。
注意:这种简化配置取代了之前的FastMCP安装方法。现在脚本是自包含的,并通过
uv管理自己的依赖项。
此服务器需要完全磁盘访问权限以读取iMessage数据库。服务器包含智能权限检测,并将引导您完成设置过程。
首次使用服务器时,它将:
如果自动检测不起作用,请按照以下步骤操作:
/Applications/Claude.app/Applications/Cursor.app/Applications/Visual Studio Code.app此服务器仅需读取访问您的iMessage数据库。它不能修改、删除或发送消息。
仓库包含全面的开发文档:
dev_docs/imessagedb-documentation.txt:关于iMessage数据库结构和imessagedb库能力的完整文档dev_docs/fastmcp-documentation.txt:FastMCP框架详情和MCP工具开发dev_docs/mcp-documentation.txt:模型上下文协议规范这些文档在开发功能时提供背景信息,并可用于辅助开发。
| 变量 | 描述 | 默认值 |
|---|---|---|
SQLITE_DB_PATH | 自定义iMessage数据库路径 | ~/Library/Messages/chat.db |
服务器会自动定位默认macOS位置的iMessage数据库。只有在自定义数据库位置时才需要此环境变量。
如果您需要使用自定义数据库路径:
export SQLITE_DB_PATH="/path/to/custom/chat.db"
直接使用mcptools(github.com/f/mcptools)测试服务器:
# 导航到仓库目录
cd /path/to/imessage-query-fastmcp-mcp-server
# 列出可用工具
mcp tools ./imessage-query-server.py
# 测试工具调用
mcp call get_chat_transcript ./imessage-query-server.py -p '{"phone_number": "+1234567890"}'
脚本会在首次运行时通过uv自动处理依赖项安装。
"❌ 需要完全磁盘访问权限"
"未找到Messages数据库"
"无效电话号码"
遇到问题时: