macos计算机使用mcp
一个独立的MCP服务器,为任何兼容MCP的代理提供本地macOS计算机控制——鼠标、键盘、屏幕截图和应用程序管理。
演示
https://github.com/user-attachments/assets/130bee07-1f87-4291-8483-fc47ec51e493
屏幕截图和点击操作 --MCP服务器授予应用程序访问权限,捕获2560×1664的本地屏幕截图,点击屏幕元素,并打开URL——所有这些都是通过编码代理的标准MCP工具调用进行编排的。
兼容性
与任何支持 模型上下文协议,包括:
- 克劳德代码 (
claude mcp add) - OpenAI 代码专家 (
~/.codex/config.toml) - 光标 (
~/.cursor/mcp.json) - 任何其他MCP兼容代理或IDE
运作原理
服务器将macOS系统控制作为MCP工具公开。在引擎盖下,它使用macOS原生模块进行低级输入模拟和系统API:
@ant/computer-use-input--低级鼠标和键盘事件注入@ant/computer-use-swift--用于显示管理、应用程序控制和屏幕截图的macOS原生API
MCP服务器进程通过stdio进行通信,因此任何代理都可以将其作为子进程生成,并通过标准JSON-RPC协议调用其工具。
可用工具(24)
| 工具 | 说明 |
|---|---|
request_access | 请求应用程序的辅助功能权限 |
screenshot | 捕获全屏 |
zoom | 放大屏幕区域 |
left_click | 左键单击坐标 |
right_click | 在坐标处单击鼠标右键 |
middle_click | 在坐标处单击鼠标中键 |
double_click | 在坐标处双击 |
triple_click | 在坐标处点击三次 |
type | 键入文本字符串 |
key | 按一个键或组合键 |
cursor_position | 获取当前鼠标位置 |
mouse_move | 将光标移动到坐标 |
scroll | 在坐标处滚动 |
drag | 从一个点拖动到另一个点 |
left_click_drag | 左键单击并拖动 |
get_display_size | 获取屏幕尺寸 |
list_displays | 列出所有连接的显示器 |
get_frontmost_app | 获取当前活动的应用程序 |
list_installed_apps | 列出所有已安装的应用程序 |
open_app | 按名称或捆绑包ID打开应用程序 |
close_app | 关闭应用程序 |
focus_app | 将应用程序置于前台 |
get_screen_content | 获取屏幕内容的可访问性树 |
wait | 等待指定的持续时间 |
安装
curl -fsSL https://raw.githubusercontent.com/Zooeyii/macos-computer-use-mcp/main/install.sh | bash或手动:
git clone https://github.com/Zooeyii/macos-computer-use-mcp.git ~/.local/share/macos-computer-use-mcp
cd ~/.local/share/macos-computer-use-mcp
npm install
npm run build配置
克劳德代码
claude mcp add -s user computer-use-standalone node $HOME/.local/share/macos-computer-use-mcp/dist/cli.js或添加到 ~/.claude/mcp.json:
{
"computer-use-standalone": {
"type": "stdio",
"command": "node",
"args": ["$HOME/.local/share/macos-computer-use-mcp/dist/cli.js"]
}
}OpenAI 代码专家
添加 ~/.codex/config.toml:
[mcp_servers.computer-use-standalone]
command = "node"
args = ["$HOME/.local/share/macos-computer-use-mcp/dist/cli.js"]或者通过CLI:
codex mcp add computer-use-standalone -- node $HOME/.local/share/macos-computer-use-mcp/dist/cli.js光标
添加 ~/.cursor/mcp.json:
{
"mcpServers": {
"computer-use-standalone": {
"command": "node",
"args": ["$HOME/.local/share/macos-computer-use-mcp/dist/cli.js"]
}
}
}需求
- macOS (Darwin)-由于本机模块依赖关系,仅限macOS
- Node.js 18+
- 无障碍权限 --鼠标/键盘控制所需
- 系统设置→ 隐私和安全→ 无障碍
- 屏幕录制权限 --截图需要
- 系统设置→ 隐私和安全→ 屏幕录制
建筑
MCP Client (Claude Code / Codex / Cursor / any agent)
│
│ stdio (JSON-RPC / MCP protocol)
│
▼
macos-computer-use-mcp (this server)
│
├── MCP Server
│ └── Tool handler
│
├── Tool Definitions
│ ├── Input tools (click, drag, scroll, type, key)
│ ├── Screen tools (screenshot, zoom, display info)
│ └── App tools (open, close, focus, list)
│
└── Executor
│
├── @ant/computer-use-input.node
│ └── Mouse / keyboard event injection
│
└── @ant/computer-use-swift
└── macOS native APIs
├── App management
├── Display control
└── Screenshot capture项目结构
macos-computer-use-mcp/
├── src/
│ ├── cli.ts # MCP server entry point
│ ├── tools.ts # Tool definitions
│ └── executor.ts # Platform implementations
├── install.sh # One-line installer
├── package.json
├── tsconfig.json
├── tsup.config.ts
└── README.md发展
# Install dependencies
npm install
# Build
npm run build
# Run directly
node dist/cli.js
# Type-check only
npm run typecheck免责声明
该项目用于教育和研究目的。
本机模块接口基于可公开观察的运行时行为。
使用风险自负。仅在受信任的环境中运行——使用计算机可以完全控制鼠标、键盘和屏幕。
许可证
麻省理工学院
