使用说明
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
免责声明
该项目用于教育和研究目的。
本机模块接口基于可公开观察的运行时行为。
使用风险自负。仅在受信任的环境中运行——使用计算机可以完全控制鼠标、键盘和屏幕。
许可证
麻省理工学院