全面PC控制
一个MCP(模型上下文协议)服务器,通过以下方式提供对屏幕、鼠标和键盘的控制 nut.js.
⚠️ 警告:小心使用
该软件支持对鼠标、键盘和其他系统操作进行编程控制。使用本软件即表示您承认并接受:
- 通过此工具让AI模型直接控制您的计算机可能会导致意想不到的后果
- 该软件可以控制您的鼠标、键盘和其他系统功能
- 您使用此软件的风险完全由您自行承担
- 本项目的创建者和贡献者对使用本软件可能造成的任何损坏、数据丢失或其他后果不承担任何责任
特性
- 📷 屏幕捕获:捕获整个屏幕或特定区域的屏幕截图
- 🖱️ 鼠标控制:移动鼠标光标,单击、双击和滚动
- ⌨️ 键盘输入:键入文本并按键盘快捷键
- 🪟 窗口管理:查找、聚焦和操纵应用程序窗口
- 📋 剪贴板访问:复制和粘贴文本
先决条件
- Node.js 16或更高版本
- npm或纱线
- cmake js(用于构建本机依赖)
安装
- 克隆存储库:
git clone https://github.com/jasondsmith72/total-pc-control.git
cd total-pc-control- 全局安装cmake js(构建本机依赖项所需):
npm install -g cmake-js- 安装libnut核心库(nut.js需要):
git clone https://github.com/nut-tree/libnut.git libnut-core
cd libnut-core
npm install
cmake-js rebuild
cd ..- 安装依赖项并构建项目:
npm install
npm run build使用Claude for Desktop
- 编辑您的Claude for Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
- 将以下内容添加到您的配置中:
{
"mcpServers": {
"total-pc-control": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/total-pc-control/build/index.js"
]
}
}
}替换 /ABSOLUTE/PATH/TO/ 带有克隆存储库的实际路径。
- 重新启动桌面版的Claude
- 在Claude界面中查找锤子图标,以指示可用的工具。
可用工具
屏幕捕获
capture_screen:将整个屏幕捕获为图像。支持format(png/jpeg)和quality(仅限jpeg)参数。capture_region:捕获屏幕的特定区域。需要left,top,width,height.支持format和quality.get_screen_size:获取屏幕的尺寸(宽度和高度)。
鼠标控制
move_mouse:将鼠标光标移动到特定位置x,y位置。get_mouse_position:获取电流x,y鼠标光标的位置。click_mouse:在当前位置单击鼠标。可选的button(左、中、右)。click_at:在特定位置单击鼠标x,y位置。可选的button.double_click:在当前位置双击鼠标。double_click_at:在特定位置双击鼠标x,y位置。scroll_mouse:滚动鼠标滚轮。需要direction(向上/向下)。可选的amount.drag_mouse:将鼠标从当前位置拖动到目标x,y位置。drag_mouse_from_to:从以下位置拖动鼠标startX,startY位置到aendX,endY位置。
键盘输入
type_text:在当前光标位置键入文本。需要text.type_text_with_delay:键入两次按键之间有延迟的文本。需要text.可选delayMs.press_key:按特定键盘键。需要key.press_key_shortcut:按键盘快捷键(组合键)。需要keys阵列。hold_key:按住键盘键。需要key.release_key:松开按住的键盘键。需要key.
剪贴板操作
get_clipboard_text:从剪贴板获取文本。set_clipboard_text:将文本设置到剪贴板。需要text.copy_selected_text:将所选文本复制到剪贴板并返回(使用Ctrl+C/Cmd+C)。paste_text:在当前光标位置粘贴文本(使用Ctrl+V/Cmd+V)。需要text.get_clipboard_image:从剪贴板获取图像(如果可用)作为base64数据。
UI自动化工具(仅限Windows)
这些工具通过PowerShell使用Windows UI自动化与UI元素进行交互。
get_ui_element_info:在指定窗口中查找UI元素并返回其属性(名称、自动化ID、类名、ControlType、边界矩形、IsEnabled、IsOffscreen、值、子项)。
- 需要 windowTitle (可以是部分匹配)。 - 至少需要以下之一 elementName, automationId,或 className 找到一个特定的元素。 - 如果没有提供元素标识符,它将列出窗口的直接子项。
invoke_ui_element_action:对指定的UI元素执行操作。
- 需要 windowTitle. - 需要 action (Click, SetValue,或 Focus). - 至少需要以下之一 elementName, automationId,或 className. - 需要 valueToSet (字符串)如果 action 是 SetValue.
发展
要在开发模式下运行服务器,请执行以下操作:
npm run dev要运行测试,请执行以下操作:
npm test许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
