返回市场
麦克佩自动操作界面

麦克佩自动操作界面

作者:hathibelagal-dev10 星标更新:2025-03-29

项目介绍

MCP Server for PyAutoGUI

License: GPL v3 PyPI - Version PyPI - Python Version PyPI - Status

<img width="958" alt="sshot1 pmg" src="https://gips2.baidu.com/it/u=658732999,2234614603&fm=3081&app=3081&f=PNG?w=1916&h=1608" />

mcp-pyautogui 实现了一个针对 PyAutoGUI模型上下文协议(MCP) 服务器。它提供了对鼠标、键盘和屏幕交互的控制,允许AI系统在主机上自动化任务。

该服务器通过 stdio 传输运行,并提供点击、打字、截屏等工具,重点在于简单性和可靠性。它专为希望将桌面自动化集成到工作流程中的开发者和AI爱好者设计。

功能

  • 控制鼠标移动、点击和拖拽。
  • 模拟键盘输入(单个键、文本、快捷键)。
  • 截取屏幕并获取鼠标位置。
  • 获取当前操作系统以进行平台特定逻辑。
  • 具有一致的错误处理机制,带有布尔成功指示器(适用时)。

预备条件

  • Python 3.11+

您还需要授予相关的权限。

<img width="950" alt="sshot2" src="https://gips1.baidu.com/it/u=1381911234,3659772436&fm=3081&app=3081&f=PNG?w=1900&h=1172" />

安装

使用 pip 安装服务器。

pip install mcp-pyautogui

然后可以运行以下命令来确定服务器安装的位置:

which mcp-pyautogui

# 示例输出:
# /Users/bob/miniconda3/envs/desk/bin/mcp-pyautogui

在将 mcp-pyautogui 添加到您的 claude_desktop_config.json 文件时,请使用该位置。这里是一个示例配置:

{
  "mcpServers": {
    "mcp-pyautogui": {
      "command": "/Users/bob/miniconda3/envs/desk/bin/mcp-pyautogui",
      "args": [
          ""
      ]
    }
  }
}

使用方法

如果您按照上述安装步骤操作,则无需执行其他操作。只需使用 Claude Desktop,您应该会自动看到此 MCP 服务器提供的所有工具。您可以测试此服务器,例如说:"可以在 (200,200) 点击吗?"。

该服务器通过 stdio 传输运行,意味着它通过标准输入/输出进行通信。要使用它,请连接一个兼容 MCP 的客户端(例如,AI 助手或自定义脚本),该客户端能够发送 JSON-RPC 命令并接收响应。

示例命令

  • 在 (100, 200) 点击:click(100, 200) → 如果成功则返回 true。
  • 输入 "hello":type_text("hello") → 返回 true。
  • 截取屏幕:take_screenshot("screenshot.png") → 保存到 screenshot.png。
  • 获取鼠标位置:get_mouse_position() → 返回 (500, 300)(示例)。
  • 复制文本:hotkey("ctrl c") → 返回 true。
  • 获取当前操作系统:get_os() → 返回 "Windows"(如果在 Windows 上)。

可用工具的完整列表

  • click(x, y):在坐标 (x, y) 左击。
    • 参数x: int, y: int
    • 返回类型bool
  • right_click(x, y):在坐标 (x, y) 右击。 与 click 类似,但为右击。
    • 参数x: int, y: int
    • 返回类型bool
  • move_to(x, y):在 3 秒内将鼠标移动到坐标 (x, y)。
    • 参数x: int, y: int
    • 返回类型bool
  • drag_to(x, y, duration):在指定持续时间内(默认 1.0 秒)将鼠标拖动到 (x, y)。
    • 参数x: int, y: int, duration: float
    • 返回类型bool
  • type_text(text):输入给定的文本。
    • 参数text: str
    • 返回类型bool
  • press_key(key):按下并释放单个键(如 'enter', 'space', 'a')。
    • 参数key: str
    • 返回类型bool
  • hotkey(keys):同时按下多个键(如 'ctrl c')。空格分隔的字符串。
    • 参数keys: str
    • 返回类型bool
  • scroll(amount):向上(正值)或向下(负值)滚动指定数量。
    • 参数amount: int
    • 返回类型bool
  • take_screenshot(filename):将截图保存到指定文件(如 'screen.png')。
    • 参数filename: str
    • 返回类型bool
  • get_mouse_position():获取当前鼠标坐标作为 (x, y)。
    • 参数:无
    • 返回类型str
  • get_os():获取当前操作系统名称(如 'Windows', 'macOS', 'Linux')。
    • 参数:无
    • 返回类型str
  • double_click(x, y):在给定的 (x, y) 坐标处双击。
    • 参数x: int, y: int
    • 返回类型bool
  • get_screen_size():获取屏幕分辨率作为 (宽度, 高度)。
    • 参数:无
    • 返回类型str
  • pixel_color(x, y):获取 (x, y) 像素的 RGB 颜色。返回 (r, g, b)。
    • 参数x: int, y: int
    • 返回类型str