关于 Desktop Automation
Desktop Automation 是一个基于 RobotJS 的 MCP 服务,为 LLM 提供桌面鼠标、键盘控制和屏幕截图能力。适合需要让模型操作本地桌面环境的用户,主要在 Claude Desktop 中测试。
主要功能
- 01鼠标移动与点击
- 02键盘按键与文本输入
- 03获取屏幕尺寸
- 04屏幕截图与截图资源
适用场景
- 01让 LLM 操作桌面应用的界面
- 02自动截取屏幕内容供模型分析
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 get_screen_size、screen_capture、keyboard_press、keyboard_type、mouse_click 和 mouse_move 等工具,并通过 screenshot:// 提供截图资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 桌面自动化
一个使用 RobotJS 提供桌面自动化和屏幕截图功能的模型上下文协议服务。此服务可让大模型控制鼠标移动、键盘输入,并截取桌面环境的屏幕截图。
配置桌面自动化服务
以下介绍如何配置 Claude Desktop 以使用 MCP 桌面自动化服务:
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
- 获取屏幕尺寸
- 无需输入参数
-
screen_capture
- 截取当前屏幕内容
- 无需输入参数
-
keyboard_press
- 按下键盘上的某个键或组合键
- 输入:
key(字符串,必填):要按下的键(例如:'enter'、'a'、'control')modifiers(字符串数组,可选):按下该键时要同时按住的修饰键。可能的值:"control"、"shift"、"alt"、"command"
-
keyboard_type
- 在当前光标位置输入文本
- 输入:
text(字符串,必填):要输入的文本
-
mouse_click
- 执行鼠标点击
- 输入:
button(字符串,可选,默认值:"left"):要点击的鼠标按键。可能的值:"left"、"right"、"middle"double(布尔值,可选,默认值:false):是否执行双击
-
mouse_move
- 将鼠标移动到指定坐标
- 输入:
x(数字,必填):X 坐标y(数字,必填):Y 坐标
资源
此服务提供对屏幕截图的访问:
-
屏幕截图列表(
screenshot://list)- 按名称列出所有可用的屏幕截图
-
屏幕截图内容(
screenshot://{id})- 已截取屏幕截图的 PNG 图像
- 可通过屏幕截图 ID 访问(基于时间戳命名)
主要功能
- 桌面鼠标控制
- 键盘输入模拟
- 屏幕尺寸检测
- 屏幕截图功能
- 简洁的 JSON 响应格式
许可证
此 MCP 服务采用 MIT License 许可。这意味着您可以自由使用、修改和分发此软件,但须遵守 MIT License 的条款和条件。有关详情,请参阅项目仓库中的 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。