苹果MCP
适用于macOS的苹果原生MCP服务器——将任何AI代理变成Siri应该成为的样子。
该存储库通过 模型上下文协议 (MCP)。你的人工智能助手可以使用结构化工具来处理你的数据——创建提醒、发送消息、查看日历、搜索邮件、管理文件、获取路线——而一切都留在你已经使用的本地应用程序中。
MCP为使用Apple应用程序提供了三种原语:
- 工具 --创建提醒或发送消息等操作
- 资源 --只读快照,如最近的笔记或今天的提醒
- 提示 --可重复使用的工作流程,用于规划日常生活等常见任务
一切都发生在你的Mac上。你的数据会保留在苹果的应用程序中。
项目文档
启动文档
服务器
- 苹果工具MCP,推荐。一个统一的服务器,用于邮件、日历、提醒、消息、联系人、笔记、快捷方式、文件、系统和地图。
- 苹果文件MCP,用于在允许的根目录内进行安全文件、查找器相邻和iCloud Drive工作流。
- 苹果系统MCP,适用于最前端的应用程序、电池、剪贴板、真实的Focus支持元数据、应用程序启动上下文、与助手相关的macOS设置读写以及有界的GUI回退自动化。
- 苹果地图MCP,用于地点搜索、旅行估算和Apple Maps链接。
- 苹果邮件MCP,仅用于邮件工作流。
- 苹果日历,仅用于日历工作流。
- 苹果提醒MCP,用于任务和提醒工作流。
- 苹果消息MCP,用于iMessage和消息工作流。
- 苹果联系人MCP,用于联系人和收件人解析工作流。
- 苹果笔记MCP,用于笔记和知识工作流程。
- 苹果快捷方式MCP,用于从代理运行Apple Shortcuts。
使用哪一个
苹果工具MCP (推荐)--一个涵盖所有内容的服务器:邮件、日历、提醒、消息、联系人、笔记、快捷方式、文件、系统和地图。包括其他功能,如保存的默认值、每个联系人的路由首选项、线程感知的邮件助手、撤消支持、真实的Focus上下文、Finder感知的文件工作流和iCloud Drive感知。
独立服务器 --如果你想要更严格的边界或更简单的权限,请选择一个:
- 苹果文件MCP, 苹果系统MCP, 苹果地图MCP 用于集中工作流程
- 苹果邮件MCP, 苹果日历, 苹果提醒MCP, 苹果消息MCP, 苹果联系人MCP, 苹果笔记MCP, 苹果快捷方式MCP 用于单个应用程序访问
代理路由
使用这些服务器的一些提示:
tools/list故意最小化。使用search_tools要发现工具,那么get_tool_info仅在需要时加载完整的模式和示例。- 在向某人发送消息时,始终先运行“联系人”,然后选择“消息”或“邮件”。
- 当用户提到对话时,使用邮件线程帮助程序。
- 提醒用于到期项目,注释用于参考材料,日历用于预定时间。
- 当邮件必须从特定身份发送时,请传入确切的发件人电子邮件
from_account. - 代码模式客户端可以在中使用生成的包装器表面
generated/tool_wrappers/python而不是将每个工具模式加载到模型上下文中。 - 有关应用程序特定的详细信息,请参阅独立的README。
搜索第一个发现
已发布的Apple MCP服务器针对搜索感知客户端进行了优化:
tools/list只暴露一个总是表面上的契约,如健康检查、权限指导、及时回退,search_tools,以及get_tool_infosearch_tools按名称、描述、别名和域标记查找延迟工具get_tool_info仅在客户端需要时加载一个延迟工具的完整模式和示例- 直接的
call_tool仍然适用于延迟工具,即使它们没有包含在初始工具中tools/list
这将使默认上下文保持较小,同时保留完整的工具曲面。
代码模式包装器
该仓库还为代码执行客户端提供生成的工件:
generated/tool_catalogs,每台服务器导出可搜索的工具元数据generated/tool_wrappers/python,为延迟的工具调用生成Python包装器
当您希望在不将整个MCP曲面加载到模型上下文窗口的情况下发现和执行Anthropic样式的代码模式时,请使用这些。
看 docs/code-mode.md 用于包装器布局、客户端界面、结果解析和推荐的工作流。
在这台Mac上安装
Recommended, install the all-in-one server
cd /path/to/Apple-MCPs/Apple-Tools-MCP
./start.shstart.sh 根据需要启动和修复本地虚拟环境,并在需要时重新安装 requirements.txt 更改并重新启动MCP服务器 stdio.
Install every package into one shared environment
cd /path/to/Apple-MCPs
bash scripts/install_all.sh这创建了一个共享的虚拟环境,并安装了每个独立的软件包 Apple-Tools-MCP 当您想要一个可以运行任何服务器而不依赖兄弟源路径导入的环境时,请使用此选项。安装的入口点落地 .venv/bin例如 .venv/bin/apple-tools-mcp.
Install one standalone server instead
例子:
cd /path/to/Apple-MCPs/AppleMessages-MCP
./start.sh每个服务器文件夹都遵循相同的模式:
manifest.jsonstart.shserver.pyREADME.mdsrc/tests/
在AI代理中安装
Generic MCP client, stdio config
大多数支持本地的MCP客户端 stdio 服务器可以直接指向服务器 start.sh.
一体式服务器示例:
{
"mcpServers": {
"apple-tools": {
"command": "/path/to/Apple-MCPs/Apple-Tools-MCP/start.sh",
"args": [],
"env": {
"APPLE_MAIL_MCP_SAFETY_PROFILE": "full_access",
"APPLE_CALENDAR_MCP_SAFETY_MODE": "safe_manage",
"APPLE_REMINDERS_MCP_SAFETY_MODE": "safe_manage",
"APPLE_FILES_MCP_ALLOWED_ROOTS": "/Users/you/Desktop,/Users/you/Documents,/Users/you/Downloads,/Users/you/Library/Mobile Documents/com~apple~CloudDocs",
"APPLE_FILES_MCP_SAFETY_MODE": "safe_manage",
"APPLE_SYSTEM_MCP_SAFETY_MODE": "safe_manage",
"APPLE_CONTACTS_MCP_SAFETY_MODE": "safe_manage",
"APPLE_NOTES_MCP_SAFETY_MODE": "full_access",
"APPLE_MESSAGES_MCP_SAFETY_MODE": "full_access",
"APPLE_SHORTCUTS_MCP_SAFETY_MODE": "full_access"
}
}
}
}对于发射质量助理行为,请使用中显示的助理级安全设置 苹果工具MCP/README.md 而不是空的 env 块。
独立服务器示例:
{
"mcpServers": {
"apple-reminders": {
"command": "/path/to/Apple-MCPs/AppleReminders-MCP/start.sh",
"args": [],
"env": {
"APPLE_REMINDERS_MCP_SAFETY_MODE": "safe_manage"
}
}
}
}Claude Code example
添加一体化服务器:
claude mcp add --transport stdio --scope project \
apple-tools \
-- /path/to/Apple-MCPs/Apple-Tools-MCP/start.sh添加独立服务器:
claude mcp add --transport stdio --scope project \
apple-notes \
-- /path/to/Apple-MCPs/AppleNotes-MCP/start.sh启动检查表
- 启动服务器:
./start.sh - 添加
start.shMCP客户端的路径 - 重新连接客户端,以便服务器加载
- 调用健康工具以验证其是否正常工作
- 如果权限失败,请调用权限指南工具
- 修复权限后,调用复查工具(或
shortcuts_refresh_state快捷方式) - 不要处理贝壳,
curl当套件声称本地MCP支持该功能时,UI抓取或外部API作为传递结果 - 对于地图,通行证需要本地Apple Maps MCP成功
- 对于焦点和通知,传递需要真实的MCP输出。不要发明该套件实际上没有公开的活动焦点状态或通知中心历史记录。
协议验证
使用 stdio 用于正常的本地代理设置。苹果工具MCP也支持 streamable-http 用于协议验证和托管客户端。
针对Apple Tools MCP运行完整的官方活动服务器一致性套件:
cd /path/to/Apple-MCPs/Apple-Tools-MCP
APPLE_AGENT_MCP_TRANSPORT=streamable-http \
APPLE_AGENT_MCP_PORT=8765 \
APPLE_AGENT_MCP_CONFORMANCE_MODE=1 \
./start.sh在另一个shell中:
npx -y @modelcontextprotocol/conformance server \
--url http://127.0.0.1:8765/mcp \
--suite active在所有已发布的服务器上运行轻量级的Inspector烟雾检查:
cd /path/to/Apple-MCPs
bash scripts/inspector_smoke.sh该存储库还包括用于两次签入的GitHub操作 原球茎-ci.yml.
健康和恢复工具
| 服务器 | 运行状况工具 | 权限或恢复工具 |
|---|---|---|
| 苹果工具MCP | apple_health | apple_permission_guide, apple_recheck_permissions |
| 苹果邮件MCP | mail_health | mail_permission_guide, mail_recheck_permissions |
| 苹果日历 | calendar_health | calendar_permission_guide, calendar_recheck_permissions |
| 苹果提醒MCP | reminders_health | reminders_permission_guide, reminders_recheck_permissions |
| 苹果消息MCP | messages_health | messages_permission_guide, messages_recheck_permissions |
| 苹果联系人MCP | contacts_health | contacts_permission_guide, contacts_recheck_permissions |
| 苹果笔记MCP | notes_health | notes_permission_guide, notes_recheck_permissions |
| 苹果快捷方式MCP | shortcuts_health | shortcuts_permission_guide, shortcuts_refresh_state |
| 苹果文件MCP | files_health | files_permission_guide |
| 苹果系统MCP | system_health | system_permission_guide |
| 苹果地图MCP | maps_health | maps_permission_guide |
macOS权限
不同的Apple应用程序需要不同的权限:
| 服务器 | macOS可能会要求什么 |
|---|---|
| Apple Mail | 自动访问邮件 |
| Apple日历 | 日历访问 |
| Apple提醒 | 提醒访问 |
| Apple Messages | 自动访问Messages,以及历史记录的全磁盘访问 |
| Apple联系人 | 联系人访问 |
| Apple Notes | 自动访问Notes |
| 苹果快捷方式 | 通常没有单独的隐私提示 |
| Apple文件 | 没有隐私提示,访问受到配置的允许根的限制 |
| Apple系统 | 某些操作可能会触发系统事件、辅助功能或自动化提示 |
| Apple Maps | 没有隐私提示,但本地Swift助手编译需要Xcode命令行工具 |
回购布局
Apple-Tools-MCP/,统一服务器AppleFiles-MCP/,文件AppleSystem-MCP/,系统AppleMaps-MCP/,地图AppleContacts-MCP/,联系人AppleMail-MCP/,邮件Apple-Calendar-MCP/,日历AppleReminders-MCP/,提醒AppleMessages-MCP/,消息AppleNotes-MCP/,注意事项AppleShortcuts-MCP/,快捷方式SharedAppleBridge/,共享EventKit支持的服务器使用的本机网桥代码.build/,本地助手生成输出
备注
- 此套件适用于macOS。
- Apple Messages历史记录访问仍需要完全磁盘访问。
- 统一服务器文件夹为
Apple-Tools-MCP. - 日历服务器文件夹为
Apple-Calendar-MCP. - Apple Files的访问权限仅限于根目录
APPLE_FILES_MCP_ALLOWED_ROOTS. - Apple系统写入操作的范围可以用
APPLE_SYSTEM_MCP_SAFETY_MODE. - Apple Maps依赖于本地Swift助手和Xcode命令行工具进行搜索和导航。
- Apple Tools MCP可以在
~/.apple-tools-mcp/preferences.json,或路径从APPLE_AGENT_MCP_STATE_FILE. - Apple Tools MCP还将最近的助手操作存储在
~/.apple-tools-mcp/actions.json用于审核和撤消工作流。 - Apple Tools MCP现在将文件、系统和地图与特定于应用程序的Apple服务器聚合在一起。
APPLE_AGENT_MCP_CONFORMANCE_MODE=1仅用于协议验证。它在Apple Tools MCP上添加了官方的MCP一致性夹具,并将HTTP模式切换到完整的流行为。- Apple Tools MCP现在包括可执行任务的简报工具,
apple_generate_daily_briefing,apple_generate_weekly_briefing,以及apple_triage_communications_task. - Apple Tools MCP还包括提示回退工具,
apple_list_prompts和apple_get_prompt,仅适用于工具MCP客户端。 - 独立服务器现在公开了提示回退工具和显式资源订阅或取消订阅处理程序,因此提示繁重的工作流在更薄的MCP客户端中会更干净地降级。
- Apple Mail现在包括线程助手,
mail_get_thread,mail_reply_latest_in_thread,以及mail_archive_thread. - Apple Contacts现在可以创建、更新和删除带有标签电话号码和电子邮件地址的联系人。
- 邮件搜索需要查询字符串。请使用发件人、主题片段或
*作为通配符。 - 提醒事项
due_date需要时区偏移,如yyyy-MM-ddTHH:mm:ss-HH:00. service_name在iMessage发送时应省略。
