MCPControl 是一个针对 Windows 操作系统的自动化 MCP(Model Context Protocol)服务器,用于在 AI 模型与桌面系统之间建立程序化控制通道。根据官方资料,它提供对系统操作的编程控制,涵盖鼠标、键盘、窗口管理和屏幕捕获功能。项目当前仅支持 Windows。
用途
MCPControl 的定位是连接 AI 模型与桌面环境,实现对以下对象的程序化控制:鼠标移动与点击、键盘输入与快捷键、窗口管理、屏幕捕获与分析、剪贴板操作。官方将其称为“Windows control server for the Model Context Protocol”。
主要能力
- 窗口管理:列出所有窗口、获取活动窗口信息、聚焦、调整大小与重新定位。
- 鼠标控制:精确移动、点击与拖拽操作、滚动与位置跟踪。
- 键盘控制:文本输入与组合键、按键按下/释放控制、按住按键功能。
- 屏幕操作:高质量截图、屏幕尺寸检测、活动窗口捕获。
- 剪贴板操作。
自动化提供程序(Automation Providers):MCPControl 支持多个自动化提供程序,包括 keysender(默认,原生 Windows 自动化,可靠性高)、powershell(基于 Windows PowerShell,适合较简单的操作)、autohotkey(AutoHotkey v2 脚本,适合高级自动化需求)。可通过环境变量配置提供程序,或针对特定操作使用模块化配置。
使用方式
安装步骤(官方列出):
- 以管理员身份安装 Build Tools(含 VC++ 工作负载),命令:
winget install Microsoft.VisualStudio.2022.BuildTools --override "--wait --passive --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"。 - 安装 Python(如未安装):
winget install Python.Python.3.12。 - 安装 Node.js:
winget install OpenJS.NodeJS(安装最新 LTS 版本)。 - 安装 MCPControl 包:
npm install -g mcp-control。
配置 Claude 客户端通过 SSE 传输连接 MCPControl。连接运行在虚拟机或远程机器上的 MCPControl 服务器时,需将示例中的 192.168.1.100:3232 替换为服务器实际的 IP 地址与端口。启动服务器(在虚拟机或本机):服务器会显示可用网络接口及其 IP 地址、端口号(默认 3232)和连接状态消息。
虚拟机设置示例:
- 以 1280x720 分辨率启动 Windows 虚拟机。
- 在虚拟机上安装:
npm install -g mcp-control。 - 以 SSE 传输运行服务器:
mcp-control --sse。 - 记录虚拟机 IP 地址(例如 192.168.1.100)。
- 用 SSE URL 配置 Claude:
{ "mcpServers": { "MCPControl": { "transport": "sse", "url": "http://192.168.1.100:3232/mcp" } } }。 - 重启 Claude,MCPControl 将出现在 MCP 菜单中。
命令行参数:
--sse:启用 SSE(Server-Sent Events)传输以进行网络访问。--port [number]:指定自定义端口(默认 3232)。--https:启用 HTTPS/TLS(按 MCP 规范,远程部署必需)。--cert [path]:TLS 证书文件路径(使用 --https 时必需)。--key [path]:TLS 私钥文件路径(使用 --https 时必需)。
官方指出,根据 MCP 规范,生产环境中所有基于 HTTP 的传输都必须使用 HTTPS。远程访问部署 MCPControl 时,应始终使用 --https 标志并配置有效的 TLS 证书。
适用场景
官方列出的流行用例包括:
- 辅助自动化:应用测试(将重复的 UI 测试交给 Claude,让 AI 浏览应用并报告问题)、工作流自动化、表单填写。
- AI 实验:AI 玩游戏(通过视觉反馈学习玩简单游戏)、视觉推理(测试 Claude 导航视觉界面和解决视觉谜题的能力)、人机协作。
- 开发与测试:跨应用集成、UI 测试框架、演示创建。
限制与风险
- 仅支持 Windows。
- 官方强烈声明:该软件为实验性且可能具有危险性。使用即表示承认:通过该工具让 AI 直接控制计算机本身具有风险;软件可控制鼠标、键盘及其他系统功能,可能导致意外后果;使用风险完全自负;项目创建者与贡献者不对任何损害、数据丢失或其他后果负责;该工具只应在有适当安全措施的受控环境中使用。
- 已知限制:目前不支持窗口最小化/恢复操作;多屏功能在某些环境下可能无法按预期工作;
get_screenshot工具与 VS Code 扩展 Cline 不兼容(见 GitHub issue #1865);部分操作可能需要提升的权限(取决于目标应用);仅支持 Windows。 - 官方建议在 1280x720 分辨率、单屏下的虚拟机中使用,点击精度针对该分辨率优化,并表示正在处理偏移/缩放缺陷,寻找测试者或协助创建测试工具。
开发与项目信息
开发要求:Windows 操作系统(keysender 依赖所需)、Node.js 18 或更高版本(使用包含构建工具的官方 Windows 安装程序)、npm 包管理器、原生构建工具(npm install -g node-gyp、npm install -g cmake-js)。keysender 依赖依赖 Windows 特定的原生模块,需要这些构建工具。
项目结构:/src 下含 /handlers(请求处理与工具管理)、/tools(核心功能实现)、/types(TypeScript 类型定义),以及 index.ts(主应用入口)。
仓库分支:main(包含最新特性的主开发分支)、release(稳定发布分支,镜像最新稳定标签,当前 v0.2.0)。可通过 npm 安装特定版本。
依赖包括:@modelcontextprotocol/sdk、keysender、clipboardy、sharp、uuid。
许可:MIT License。