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坐标
资源
服务器提供对屏幕截图的访问:
- 屏幕截图列表 (
screenshot://list)
- 按名称列出所有可用的屏幕截图
- 屏幕截图内容 (
screenshot://{id})
- 捕获的屏幕截图的PNG图像 - 可通过屏幕截图ID访问(基于时间戳的命名)
主要特点
- 桌面鼠标控制
- 键盘输入模拟
- 屏幕尺寸检测
- 屏幕截图功能
- 简单的JSON响应格式
许可证
此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。
