PC控制MCP服务器
用于AI驱动的PC自动化的通用MCP服务器
可与Claude Code、Cursor、Windsurf和任何兼容MCP的AI助手配合使用。
强大的MCP服务器,用于智能PC控制,使用:
- UI自动化 -按名称单击元素(本机Windows应用程序)
- 浏览器CDP -直接Chrome控件(DOM、元素、JS执行)⭐ 新
- 光学字符识别 -查找/单击屏幕上的任何文本(适用于浏览器!)
- 视觉 -模板匹配、屏幕变化检测
- 快速捕获 -GPU加速截图
为什么这样更好
| 功能 | 旧电脑控制 | 克劳德电脑 |
|---|---|---|
| 点击元素 | 按坐标(易碎) | 按名称或按文本(坚固) |
| 浏览器支持 | 仅截图 | CDP全力支持! +OCR |
| 浏览器元素 | 无 | 获取所有交互元素! |
| JavaScript | 无 | 执行页面中的任何JS! |
| 页面提取 | 无 | 提取整页蓝图! |
| 等待更改 | 手动轮询 | wait_for_screen_change |
| 屏幕截图 | ~200ms | ~50ms(GPU加速) |
快速开始
cd claude-pc-mcp
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt增添 ~/.claude.json:
{
"mcpServers": {
"claude-pc": {
"type": "stdio",
"command": "C:\path\to\claude-pc-mcp\.venv\Scripts\python.exe",
"args": ["C:\path\to\claude-pc-mcp\run.py"]
}
}
}适用于浏览器CDP(Chrome控件)
使用远程调试启动Chrome:
chrome.exe --remote-debugging-port=9222或者,为了获得干净的个人资料:
chrome.exe --remote-debugging-port=9222 --user-data-dir=C:\chrome-debug工具概述
🌐 浏览器控件(CDP)-新增!
最适合:Chrome/Edge浏览器-完全控制网络内容!
| 工具 | 说明 |
|---|---|
connect_browser | 在启用调试的情况下连接到Chrome |
get_browser_elements | 获取所有有边界的交互元素! |
click_browser_element | 按文本/角色/选择器单击元素 |
type_in_browser | 在浏览器元素中键入文本 |
execute_browser_js | 在页面上下文中运行JavaScript |
get_page_blueprint | 提取所有内容以克隆页面 |
get_browser_pages | 列出所有打开的选项卡 |
browser_navigate | 导航到URL |
wait_for_browser_element | 等待元素出现 |
🖥️ 原生应用控制(UI自动化)
最适合:Windows原生应用程序(记事本、文件资源管理器等)
| 工具 | 说明 |
|---|---|
find_element | 按名称/类型/id查找元素 |
click_element | 按选择器单击元素 |
type_into_element | 键入元素 |
get_ui_tree | 获取UI元素层次结构 |
wait_for_element | 等待元素状态 |
🔤 文本/通用控制(OCR)
最适合:任何有可见文本的应用程序(不带CDP的浏览器的回退)
| 工具 | 说明 |
|---|---|
find_text_on_screen | 查找文本并获取坐标 |
click_text | 查找并单击文本(一次通话!) |
get_screen_text | 提取所有可见文本 |
wait_for_text | 等待文本出现/消失 |
👁️ 视觉工具
用于基于图像的交互和屏幕监控
| 工具 | 说明 |
|---|---|
find_image_on_screen | 使用模板匹配查找图像/图标 |
wait_for_screen_change | 等待屏幕更新 |
⌨️ 屏幕和输入
| 工具 | 说明 |
|---|---|
capture_screen | 快速截图(50ms) |
click_at | 单击坐标(回退) |
type_text | 在光标处键入 |
send_keys | 带特殊按键的键盘 |
scroll | 鼠标滚轮 |
focus_window | 把窗户放在前面 |
get_windows | 列出有边界的窗口 |
使用示例
🌐 使用CDP实现浏览器自动化(最佳!)
# 1. Connect to Chrome (must be started with --remote-debugging-port=9222)
connect_browser()
# 2. Get ALL interactive elements on the page
get_browser_elements()
# Returns: buttons, links, inputs with EXACT coordinates!
# 3. Click by element text
click_browser_element(text="Sign In", role="button")
# 4. Fill a form
click_browser_element(text="Email")
type_in_browser(text="user@example.com")
click_browser_element(text="Password")
type_in_browser(text="mypassword")
click_browser_element(text="Log In")
# 5. Execute JavaScript
execute_browser_js(script="document.title")
execute_browser_js(script="document.querySelector('#submit').click()")
# 6. Extract page for cloning
get_page_blueprint()
# Returns: HTML, elements, design tokens, colors, fonts!🖥️ 本地应用程序控制
# Click a button by name
click_element(name="Submit", control_type="button")
# Type into a text field
type_into_element(name="Username", text="myuser")
# Get UI tree to explore
get_ui_tree(depth=3)🔤 OCR回退(当CDP不可用时)
# Find and click any visible text
click_text(text="Sign In")
# Wait for loading to finish
wait_for_text(text="Loading...", condition="disappear", timeout=30)何时使用What
| 场景 | 最佳工具 |
|---|---|
| Chrome/Edge网页内容 | CDP工具(connect_browser, get_browser_elements) |
| 本机Windows应用程序 | UI自动化(click_element, find_element) |
| 不带CDP的浏览器 | OCR(click_text, find_text_on_screen) |
| 任何可见文本 | OCR工具 |
| 图像/图标匹配 | 视觉工具 |
需求
- Windows 10/11
- Python 3.10+
- 用于CDP功能的Chrome/Edge(可选)
- 无需管理员权限
依赖项
核心:
mcp-MCP-SDKuiautomation-Windows用户界面自动化mss-快速屏幕截图pynput-输入模拟pywin32-Windows API
浏览器CDP(新增!):
websockets-CDP的WebSocket客户端aiohttp-CDP的HTTP客户端
OCR:
winrt-*-Windows运行时OCR(内置于Windows)
愿景:
opencv-python-模板匹配numpy-图像处理
故障排除
浏览器CDP未连接
- 确保Chrome已启动
--remote-debugging-port=9222 - 检查端口9222是否可用:
netstat -an | find "9222" - 尝试使用干净的配置文件:
chrome.exe --remote-debugging-port=9222 --user-data-dir=C:\temp\chrome-debug
get_browser_elements返回空值
- 页面可能仍在加载中-请稍等
- 某些元素可能位于iframe中(尚不支持)
- 检查页面是否使用Shadow DOM(有限支持)
OCR找不到文本
- 确保文本清晰可见(不截断,不太小)
- 尝试
get_screen_text()查看OCR检测到什么 - 增加目标应用程序中的字体大小
click_element在浏览器中不起作用
- 使用适用于浏览器的CDP工具! (
click_browser_element) - UI自动化无法查看浏览器内部内容
性能提示
- CDP对浏览器来说是最快的——尽可能使用它!
- 使用
regionOCR限制搜索区域的参数 wait_for_screen_change比轮询更有效率
更新日志
v0.3.0-浏览器CDP支持
- 新增:完整的Chrome DevTools协议集成
- 新
connect_browser-连接到Chrome - 新
get_browser_elements-获取所有交互元素 - 新
click_browser_element-按文本/角色/选择器单击 - 新
type_in_browser-在浏览器元素中键入 - 新
execute_browser_js-运行JavaScript - 新
get_page_blueprint-用于克隆的提取页面 - 新
browser_navigate-导航到URL - 新
wait_for_browser_element-等待元素
v0.2.0-OCR和视觉
- 添加了用于浏览器文本交互的OCR工具
- 添加了用于模板匹配的视觉工具
- 改进的窗口边界检测
