MacOS控制服务器

一个允许AI代理控制MacOS系统的MCP服务器,提供键盘输入、鼠标控制、剪贴板管理和截图捕获等功能。

  • by hwanyong
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hwanyong/mcp-macos-control

使用说明

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权限:

  1. 无障碍:用于键盘/鼠标控制
    • System Settings > Privacy & Security > Accessibility
  2. 屏幕录制:截图
    • 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控制您的系统时请谨慎使用。 ⚠️ 避免在关键任务期间使用。