桌面自动化服务

一个基于RobotJS的桌面自动化服务,提供鼠标控制、键盘输入模拟和屏幕截图功能,适用于需要自动化桌面操作的场景。

  • by tanob
  • JavaScript
  • 本地部署
  • 35 星标
  • 更新于
在 GitHub 查看 tanob/mcp-desktop-automation

使用说明

MCP桌面自动化

一个模型上下文协议服务器,使用RobotJS和屏幕截图功能提供桌面自动化功能。此服务器使LLM能够控制鼠标移动、键盘输入和捕获桌面环境的屏幕截图。

使用桌面自动化服务器的配置

以下是如何配置Claude Desktop以使用MCP Desktop Automation服务器:

NPX

{
  "mcpServers": {
    "desktop-automation": {
      "command": "npx",
      "args": ["-y", "mcp-desktop-automation"]
    }
  }
}

权限

此服务器需要系统级权限才能:

  • 捕获屏幕截图
  • 控制鼠标移动和点击
  • 模拟键盘输入

首次使用此服务器运行Claude Desktop时,您可能需要在操作系统的安全设置中授予这些权限。

局限性

虽然此服务器可与各种MCP客户端配合使用,但它主要是用Claude Desktop进行测试的。

重要:当前实现的响应大小限制为1MB。对于屏幕截图,这意味着:

  • 高分辨率屏幕截图可能会超过此限制并失败
  • 测试表明,800x600分辨率工作可靠
  • 如果遇到问题,请考虑降低屏幕分辨率或捕获特定屏幕区域

需求

  • Node.js(>=14.x)

组件

工具

  • get_screen_size

    • 获取屏幕尺寸
    • 无需输入参数
  • 屏幕截图

    • 捕获当前屏幕内容
    • 无需输入参数
  • 键盘_印刷

    • 按下键盘键或组合键
    • 输入:
      • key (字符串,必填):要按的键(例如,“enter”、“a”、“control”)
      • modifiers (字符串数组,可选):按下键时按住修饰键。可能的值:“control”、“shift”、“alt”、“command”
  • 键盘类型

    • 在当前光标位置键入文本
    • 输入: text (字符串,必填):要键入的文本
  • 鼠标点击

    • 执行鼠标点击
    • 输入:
      • button (string,可选,默认:“left”):鼠标点击。可能的值:“左”、“右”、“中”
      • double (boolean,可选,默认值:false):是否执行双击
  • mouse_move

    • 将鼠标移动到指定坐标
    • 输入:
      • x (数字,必填):X坐标
      • y (数字,必填):Y坐标

资源

服务器提供对屏幕截图的访问:

  1. 屏幕截图列表 (screenshot://list)

    • 按名称列出所有可用的屏幕截图
  2. 屏幕截图内容 (screenshot://{id})

    • 捕获的屏幕截图的PNG图像
    • 可通过屏幕截图ID访问(基于时间戳的命名)

主要特点

  • 桌面鼠标控制
  • 键盘输入模拟
  • 屏幕尺寸检测
  • 屏幕截图功能
  • 简单的JSON响应格式

许可证

此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。