mcpField
M
mcp-mac-control

mcp-mac-control

本地服务
github.com/dockndevai生产力03 天前更新

关于 mcp-mac-control

mcp-mac-control 是 MCP 服务,可让 AI Agent 通过文件、Shell、AppleScript、进程和 GUI 操作 Mac。适用于需要广泛桌面控制的 Agent;默认以 admin 模式启动,可通过配置启用安全限制。

主要功能

  1. 01截取屏幕并查看窗口
  2. 02控制鼠标和键盘
  3. 03读写文件
  4. 04运行命令和 AppleScript
  5. 05管理应用和进程
  6. 06配置访问限制与确认

适用场景

  1. 01自动执行 Mac 图形界面操作
  2. 02检查屏幕和应用状态
  3. 03对可脚本化应用运行 AppleScript
  4. 04限制或审计高风险操作

MCP 相关

它向 MCP 客户端提供 Mac 观察和控制工具。服务通过 stdio 运行,并支持使用 MCP elicitation 请求人工批准。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dockndevai-mcp-mac-control": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-mac-control"
],
"env": {
"MACCTL_SAFE_MODE": "<MACCTL_SAFE_MODE>",
"MACCTL_MODE": "<MACCTL_MODE>",
"MACCTL_CONFIRM": "<MACCTL_CONFIRM>",
"MACCTL_PATH_ALLOWLIST": "<MACCTL_PATH_ALLOWLIST>",
"MACCTL_PROTECTED_PATHS": "<MACCTL_PROTECTED_PATHS>"
}
}
}
}
启动命令npx -y @dockndevai/mcp-mac-control
需要配置的环境变量
MACCTL_SAFE_MODESet true to invert to safe-by-default: read-only, all powers gated, confirmations on. Default false (full control).
MACCTL_MODEAccess mode: read-only | read-write | admin. Defaults to admin (or read-only in safe mode).
MACCTL_CONFIRMSet true to require human approval (via MCP elicitation) on destructive ops. Default off in full control.
MACCTL_PATH_ALLOWLISTComma-separated path roots the agent may touch (empty = anywhere).
MACCTL_PROTECTED_PATHSComma-separated path roots that may be read but never modified/deleted (empty by default in full control).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@dockndevai/mcp-mac-control0.3.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-mac-control

npm CI licence

一个 Model Context Protocol 服务,可让 AI Agent 像坐在 Mac 前的人一样完全控制 Mac。Shell、AppleScript、文件、进程,以及类人的 GUI 控制:移动、单击、双击/右键单击、拖动、滚动、输入文本和按下组合键,并通过截图以及窗口/屏幕尺寸感知循环来辅助操作。

⚠️ 此服务默认拥有完全控制权限。 它以 admin 模式启动,启用命令执行、删除和 GUI 输入。这既强大又危险:Agent 读取的任何内容(网页、电子邮件、文件)都可能包含提示注入,进而在 Mac 上运行任意代码。仅将它连接到你信任的 Agent 和内容。设置 MACCTL_SAFE_MODE=true,即可将所有功能切换为默认安全模式。如果你希望默认安全模式作为基础配置,请改用同系列的 @dockndevai/mcp-macos。

属于 dockndevai MCP 服务套件。

它为 Agent 提供的功能(26 个工具)

感知 — screenshot、get_screen_size、list_windows、get_frontmost_app、list_apps、system_info、list_directory、read_file、list_processes、get_clipboard

像人一样操作桌面 — move_mouse、click(左键/右键/双击)、drag、scroll、type_text、key_press(支持 ⌘/⌥/⌃/⇧)、activate_app、quit_app、open、set_clipboard、notify、write_file

完全控制 — run_command(运行任意程序,除非你明确要求,否则不使用 Shell)、run_applescript(AppleScript/JXA——驱动任何可编写脚本的应用)、delete_path(→废纸篓)、kill_process

经典操作循环:screenshot → 决策 → click/type/drag/scroll → 再次 screenshot。

安装

npx -y @dockndevai/mcp-mac-control

仅适用于 macOS。首次使用每项功能时,你需要授予宿主应用(Terminal、IDE、Claude Desktop 等)相应的 macOS 权限:

  • 屏幕录制 → 用于 screenshot
  • 辅助功能 → 用于 GUI 输入(click、type_text、drag、scroll、key_press)和 list_windows
  • 自动化 → 用于 AppleScript/应用控制
  • 鼠标控制使用 cliclick:brew install cliclick

配置(Claude Code)

claude mcp add mac-control -- npx -y @dockndevai/mcp-mac-control

就是这样——默认拥有完全控制权限。若要限制权限,请添加环境变量标志(见下文)。Claude Desktop/Cursor/Codex/VS Code/Windsurf 的配置请参阅 docs/CLIENTS.md,所有变量请参阅 .env.example。

调高或调低控制级别

无需配置即可获得完整控制权。以下所有设置都是关于限制控制权:

变量默认值作用
MACCTL_SAFE_MODEfalsetrue → 只读,所有高权限操作均受限,并启用确认(默认安全)
MACCTL_MODEadminread-only / read-write / admin — 限制注册的工具
MACCTL_ALLOW_EXECtrueshell / AppleScript / kill
MACCTL_ALLOW_DELETEtrue移至废纸篓
MACCTL_ALLOW_INPUTtrueGUI 输入(鼠标/键盘)
MACCTL_CONFIRMfalsetrue → 破坏性操作会暂停,通过 MCP elicitation 请求人工批准
MACCTL_PATH_ALLOWLIST(为空 = 任意位置)将文件操作限制在这些根路径内
MACCTL_PROTECTED_PATHS(为空)可读取但永不修改/删除的根路径
MACCTL_COMMAND_ALLOWLIST(为空 = 任意命令)将 run_command 限制为这些程序
MACCTL_DRY_RUNfalse验证并记录写入操作,但不执行
MACCTL_AUDIT_LOGtrue每个受保护操作都向 stderr 输出一条 JSON 审计记录

策略引擎(src/security.ts)采用与套件其余部分相同的分级模型 — 只是此服务默认完全开放。请参阅 SECURITY.md。

AI 风险防护(可选)

除了静态规则之外,此服务还可以在运行高风险工具(run_command、run_applescript、delete_path)之前,查询本地 laya-guard 守护进程。防护程序会根据实际命令进行分类 — 采用确定性模式匹配和本地决策模型 — 结果为 允许 / 确认 / 阻止。它在确定性策略之后运行,且只能收紧策略(添加确认或阻止),不能放行。

变量默认值作用
MACCTL_GUARD_MODEoffmonitor(记录其会采取的操作) / enforce(阻止操作或要求确认)
MACCTL_GUARD_URLhttp://127.0.0.1:8799本地 laya-guard 守护进程
MACCTL_GUARD_TIMEOUT_MS2000每次检查的超时时间
MACCTL_GUARD_FAIL_CLOSEDconfirm在强制执行模式下守护进程无法连接时:confirm 或 allow

使用 pipx install laya-guard && laya-guard 运行守护进程。先启用 monitor,查看它会拦截哪些操作, 然后切换到 enforce。

开发

npm install
npm run build
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js   # list tools
npm test

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。