返回市场
计算机控制MCP

计算机控制MCP

作者:AB49870 星标更新:2025-10-08

项目介绍

计算机控制MCP

提供计算机控制功能的MCP服务器,如鼠标、键盘、OCR等,使用PyAutoGUI、RapidOCR、ONNXRuntime。类似于Anthropic的'computer-use'。无需外部依赖。

<div align="center" style="text-align:center;font-family: monospace; display: flex; align-items: center; justify-content: center; width: 100%; gap: 10px"> <a href="https://nextjs-boilerplate-ashy-nine-64.vercel.app/demo-computer-control"><img src="https://komarev.com/ghpvc/?username=AB498&label=DEMO&style=for-the-badge&color=CC0000" /></a> <a href="https://discord.gg/ZeeqSBpjU2"><img src="https://img.shields.io/discord/1095854826786668545?style=for-the-badge&color=0000CC" alt="Discord"></a> <a href="https://img.shields.io/badge/License-MIT-yellow.svg"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge&color=00CC00" alt="License: MIT"></a> <a href="https://pypi.org/project/computer-control-mcp"><img src="https://img.shields.io/pypi/v/computer-control-mcp?style=for-the-badge" alt="PyPi"></a> </div>

MCP计算机控制演示

快速使用(使用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 # 代替uvx computer-control-mcp,这样可以使用最新版本,也可以通过`uv cache clean`清除缓存并再次使用`uvx`来获取最新版本。

功能

  • 控制鼠标移动和点击
  • 在当前光标位置输入文本
  • 截取整个屏幕或特定窗口的截图,可选保存到下载目录
  • 使用OCR(光学字符识别)从截图中提取文本
  • 列出并激活窗口
  • 按下键盘键
  • 拖放操作

可用工具

鼠标控制

  • 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): 在当前光标位置输入指定文本
  • press_key(key: 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 = 60, scale_percent_for_ocr: int = None, save_to_downloads: 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): 等待指定的毫秒数

开发

设置开发环境

# 克隆仓库
git clone https://github.com/AB498/computer-control-mcp.git
cd computer-control-mcp

# 安装在开发模式下
pip install -e .

# 启动服务器
python -m computer_control_mcp.core

# -- 或者 --

# 在`pip install hatch`后构建
hatch build

# Windows
$latest = Get-ChildItem .\dist\*.whl | Sort-Object LastWriteTime -Descending | Select-Object -First 1
pip install $latest.FullName --upgrade 

# 非Windows
pip install dist/*.whl --upgrade

# 运行
computer-control-mcp

运行测试

python -m pytest

API参考

详见API参考,了解可用函数和类的详细信息。

许可证

MIT

更多信息或帮助