关于 Computer Control MCP
Computer Control MCP 是一个 MCP 服务,提供鼠标、键盘、截图与 OCR 等电脑控制能力,与 Anthropic 的 computer-use 类似。它基于 PyAutoGUI、RapidOCR 和 ONNXRuntime 实现,面向需要自动化桌面操作的用户。
主要功能
- 01鼠标移动、点击与拖放
- 02键盘输入与按键组合
- 03屏幕或指定窗口截图
- 04截图文字识别(OCR)
- 05窗口列举与激活
- 06GPU 加速窗口的 WGC 截图(仅 Windows)
适用场景
- 01让 AI 助手读取屏幕内容并执行桌面操作
- 02对指定窗口截图并提取其中文字
- 03通过 uvx 快速为 MCP 客户端添加电脑控制能力
MCP 相关
作为 MCP 服务,它向客户端暴露鼠标、键盘、截图、OCR 和窗口管理等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Computer Control MCP
通过 PyAutoGUI、RapidOCR 和 ONNXRuntime 提供鼠标、键盘、OCR 等计算机控制能力的 MCP 服务。类似于 Anthropic 的「computer-use」。无外部依赖。

快速使用(使用 uvx 设置 MCP)
注意: 首次运行 uvx computer-control-mcp@latest 时会下载 Python 依赖(约 70MB),可能需要一些时间。建议在将其用作 MCP 之前先在终端中运行。之后运行即可立即启动。
{
"mcpServers": {
"computer-control-mcp": {
"command": "uvx",
"args": ["computer-control-mcp@latest"]
}
}
}
或者使用 pip 全局安装:
pip install computer-control-mcp
然后运行服务:
computer-control-mcp # instead of uvx computer-control-mcp, so you can use the latest version, also you can `uv cache clean` to clear the cache and `uvx` again to use latest version.
功能
- 控制鼠标移动和点击
- 在当前光标位置输入文本
- 截取整个屏幕或特定窗口的屏幕截图,并可选择保存到下载目录
- 使用 OCR(光学字符识别)从屏幕截图中提取文本
- 列出并激活窗口
- 按下键盘按键
- 拖放操作
- 增强对 GPU 加速窗口的截图捕获能力(仅限 Windows)
关于 GPU 加速窗口的说明
传统截图方法(如 GDI/PrintWindow)无法捕获 GPU 加速窗口,导致屏幕变黑。这会影响游戏、媒体播放器、Electron 应用、启用了 GPU 加速的浏览器、流媒体软件和 CAD 工具。可通过 take_screenshot 工具的标志或 ENV 变量使用 WGC。
配置
自定义截图目录
默认情况下,屏幕截图会保存到操作系统的下载目录。你可以通过设置 COMPUTER_CONTROL_MCP_SCREENSHOT_DIR 环境变量来自定义目录:
{
"mcpServers": {
"computer-control-mcp": {
"command": "uvx",
"args": ["computer-control-mcp@latest"],
"env": {
"COMPUTER_CONTROL_MCP_SCREENSHOT_DIR": "C:\\Users\\YourName\\Pictures\\Screenshots"
}
}
}
}
或者设置为系统级变量:
# Windows (PowerShell)
$env:COMPUTER_CONTROL_MCP_SCREENSHOT_DIR = "C:\Users\YourName\Pictures\Screenshots"
# macOS/Linux
export COMPUTER_CONTROL_MCP_SCREENSHOT_DIR="/home/yourname/Pictures/Screenshots"
如果指定的目录不存在,服务将回退到默认下载目录。
对特定窗口自动使用 WGC
你可以通过设置 COMPUTER_CONTROL_MCP_WGC_PATTERNS 环境变量,配置系统对特定窗口自动使用 Windows Graphics Capture(WGC)。此变量应包含以逗号分隔、用于匹配窗口标题的模式:
{
"mcpServers": {
"computer-control-mcp": {
"command": "uvx",
"args": ["computer-control-mcp@latest"],
"env": {
"COMPUTER_CONTROL_MCP_WGC_PATTERNS": "obs, discord, game, steam"
}
}
}
}
或者设置为系统级变量:
# Windows (PowerShell)
$env:COMPUTER_CONTROL_MCP_WGC_PATTERNS = "obs, discord, game, steam"
# macOS/Linux
export COMPUTER_CONTROL_MCP_WGC_PATTERNS="obs, discord, game, steam"
设置此变量后,标题包含任何指定模式的窗口都会自动使用 WGC 捕获屏幕截图,从而避免 GPU 加速应用出现黑屏。
可用工具
鼠标控制
click_screen(x: int, y: int):单击指定屏幕坐标move_mouse(x: int, y: int):将鼠标光标移动到指定坐标drag_mouse(from_x: int, from_y: int, to_x: int, to_y: int, duration: float = 0.5):将鼠标从一个位置拖动到另一个位置mouse_down(button: str = "left"):按住鼠标按钮('left'、'right'、'middle')mouse_up(button: str = "left"):释放鼠标按钮('left'、'right'、'middle')
键盘控制
type_text(text: str):在当前光标位置输入指定文本key_down(key: str):按住指定键,直到释放key_up(key: str):释放指定键press_keys(keys: Union[str, List[Union[str, List[str]]]]):按下键盘按键(支持单键、按键序列和组合键)
屏幕和窗口管理
take_screenshot(title_pattern: str = None, use_regex: bool = False, threshold: int = 10, scale_percent_for_ocr: int = None, save_to_downloads: bool = False, use_wgc: bool = False):截取屏幕或窗口take_screenshot_with_ocr(title_pattern: str = None, use_regex: bool = False, threshold: int = 10, scale_percent_for_ocr: int = None, save_to_downloads: bool = False):使用 OCR 从屏幕或窗口中提取并返回带坐标的文本get_screen_size():获取当前屏幕分辨率list_windows():列出所有打开的窗口activate_window(title_pattern: str, use_regex: bool = False, threshold: int = 60):将指定窗口置于前台wait_milliseconds(milliseconds: int):等待指定的毫秒数
使用 mcp-caller 测试 MCP 服务
无需 MCP 客户端,即可使用 mcp-caller 快速测试 MCP 服务工具:
# List all available tools
npx mcp-caller --server-json '{"type":"stdio","command":"uvx","args":["computer-control-mcp@latest","server"]}' --list-tools
# Call a specific tool
npx mcp-caller --server-json '{"type":"stdio","command":"uvx","args":["computer-control-mcp@latest","server"]}' --tool list_windows --params-json '{}'
开发
搭建开发环境
# Clone the repository
git clone https://github.com/AB498/computer-control-mcp.git
cd computer-control-mcp
# Build/Run:
# 1. Install in development mode | Meaning that your edits to source code will be reflected in the installed package.
pip install -e .
# Then Start server | This is equivalent to `uvx computer-control-mcp@latest` just the local code is used
computer-control-mcp
# -- OR --
# 2. Build after `pip install hatch` | This needs version increment in orer to reflect code changes
hatch build
# Windows
$latest = Get-ChildItem .\dist\*.whl | Sort-Object LastWriteTime -Descending | Select-Object -First 1
pip install $latest.FullName --upgrade
# Non-windows
pip install dist/*.whl --upgrade
# Run
computer-control-mcp
运行测试
python -m pytest
API 参考
请参阅 API 参考,了解可用函数和类的详细信息。
许可证
MIT
了解更多信息或寻求帮助
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。