mcpField
W
WinWright

WinWright

本地服务
github.com/civyk-official浏览器自动化2013 周前更新

关于 WinWright

WinWright 面向 QA 团队和开发者,提供 Windows 桌面、浏览器及系统自动化的 MCP 服务。它可将 AI 操作记录为 JSON 脚本,以便确定性重放并修复失效选择器。

主要功能

  1. 01自动化 WPF、WinForms 和 Win32 应用
  2. 02通过 CDP 操控 Chrome 和 Edge
  3. 03录制并重放 JSON 自动化脚本
  4. 04修复失效的选择器
  5. 05管理 Windows 进程和服务
  6. 06通过 MCP 或命令行调用工具

适用场景

  1. 01创建可在 CI 中重复运行的 UI 测试
  2. 02自动执行跨桌面应用和浏览器的工作流
  3. 03从旧版 Windows 应用提取数据
  4. 04检查应用健康状态和 UI 可访问性

MCP 相关

向 MCP 客户端提供桌面、浏览器、系统和 AI Agent 工具。支持通过 stdio 或 HTTP 运行;MCP 受限时也可使用命令行调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

WinWright

GitHub Release License Platform MCP

适用于 Model Context Protocol 的 Windows 自动化服务。 提供 52 个整合工具,用于桌面应用(WPF、WinForms、Win32)、浏览器(通过 CDP 支持 Chrome/Edge) 和系统管理,可通过 MCP 供 AI Agent 使用,也可在 MCP 受阻时直接通过命令行调用(winwright call …)。

用通俗英语描述测试——其余工作交给 AI Agent

WinWright 演示

用通俗英语编写测试用例。AI Agent 使用 WinWright 的 MCP 工具来发现 UI 控件、执行操作, 并将所有内容记录为可移植的 JSON 脚本。

重放录制的脚本——无需 AI Agent

运行脚本演示

录制完成后,可通过 winwright run 确定性地运行脚本——无需 AI Agent、 无需调用大模型,也没有令牌费用。每次运行的结果都相同。

如果 UI 布局发生变化,WinWright 可以自动自愈失效的选择器 (winwright heal)。对于较大的 UI 重新设计,可让 AI Agent 更新脚本—— 这仍比从头重写测试更快。

这很重要,因为:

  • 节省 AI 成本——Agent 只需录制一次,之后即可免费重放脚本
  • 结果确定——每次运行都会产生相同、可复现的结果
  • 易于维护——选择器可自愈,脚本可由 AI 辅助修复

目录

快速开始

安装并配置 MCP 客户端,然后让 Agent 执行操作:

“启动记事本,输入‘Hello from WinWright’,然后读回你输入的内容。”

Agent 调用 WinWright 工具并返回结果:

ww_launch    → { "processId": 12840, "mainWindowTitle": "Untitled - Notepad" }
ww_type      → { "success": true }
ww_get_value → { "value": "Hello from WinWright" }

每个工具都会返回结构化 JSON。由 Agent 决定调用哪些工具以及调用顺序—— 你只需用通俗语言描述目标。

安装

从 GitHub Releases 下载:

资源架构
winwright-*-win-x64.zipIntel/AMD 64 位
winwright-*-win-arm64.zipARM64(Surface Pro 等)

MCP 客户端配置

Claude Code / VSCode(stdio)
{
  "servers": {
    "winwright": {
      "type": "stdio",
      "command": "C:/path/to/Civyk.WinWright.Mcp.exe",
      "args": ["mcp"]
    }
  }
}
Claude Code / VSCode(HTTP)

先启动服务:Civyk.WinWright.Mcp.exe serve --port 8765

{
  "servers": {
    "winwright": {
      "type": "http",
      "url": "http://localhost:8765/mcp"
    }
  }
}
Claude Desktop
{
  "mcpServers": {
    "winwright": {
      "command": "C:/path/to/Civyk.WinWright.Mcp.exe",
      "args": ["mcp"]
    }
  }
}

CLI 模式(MCP 受阻时)

许多企业环境会阻止 MCP。此时可完全通过命令行驱动 WinWright—— 使用相同的工具和自动化流程,Agent 与工具之间无需 MCP 客户端。后台守护进程(一个 loopback serve 实例)负责管理活动会话,因此 ww_launch 返回的 appId 在不同命令之间仍然有效。

winwright tools                          # discover the tool surface (replaces MCP advertisement)
winwright call ww_launch --exePath "C:\Apps\MyApp.exe"   # -> {"appId":"app-1", ...}
winwright call ww_click  --appId app-1 --selector "#submit"
winwright call ww_get_value --appId app-1 --selector "#status"
winwright call ww_close  --appId app-1

JSON 结果输出到 stdout(可安全地通过管道传给 jq);诊断信息输出到 stderr。守护进程会在首次执行 call 时自动启动,仅绑定到 loopback 地址,并在空闲时自行退出。

由于 CLI 不会像 MCP 那样公布自身功能,因此请安装捆绑的 Claude Code skill,让 Agent 知道如何使用它——该 skill 内嵌于二进制文件中,因此可离线安装:

winwright skills install --scope user      # -> %USERPROFILE%\.claude\skills\winwright\
winwright skills install --scope project   # -> <cwd>\.claude\skills\winwright\

使用场景

每张卡片都链接到一份详细指南,其中包含真实提示词、工具调用参数 和示例输出。可在 docs/use-cases/ 浏览所有指南。

用于 CI 的脚本化 UI 测试自动化

只需录制一次 AI 会话——Agent 探索 UI、执行操作并嵌入断言—— 然后导出可移植的 JSON 脚本,在 CI 中无需 AI Agent 即可重放。描述你的应用, 或粘贴现有的手动测试套件;Agent 会自动编写脚本。

自主桌面自动化

让 AI Agent 访问你的桌面。它可以启动应用、在应用间传输数据、 填写表单,并截取屏幕截图以供验证——无需编写或维护脚本。

旧版应用数据提取

许多企业应用没有 API。只要 Windows UI Automation 能识别控件, WinWright 就能读取其值。从从未为集成而构建的应用中提取数据。

重复任务的脚本化桌面自动化

只需录制一次重复的日常工作流。导出为 RPA 脚本,按需重放—— 录制完成后无需 AI Agent。适用于导出报告、导入数据 以及任何每次执行方式都相同的多步骤任务。

AI 驱动的 UI 测试

AI Agent 会探索你的 WinForms 或 WPF 应用,查找元素并断言状态。 无需维护脆弱的 XPath 选择器——UI 发生变化时,Agent 会自动适应。

批量数据验证

自动驱动应用处理 50 条以上记录。将每条显示的值与 参考表进行比较,并获取包含差异详情的结构化通过/失败报告。

跨应用工作流

自动化跨桌面应用和浏览器的工作流——从会计应用读取数据, 提交到 Web 门户,并截取确认信息的屏幕截图。

应用健康监控

验证正在运行的应用是否正常运行且响应正常——进程正在运行、连接状态显示 “Connected”、服务运行正常。配合 Windows Task Scheduler 执行定时检查。

远程管理

通过 HTTP 管理远程计算机上的进程、服务、注册表和计划任务。 五层安全防护:IP 允许列表、Windows Negotiate 身份验证、AD 组授权、 速率限制和按用户设置的会话数限制。

无障碍审计

遍历完整的 UIA 元素树。检查控件是否有名称、按钮是否有标签, 以及是否存在键盘操作路径。AI Agent 会生成合规报告。

对话框和模态窗口处理

在每次点击后检测意外的确认对话框、文件保存提示和 Win32 MessageBox 弹窗。 处理或关闭它们,且不会中断自动化流程。

工具

52 个整合工具,分为四个类别,另有一层贯穿各类的安全层 (通过 action/mode 参数将 110 多个工具合并而成):

类别工具数功能
桌面自动化33启动/附加到/关闭应用、点击、输入、读取值、截图、树形导航和查询、等待、网格(ww_grid)、对话框(ww_dialog)、窗口(ww_window)、剪贴板、会话句柄(UIA3)
系统8进程、注册表、环境变量、文件系统、网络、服务、计划任务、计算机控制
AI Agent7语义快照和状态差异比较(ww_snapshot)、元素检查(ww_inspect)、事件监视、测试用例录制、选择器修复(ww_heal_script)、用于发现工具的 ww_get_schema
浏览器4通过 CDP 操作 Chrome/Edge——会话、页面、元素、高级功能(eval/表单/对话框)。无需依赖 Selenium
安全—贯穿各类:运行时权限控制,支持 AD 组覆盖设置;JSONL 审计日志

每个工具都通过 action 参数支持多种操作(例如,ww_service(action="list")、ww_snapshot(action="get")),在保留完整功能的同时减少工具总数。随时通过 winwright tools 查看当前可用工具。

配置

在二进制文件旁边(或 %APPDATA%\WinWright\winwright.json)创建 winwright.json。 所有设置都位于顶层的 WinWright 节下:

{
  "WinWright": {
    "Permissions": {
      "AllowShell": false,
      "AllowProcessKill": false,
      "AllowRegistryWrite": false,
      "AllowFileWrite": false,
      "AllowServiceControl": false,
      "AllowTaskScheduler": false,
      "AllowPower": false,
      "AllowLockScreen": false,
      "AllowMachineEnv": false,
      "AllowBrowserEval": false,
      "AllowNetworkProbe": true,
      "AllowFileRead": true
    },
    "Audit": {
      "Enabled": true,
      "RetentionDays": 30
    }
  }
}

默认情况下,所有破坏性操作均处于禁用状态——只启用所需功能。 AllowNetworkProbe(ping/DNS)和 AllowFileRead(ww_file 读取/列出)是仅有的默认值为 true 的权限;两者均为只读权限。通过 HTTP 向远程客户端提供服务时,建议将其设为 false。受权限控制的调用会记录到按日轮换的 audit-YYYY-MM-DD.jsonl 文件中。

CLI

winwright mcp                                    Start MCP server (stdio)
winwright serve --port N                         Start MCP server (HTTP, default 8765)
winwright tools [--json|<name>]                  List the tool surface (CLI discovery; no MCP client needed)
winwright call <tool> [--param value …]          Invoke one tool via the local daemon (CLI automation)
winwright daemon <start|stop|status>             Control the background host that owns CLI sessions
winwright skills <install|list|uninstall>        Install the bundled Claude Code skill (offline)
winwright run <script.json> [--format text|junit] [--output <file>] [--screenshots [--screenshots-dir <dir>]]
                                                 Replay a recorded automation script
winwright heal <script.json> [--output <file>] [--min-confidence <0-1>]
                                                 Probe broken selectors against a live UI and repair them
                                                 (launches/attaches using the script's own metadata)
winwright inspect <pid>                          Dump UIA element tree for a process
winwright doctor                                 Verify environment prerequisites

要求

  • Windows 10 或 11(x64 或 ARM64)
  • 下载二进制文件无需安装 .NET 运行时——它是独立运行的

适用对象

适合:

  • 测试 WinForms、WPF 或 Win32 应用,并希望借助 AI 创建测试的 QA 工程师
  • 构建需要与 Windows 桌面交互的 AI Agent 的开发者
  • 从没有 API 的旧版企业应用中提取数据的团队
  • 任何希望在 Windows 上自动化重复的多应用工作流的人

不适合:

  • Linux 或 macOS 自动化——WinWright 仅适用于 Windows(UIA 是 Windows API)
  • 仅限 Web 的测试——请改用 Playwright;WinWright 的浏览器工具适用于桌面与浏览器混合工作流
  • 高吞吐量数据管道——UIA 一次只读取一个控件;如果需要批量传输数据,使用合适的 API 或数据库连接会更好

对比

WinWrightUiPathPower Automate DesktopPlaywright
自动化对象桌面 + 浏览器 + 系统桌面 + 浏览器 + 系统桌面 + 浏览器 + 云仅浏览器
使用方式通过 MCP 使用 AI Agent(自然语言)可视化工作流设计器可视化工作流设计器代码(JS/Python/C#)
桌面支持WPF、WinForms、Win32(UIA3)WPF、WinForms、Win32、Java、SAPWPF、WinForms、Win32无
浏览器支持通过 CDP 支持 Chrome/EdgeChrome、Edge、FirefoxChrome、Edge、FirefoxChrome、Edge、Firefox、Safari
选择器模型AI 按名称/类型选择元素可视化选择器录制器可视化选择器录制器CSS/XPath 选择器
成本免费需付费许可(按用户/机器人计费)免费(桌面版),云端版需付费许可免费
设置单个二进制文件,无需运行时完整安装 + StudioWindows 应用商店应用npm install
设计用途AI Agent 和 MCP 客户端企业 RPA商业用户自动化开发者测试

WinWright 不是 RPA 平台,而是一个让 AI Agent 能够访问 Windows 的工具服务。 如果你需要可视化工作流构建器或企业级编排,UiPath 或 Power Automate 是更好的选择。如果你只需要浏览器测试,Playwright 则更成熟。

当其他工具无法满足需求时,WinWright 就能派上用场——例如 AI Agent 需要查看并操作 Windows 桌面,或是你需要在一个 MCP 会话中同时使用桌面和浏览器。

支持

帮助本项目持续发展!

如果 WinWright 为你的开发工作流带来了帮助,不妨支持它的持续开发。你的捐助将用于:

  • 持续维护和修复错误
  • 开发新功能
  • 支付基础设施费用

所有捐款的 50% 将直接捐给帮助有需要者的儿童慈善机构。 其余资金将用于项目维护和功能升级。

Buy Me a Coffee Ko-fi

无论捐助多少,每一份支持都能带来改变。

许可证

可免费用于任何用途——个人、学术或商业用途。 完整条款请参阅 LICENSE。重新分发时必须注明出处。


以信任为基石,以价值为驱动 — Civyk

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。