关于 Apple Messages
Apple Messages 是面向 macOS 的 MCP 服务,可访问消息历史记录,并通过 Messages.app 发送或回复消息。它适用于专注于 Messages 的工作流,并将历史记录访问与消息自动化的权限分开处理。
主要功能
- 01分页列出对话
- 02搜索消息并查看附件元数据
- 03发送和回复消息
- 04提供未读及最近对话资源
- 05权限检查与恢复指南
- 06面向受限客户端的工具发现
适用场景
- 01查看 macOS 上的消息历史记录
- 02搜索多个对话中的消息
- 03通过 Messages.app 发送或回复消息
MCP 相关
它向 MCP 客户端提供 Messages 历史记录、搜索、对话和发送功能。默认使用 stdio,也支持 Streamable HTTP。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
15收录的工具列表 · 更新于 1 天前
此工具无需参数。
详细介绍
Apple Messages MCP
用于 macOS 上 Apple Messages 的 MCP 服务。
可通过 Messages.app 访问消息历史记录、搜索对话并发送消息。查看历史记录需要“完全磁盘访问权限”,发送消息需要“自动化”访问权限。
适用场景
- 仅使用 Messages 的工作流
- 无需使用一体化服务即可查看消息历史记录和发送消息
- 按应用更严格地隔离权限
功能
- 分页列出对话
- 搜索消息并查看附件元数据
- 发送和回复消息
- 为受上下文限制的客户端提供工具发现辅助功能
search_tools和get_tool_info - 未读和最近对话资源
- 区分历史记录访问故障与自动化故障的运行状况检查
- 权限恢复:
messages_permission_guide、messages_recheck_permissions
在此 Mac 上安装
从克隆的仓库安装
git clone https://github.com/JonathanRReed/Apple-MCPs.git
cd Apple-MCPs
uv sync --all-packages
这会构建一个工作区环境,其中包含每个服务的入口点,位于 .venv/bin 中(例如 .venv/bin/apple-messages-mcp)。你也可以将 AppleMessages-MCP/start.sh 指定给 MCP 客户端;该脚本优先使用 uv run,若不可用则回退到普通的 venv 引导方式(需要 Python 3.11 或更高版本)。
在 AI Agent 中安装
通用 MCP 客户端配置
{
"mcpServers": {
"apple-messages": {
"command": "uvx",
"args": ["apple-messages-mcp"],
"env": {
"APPLE_MESSAGES_MCP_SAFETY_MODE": "full_access"
}
}
}
}
如果是从克隆的仓库运行,请将 /path/to/Apple-MCPs/AppleMessages-MCP/start.sh 用作命令,并将 args 留空。
Claude Code 示例
claude mcp add --transport stdio --scope user apple-messages -- uvx apple-messages-mcp
--scope user 会使该服务在每个项目中都可用。若要通过仓库中的 .mcp.json 仅与该仓库共享,请使用 --scope project。
传输方式
stdio 是默认且推荐的传输方式。设置 APPLE_MESSAGES_MCP_TRANSPORT=streamable-http(可选设置 APPLE_MESSAGES_MCP_HOST 和 APPLE_MESSAGES_MCP_PORT)即可改用 Streamable HTTP 服务。
macOS 权限
- 发送和回复消息需要 Messages 的“自动化”访问权限
- 从
~/Library/Messages/chat.db读取历史记录、搜索消息和获取附件元数据需要“完全磁盘访问权限” messages_health通过NSRunningApplication检查运行状态,不会发送 Apple Events,也不会请求“自动化”访问权限。Messages 已关闭时,会报告automation_access_status: "not_probed";Messages 正在运行时,会报告"unknown"。这两种情况都不表示权限遭到拒绝。- 未验证授权时,现有的
automation_access和发送能力布尔值均为 false。用户已授权操作时,明确调用的发送工具仍可使用。automation_access_status和automation_access_error_code可区分跳过检查、授权状态未知、权限被拒绝和命令执行失败。明确调用发送或回复仍会检查授权,并可能打开 Messages 或显示 macOS 权限提示。 - 诊断子进程的超时时间为 5 秒。明确调用自动化操作的超时时间为 30 秒;发送超时后,重试前请先检查消息是否已送达。
启动清单
- 将
uvx apple-messages-mcp(或克隆仓库中的AppleMessages-MCP/start.sh)添加到 MCP 客户端 - 重新加载或重新连接客户端,以便将 Messages 工具集加载到上下文中
- 首先调用
messages_health - 如果任一权限未开放,请调用
messages_permission_guide - 更改 macOS 权限后,请调用
messages_recheck_permissions
提示词说明
tools/list会返回完整的 Messages 工具集。上下文受限的客户端可以先使用search_tools,再使用get_tool_info获取所需的 Messages 工具信息。- 如果用户提到某个人,发送或回复前请先通过 Contacts 确认收件人。
- 如果 Contacts 返回多个匹配结果,请确认用户指的是哪一位。
messages_send_message、messages_send_attachment和messages_reply_in_conversation可选接受service_name参数,值为iMessage、SMS或RCS。不指定时,新消息会通过 iMessage 发送,一对一回复则使用会话中最新消息的服务类型:SMS 会话继续使用 SMS,RCS 会话使用 RCS,若不可用则回退到 SMS。系统会选择该服务类型下第一个已启用的 Messages 账户。SMS 和 RCS 通过配对的 iPhone 发送,且需要为这台 Mac 开启“短信转发”。如果没有匹配的账户,这些工具会返回SERVICE_UNAVAILABLE,而不会发送消息;因此,在未开启“短信转发”的 Mac 上回复 SMS 会话会失败,除非你重试时将service_name设为iMessage,或开启“短信转发”。RCS 需要 macOS 15 或更高版本;在较旧的 macOS 上,RCS 会话会回退到 SMS。群组回复始终使用群组现有的服务类型,如果指定了不同的service_name,则会被拒绝并返回INVALID_INPUT。响应中的service_name表示实际使用的服务类型。
相关内容
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。