把 Windows 桌面控制接进 4 款 AI Agent:Hermes、OpenCode、Claw 与 Claude 的实战架构
在多 Agent 协同的日常开发体系中,针对不同场景调度专用 Agent 已成为常态。在我管理的这台 Windows 工作站上,常驻着 4 款不同的 AI 代码助手:
- Hermes Agent:Nous Research 开发的主力 Agent,具备强大的多模态调度与终端工具链。
- OpenCode:自带 TUI 界面的开源多模型编程 Agent。
- Claw Code:基于 Rust 重写的 Claude Code 纯净分支(
claw.exe)。 - Claude Code:Anthropic 官方的代码助手。
虽然它们在编写代码、调用终端命令和修改文件上表现出色,但当面对没有 REST API 也没有 CLI 接口的老旧 Windows 客户端、系统级原生文件对话框或桌面弹窗时,它们默认都无法直接操作。
开源的 windows-mcp 正好填补了这一空白,它通过 Model Context Protocol 暴露了 Windows 原生 UIAutomation、鼠标键盘模拟以及窗口管理工具。以下是我如何在 4 个 Agent 客户端中统一接入并避免配置漂移的完整实录。
Python 3.14+ 运行基线
windows-mcp 有一个明确的硬性环境要求:必须使用 Python 3.14+。在 Windows 机器上手工安装多版本 Python 并维护软链接极易发生环境变量冲突。
最稳妥的方案是借助 uv 的瞬态执行器 uvx。各个 Agent 统一通过以下命令启动:
uvx windows-mcp serve
uvx 会按需拉取隔离环境、预装 PyWin32 与 Pydantic 依赖,通过标准输入输出(stdio)管道与 Agent 进程通信,完全不污染系统的全局 Python 环境。
1. Hermes Agent 接入
Hermes 内置原生 MCP 客户端,配置收敛在 ~/.hermes/config.yaml 中。
可以直接使用 Hermes CLI 的工具发现命令一键注册:
printf 'y\n' | hermes mcp add windows-mcp --command uvx \
--env WINDOWS_MCP_CONTROL=false WINDOWS_MCP_SCREENSHOT_SCALE=0.5 WINDOWS_MCP_DISABLE_FLASH=1 WINDOWS_MCP_EXCLUDE_PROCESSES=Code.exe,Cursor.exe ANONYMIZED_TELEMETRY=false \
--args windows-mcp serve --exclude-tools PowerShell,Registry
该命令会自动向 ~/.hermes/config.yaml 写入如下规范结构:
mcp_servers:
windows-mcp:
command: uvx
args:
- windows-mcp
- serve
- --exclude-tools
- PowerShell,Registry
env:
WINDOWS_MCP_CONTROL: "false"
WINDOWS_MCP_SCREENSHOT_SCALE: "0.5"
WINDOWS_MCP_DISABLE_FLASH: "1"
WINDOWS_MCP_EXCLUDE_PROCESSES: Code.exe,Cursor.exe
ANONYMIZED_TELEMETRY: "false"
验证连接:
$ hermes mcp list
MCP Servers:
Name Transport Tools Status
──────────────── ────────────────────── ──────── ──────────
windows-mcp uvx windows-mcp serve all ✓ enabled
2. OpenCode 接入
OpenCode 统一读取 ~/.config/opencode/opencode.jsonc 配置文件。
在根节点的 "mcp" 对象中追加 windows-mcp 本地服务配置:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"windows-mcp": {
"type": "local",
"command": ["uvx", "windows-mcp", "serve", "--exclude-tools", "PowerShell,Registry"],
"enabled": true,
"environment": {
"WINDOWS_MCP_CONTROL": "false",
"WINDOWS_MCP_SCREENSHOT_SCALE": "0.5",
"WINDOWS_MCP_DISABLE_FLASH": "1",
"WINDOWS_MCP_EXCLUDE_PROCESSES": "Code.exe,Cursor.exe",
"ANONYMIZED_TELEMETRY": "false"
}
}
}
}
验证 OpenCode 连接状态:
$ opencode mcp list
┌ MCP Servers
│
● ✓ windows-mcp connected
│ uvx windows-mcp serve --exclude-tools PowerShell,Registry
│
└ 1 server(s)
3. Claw Code (claw.exe) 接入
Claw Code(v0.1.7)支持在项目目录的 .claw/settings.json 或用户主目录的 ~/.claw/settings.json 中配置 MCP:
{
"mcpServers": {
"windows-mcp": {
"command": "uvx",
"args": [
"windows-mcp",
"serve",
"--exclude-tools",
"PowerShell,Registry"
],
"env": {
"WINDOWS_MCP_CONTROL": "false",
"WINDOWS_MCP_SCREENSHOT_SCALE": "0.5",
"WINDOWS_MCP_DISABLE_FLASH": "1",
"WINDOWS_MCP_EXCLUDE_PROCESSES": "Code.exe,Cursor.exe",
"ANONYMIZED_TELEMETRY": "false"
}
}
}
}
在终端中验证 Claw Code 状态:
$ claw mcp
MCP
Working directory C:\Users\workstation
Configured servers 1
Total entries 1
Invalid entries 0
windows-mcp stdio user uvx windows-mcp serve --exclude-tools PowerShell,Registry
4. Claude Code 接入
Claude Code 的全局配置文件为 ~/.claude.json,结构与 Claw 完全兼容。直接将上述 windows-mcp 块镜像写入 ~/.claude.json 即可:
{
"mcpServers": {
"windows-mcp": {
"command": "uvx",
"args": ["windows-mcp", "serve", "--exclude-tools", "PowerShell,Registry"],
"env": {
"WINDOWS_MCP_CONTROL": "false",
"WINDOWS_MCP_SCREENSHOT_SCALE": "0.5",
"WINDOWS_MCP_DISABLE_FLASH": "1",
"WINDOWS_MCP_EXCLUDE_PROCESSES": "Code.exe,Cursor.exe",
"ANONYMIZED_TELEMETRY": "false"
}
}
}
}
端到端实跑验收
在完成 4 处配置写入后,我编写了一段 Python 探针脚本,通过标准 mcp 客户端对真实工具进行了全链路测试:
DisplayInventory:准确识别出本机双屏幕布局(1080p 主屏 + 1440p 扩展屏,虚拟桌面边界为left: -313, top: -1440, right: 2247, bottom: 1080)。Screenshot:成功完成按 0.5 比例下采样的屏幕截图捕获,并如实返回了物理鼠标位置(1318, -714)。Notification:在 Windows 11 操作中心成功弹出发起一条原生 Toast 提示。
通过保持命令参数与环境变量在 4 款 Agent 之间的一致对齐,无论当前在哪一个终端或界面中工作,当代码与命令行无法触达原生桌面软件时,Agent 都能随时调起标准的桌面自动化工具。
想要一个 24/7 自动接单、发试用、不漏单的业务自动化系统?
别让夜间和周末的客户询盘因为“没人回”而流失给竞争对手。我帮中小企业定制 Telegram / WhatsApp 智能客服与全自动履约系统(打通商品库、CRM 与自动发货,无高昂 SaaS 人头费)。