Token导航 LogoToken导航TokenDH.com
Desktop Control MCP logo
AI代理stdio官方级别未说明来源级核验

Desktop Control MCP

MCP Server

一个允许LLM通过截图、鼠标、键盘和UI元素检测来查看和控制Windows桌面的服务器。

工具数

12

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude模型集成ClaudeCursorWindsurfClineVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

acarioti4

提供方

acarioti4

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

桌面控制MCP

MCP服务器,使LLM能够通过屏幕截图、鼠标、键盘和UI元素检测来查看和控制Windows桌面。

运作原理

服务器提供工具——LLM客户端负责所有推理:

  1. 截图 桌面查看屏幕上的内容
  2. 识别 通过视觉或Windows UI自动化实现UI元素
  3. 法案 使用鼠标点击、键盘输入或热键
  4. 验证 每次操作后再截图

三层元素检测

图层方法最适合
客户数据平台通过WebSocket的Chrome DevTools协议电子应用程序(Discord、VS Code、Slack)-需要 method="path" 发射
国际建筑师协会Windows UI Automation COM API本机应用程序(记事本、资源管理器、设置、Office)
视觉截图+LLM视觉其他一切——LLM根据图像估计坐标

安装

cd Desktop-Control-MCP
pip install -e .

向MCP客户端注册

将服务器添加到MCP客户端的配置中。热门客户示例:

克劳德桌面%APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "desktop-control": {
      "command": "python",
      "args": ["-m", "desktop_control.server"],
      "cwd": "C:\\path\\to\\Desktop-Control-MCP"
    }
  }
}

克劳德代码.claude/settings.json 或通过 claude mcp add:

claude mcp add desktop-control -- python -m desktop_control.server

光标.cursor/mcp.json:

{
  "mcpServers": {
    "desktop-control": {
      "command": "python",
      "args": ["-m", "desktop_control.server"]
    }
  }
}

OpenAI代理SDK --通过Python:

from agents import Agent
from agents.mcp import MCPServerStdio

server = MCPServerStdio(command="python", args=["-m", "desktop_control.server"])
agent = Agent(name="desktop", tools=server.tools())

任何兼容MCP的客户端(Windsurf、Cline、Continue等)都可以使用标准的stdio传输与以下设备连接 python -m desktop_control.server.

然后重新启动您的客户端。

工具(12)

愿景与意识

工具说明
screenshot将桌面捕获为JPEG格式。返回图像+屏幕尺寸。坐标映射1:1到鼠标坐标。
get_elements获取具有精确边界框的交互式UI元素。根据应用程序自动选择CDP或UIA。
get_screen_info监控几何形状、光标位置、DPI比例。
list_open_windows所有带有标题、进程名称和位置的可见窗口。

老鼠

工具说明
mouse_click单击(x,y)。支持左/右/中、双击、修改键。
mouse_drag从一个点拖动到另一个点。
mouse_scroll在某个位置垂直或水平滚动。

键盘

工具说明
keyboard_type键入文本。通过剪贴板粘贴处理Unicode。
keyboard_hotkey按键组合如下 ["ctrl", "c"], ["alt", "tab"], ["win"].

便利

工具说明
open_application通过“开始”菜单搜索、Win+R或直接路径按名称打开应用程序。
click_element按名称查找UI元素并单击其中心——无需猜测坐标。
wait暂停加载屏幕(最多30秒)。

项目结构

src/desktop_control/
  server.py           # FastMCP server, all tool definitions, entry point
  screen.py           # DPI awareness init, screenshot capture via mss
  mouse.py            # Click, drag, scroll via pyautogui
  keyboard.py         # Text typing with Unicode clipboard fallback, hotkeys
  ui_automation.py    # Windows UI Automation (native app element detection)
  cdp.py              # Chrome DevTools Protocol (Electron app element detection)
  element_detection.py # Unified facade — auto-selects CDP or UIA
  windows.py          # App launching, window enumeration, Electron app registry

依赖项

  • mcp --MCP Python SDK(FastMCP)
  • pyautogui --鼠标/键盘控制
  • Pillow --图像处理
  • mss --快速多显示器屏幕截图
  • comtypes --Windows UI自动化COM访问
  • websockets + aiohttp --Electron应用程序的CDP通信

关键技术细节

DPI意识

screen.py 电话 SetProcessDpiAwareness(2) 在模块级别 之前 任何GUI库导入。这确保了 mss 以物理像素分辨率捕获 pyautogui 坐标与屏幕像素匹配。中的服务器导入顺序 server.py 强制执行这一点。

屏幕截图坐标

屏幕截图默认为 monitor_index=1 (主监视器)。使用 monitor_index=0 捕获具有不同维度的虚拟组合监视器,这导致在虚拟监视器和主监视器大小不同的系统上出现约40%的坐标不匹配。

区域屏幕截图包括偏移指令,因此LLM可以将像素位置映射回屏幕坐标。

电子应用支持

电子应用程序(Discord、VS Code、Slack等)暴露了有限的UIA元素。要获得完整的DOM访问权限,请使用以下命令启动它们 open_application(name, method="path") 这增加了 --remote-debugging-port。已知应用程序及其调试端口已在中注册 windows.py:ELECTRON_APPS.

安全

  • pyautogui.FAILSAFE = True --将鼠标移动到左上角(0,0)以中止
  • wait 上限为30秒,以防止挂起
  • 无法与UAC提示交互(安全桌面)

示例用法

从任何MCP客户端(注册服务器后):

“打开Discord并加入通用语音频道”

法学硕士将:

  1. open_application("Discord") 或单击任务栏图标
  2. screenshot() 查看“Discord”窗口
  3. mouse_click() 在正确的服务器图标上
  4. screenshot() 验证导航
  5. mouse_click() 在语音频道上
  6. screenshot() 确认已加入

目录标签

目录标签

PythonClaude模型集成桌面控制本地部署自动化工具UI元素检测LLM集成

支持客户端

ClaudeCursorWindsurfClineVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP