关于 Apple System
Apple System 是面向需要 macOS 系统上下文及受限设置或桌面操作的客户端的本地 MCP 服务。它结合明确的设置控制与应用白名单 GUI 后备工具。
主要功能
- 01电池和应用上下文
- 02剪贴板与通知
- 03读取和写入 macOS 设置
- 04受限且有白名单的 GUI 操作
- 05系统资源与提示词
- 06工具发现辅助功能
适用场景
- 01操作前检查桌面上下文
- 02更改 Finder、Dock 或辅助功能设置
- 03读取或更新剪贴板
- 04原生工具不可用时操作白名单应用
MCP 相关
通过 MCP 资源、提示词和工具提供 macOS 状态、应用、设置及上下文。支持 stdio 和 Streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
39收录的工具列表 · 更新于 1 天前
此工具无需参数。
详细介绍
Apple System MCP
用于提供 macOS 系统上下文、如实报告专注模式支持情况、读取与助手相关的设置、显式写入设置,以及有限范围 GUI 回退自动化的本地 MCP 服务。
功能
- 电池状态
- 最前台应用
- 正在运行的应用
- 剪贴板读取和写入
- 本地通知
- 打开应用
- 外观设置
- 辅助功能设置
- Dock 设置
- Finder 设置
- 如实报告专注模式支持情况
- 综合系统上下文快照
- 外观模式写入
- Finder 可见性和栏设置写入
- Dock 写入控制:自动隐藏和最近使用的应用
- 辅助功能写入:减少动态效果、增强对比度和降低透明度
- GUI 回退工具:点击菜单、按键、输入文本、点击按钮和选择弹出选项
- 通过
defaults export检查偏好设置域 - 资源:
system://status、system://applications、system://settings、system://context - 提示词:
system_capture_context - 面向上下文受限客户端的工具发现辅助工具
search_tools和get_tool_info
在此 Mac 上安装
从克隆的仓库安装
git clone https://github.com/JonathanRReed/Apple-MCPs.git
cd Apple-MCPs
uv sync --all-packages
此操作会构建一个工作区环境,其中包含每个服务的入口点,位于 .venv/bin 中(例如 .venv/bin/apple-system-mcp)。你也可以让 MCP 客户端指向 AppleSystem-MCP/start.sh;该脚本优先使用 uv run,并会回退到普通虚拟环境引导方式(需要 Python 3.11+)。
在 AI Agent 中安装
{
"mcpServers": {
"apple-system": {
"command": "uvx",
"args": ["apple-system-mcp"],
"env": {
"APPLE_SYSTEM_MCP_SAFETY_MODE": "safe_manage"
}
}
}
}
如果从克隆的仓库运行,则将 /path/to/Apple-MCPs/AppleSystem-MCP/start.sh 设为命令,并将 args 留空。
Claude Code:
claude mcp add --transport stdio --scope user apple-system -- uvx apple-system-mcp
--scope user 会让所有项目都能使用此服务。若要通过仓库的 .mcp.json 将其共享给单个仓库,则使用 --scope project。
传输方式
默认且推荐使用 stdio 传输方式。设置 APPLE_SYSTEM_MCP_TRANSPORT=streamable-http(可选设置 APPLE_SYSTEM_MCP_HOST 和 APPLE_SYSTEM_MCP_PORT)即可改用 Streamable HTTP 服务。
提示词说明
tools/list会返回完整的 System 工具列表。上下文受限的客户端可以先使用search_tools,再通过get_tool_info获取所需的 System 工具信息。- 用户当前的桌面上下文与任务相关时,请使用此服务。
- 执行可能打断用户的操作前,先读取电池状态和最前台应用。
- 在提示词或端到端检查中回退到原始
defaults read前,请先使用设置工具。 - 使用
APPLE_SYSTEM_MCP_SAFETY_MODE=safe_manage以满足助手级操作需求。 - 仅在只读审计或仅提供上下文的部署中使用
safe_readonly。 - 将 GUI 回退的使用范围控制在最小。优先使用原生应用域 MCP,再使用显式 System 工具,只有原生支持缺失时才使用 GUI 工具。GUI 输入要求目标应用位于
APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS中(参见 GUI 输入允许列表)。 - 专注模式报告尽力而为,并如实反映支持情况。在未签名的本地安装中,如果 macOS 未能以可靠方式提供通知中心历史记录,此服务不会声称支持该功能。
健康检查与恢复
system_healthsystem_permission_guidesystem_get_settings_snapshotsystem_get_focus_statussystem_get_context_snapshotsystem_read_preference_domain
助手级控制界面
启动时的系统写入操作是明确列出的,而非通用操作:
system_set_appearance_modesystem_set_show_all_extensionssystem_set_show_hidden_filessystem_set_finder_path_barsystem_set_finder_status_barsystem_set_dock_autohidesystem_set_dock_show_recentssystem_set_reduce_motionsystem_set_increase_contrastsystem_set_reduce_transparency
范围受限的 GUI 备用操作包括:
system_gui_list_menu_bar_itemssystem_gui_click_menu_pathsystem_gui_press_keyssystem_gui_type_textsystem_gui_click_buttonsystem_gui_choose_popup_value
GUI 输入允许列表
GUI 输入工具(system_gui_click_menu_path、system_gui_press_keys、system_gui_type_text、system_gui_click_button 和 system_gui_choose_popup_value)只会向你列在 APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS 中的应用发送输入。默认值为空,因此在你设置之前,GUI 输入处于关闭状态。system_gui_list_menu_bar_items 只读取信息,无需允许列表。
- 格式:以逗号分隔的 bundle id,例如
com.apple.TextEdit,com.apple.Safari。逗号周围的大小写和空格均会被忽略。要查找应用的 bundle id,请运行osascript -e 'id of app "TextEdit"'。 - 设置位置:在 MCP 客户端配置中,此服务的
env块,例如"APPLE_SYSTEM_MCP_GUI_ALLOWED_APPS": "com.apple.TextEdit,com.apple.Safari"。在 Claude Desktop 中,打开 Settings > Extensions,配置 Apple System,并填写 "Apps that accept GUI input"。之后重启客户端。 - 每次 GUI 输入调用都必须通过
application或bundle_id指定目标。输入绝不会发送到当前恰好处于最前台的应用;目标应用会先被置于最前台,如果未能置于最前台,调用就会以GUI_TARGET_NOT_FRONTMOST失败。 - 即使终端、脚本编辑器和自动化应用已加入允许列表,也一律会返回
TERMINAL_TARGET_REFUSED,因为在其中输入的文本可能会运行代码。此规则涵盖 Terminal、iTerm2、Ghostty、Warp、kitty、WezTerm 等类似终端,以及 Script Editor、Automator、Shortcuts、Xcode、VS Code、Cursor、Windsurf、Zed、JetBrains IDE、BBEdit、Raycast 和 Alfred。 - 调用列表外的应用会返回
GUI_TARGET_NOT_ALLOWED,其suggestion会给出需要添加的准确值。
启动清单
- 将
uvx apple-system-mcp(或克隆仓库中的AppleSystem-MCP/start.sh)添加到 MCP 客户端 - 重新加载或重新连接客户端,使 System 工具界面加载到上下文中
- 首先调用
system_health - 如果受范围限制的系统操作被阻止,请调用
system_permission_guide - 调用
system_status,验证完整的上下文界面是否可用
偏好设置域读取接受命名域,例如 com.apple.finder 和 NSGlobalDomain,而不接受文件系统路径或命令选项。-g 和 -globalDomain 别名用于选择 NSGlobalDomain。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。