MacOS控制MCP服务器
概述
MCP(模型上下文协议)服务器,使AI代理能够控制MacOS系统。 它提供了键盘输入、鼠标控制、剪贴板管理和屏幕截图捕获的功能。
✨ v2.3中的新功能
- 🖥️ 英特尔Mac支持:通过自定义本机模块完全支持基于Intel的Mac(x64)
- 🚀 零依赖:已删除
robotjs依赖性,以获得更好的兼容性和更容易的安装 - 📸 增强屏幕截图:支持文件保存和剪贴板复制
- 🛡️ 稳健的错误处理:输入验证、屏幕边界检查、详细的错误消息
- 📋 剪贴板控件:复制、粘贴和读取剪贴板内容
- 🎯 高级拖放:具有速度控制的平滑动画
- 📝 记录系统:基于Winston的自动旋转结构化日志记录
特性
- 鼠标控制:移动、单击、拖动、拖放
- 键盘控制:键入文本,按组合键
- 剪贴板控件:复制、粘贴、阅读
- 截图:捕获屏幕(保存到文件或复制到剪贴板)
- 窗口管理:列出窗口,聚焦应用程序,获取活动窗口信息
- 公用事业:获取鼠标位置,获取屏幕大小
安装
方法1:通过NPX运行(推荐)✨
立即使用,无需安装:
npx mcp-macos-control@latest方法2:全球NPM安装
npm install -g mcp-macos-control@latest安装后运行:
mcp-macos-control方法3:地方发展
git clone https://github.com/hwanyong/mcp-macos-control.git
cd mcp-macos-control
npm install
npm link用法
直接执行
# Using NPX (Recommended)
npx mcp-macos-control@latest
# Or after global installation
mcp-macos-control
# Or for local development
node index.cjs权限
首次执行需要MacOS权限:
- 无障碍:用于键盘/鼠标控制
- System Settings > Privacy & Security > Accessibility
- 屏幕录制:截图
- System Settings > Privacy & Security > Screen Recording
VSCode AI代理配置
临床扩展
方法1:使用NPX(推荐)
{
"mcpServers": {
"macos-control": {
"command": "npx",
"args": ["mcp-macos-control@latest"]
}
}
}方法2:使用全局安装
{
"mcpServers": {
"macos-control": {
"command": "mcp-macos-control"
}
}
}Continue.dev扩展
方法1:使用NPX(推荐) 添加到 ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"name": "macos-control",
"transport": {
"type": "stdio",
"command": "npx",
"args": ["mcp-macos-control@latest"]
}
}
]
}
}方法2:使用全局安装
{
"experimental": {
"modelContextProtocolServers": [
{
"name": "macos-control",
"transport": {
"type": "stdio",
"command": "mcp-macos-control"
}
}
]
}
}克劳德桌面版
方法1:使用NPX(推荐) 添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"macos-control": {
"command": "npx",
"args": ["mcp-macos-control@latest"]
}
}
}方法2:使用全局安装
{
"mcpServers": {
"macos-control": {
"command": "mcp-macos-control"
}
}
}📁 看 examples/ 文件夹以获取更多配置示例。可用工具
鼠标控制
1. mouse_move
将鼠标光标移动到指定坐标。
{
"x": 100,
"y": 200
}2. mouse_click
单击鼠标按钮。
{
"button": "left",
"double": false
}3. mouse_drag
从当前位置拖动到目标坐标。
{
"x": 500,
"y": 300
}4. mouse_drag_drop
使用平滑的动画执行完整的拖放操作。
{
"fromX": 100,
"fromY": 100,
"toX": 300,
"toY": 300,
"duration": 1000
}5. mouse_scroll
滚动鼠标滚轮。
{
"direction": "down",
"amount": 5
}6. mouse_move_path
通过平滑插值在多个点上移动鼠标。
{
"points": [{"x": 100, "y": 100}, {"x": 200, "y": 200}],
"duration": 1000
}键盘控制
7. keyboard_type
键入文本字符串。
{
"text": "Hello, World!"
}8. keyboard_press
按键或组合键。
{
"key": "c",
"modifiers": ["command"]
}剪贴板控件
9. clipboard_get
获取当前剪贴板内容。
10. clipboard_set
设置剪贴板内容。
{
"text": "Text to copy"
}11. clipboard_paste
粘贴剪贴板内容(模拟Command+V)。
屏幕和窗口
12. take_screenshot
捕捉屏幕。如果提供了文件名,则保存到文件。否则,复制到剪贴板。
{
"filename": "screenshot.png" // Optional
}13. get_mouse_position
获取当前鼠标光标位置。
14. get_screen_size
获取屏幕尺寸。
15. window_list
获取打开的窗口列表。
16. window_get_active
获取有关活动窗口的信息。
17. window_focus
专注于一个特定的应用程序。
{
"appName": "Safari"
}日志记录
所有操作都记录在 logs/ 目录:
logs/combined.log:所有日志logs/error.log:仅错误
免责声明
⚠️ 此工具生成真实的鼠标和键盘事件。 ⚠️ AI控制您的系统时请谨慎使用。 ⚠️ 避免在关键任务期间使用。
