Windows automation server for the Model Context Protocol
WinWright
Windows automation server for the Model Context Protocol. ~59 consolidated tools for desktop (WPF, WinForms, Win32), browser (Chrome/Edge via CDP), and system management — all accessible to AI agents over MCP.
Describe tests in plain English — the AI agent does the rest

You write test cases in plain English. The AI agent uses WinWright's MCP tools to discover UI controls, perform actions, and record everything as a portable JSON script.
Replay recorded scripts — no AI agent needed

Once recorded, scripts run deterministically with winwright run — no AI agent,
no LLM calls, no token costs. Results are the same every time.
If the UI layout changes, WinWright can self-heal broken selectors automatically
(winwright heal). For larger UI redesigns, ask the AI agent to update the script —
still faster than rewriting tests from scratch.
Why this matters:
- Save AI costs — the agent records once, scripts replay for free
- Deterministic results — every run produces identical, reproducible outcomes
- Easy maintenance — self-healing selectors and AI-assisted script repair
Contents
- Quick Start
- Install
- MCP Client Configuration
- Use Cases
- Tools
- Configuration
- Who Is This For
- How It Compares
- Support
- License
Quick Start
Install, configure your MCP client, then ask the agent to do something:
"Launch Notepad, type 'Hello from WinWright', then read back what you typed."
The agent calls WinWright tools and returns results:
ww_launch → { "processId": 12840, "mainWindowTitle": "Untitled - Notepad" }
ww_type → { "success": true }
ww_get_value → { "value": "Hello from WinWright" }
Every tool returns structured JSON. The agent decides which tools to call and in what order — you describe the goal in plain language.
Install
Claude Code Plugin
From inside Claude Code, add the marketplace and install:
/plugin marketplace add civyk-official/civyk-winwright
/plugin install winwright@civyk-winwright
The plugin's install script downloads the latest binary automatically.
Note: WinWright has been submitted to the official Claude Code plugin directory and is pending review. Until approved, use the marketplace commands above to install.
Binary Download
Download from GitHub Releases:
| Asset | Architecture |
|---|---|
winwright-*-win-x64.zip |
Intel/AMD 64-bit |
winwright-*-win-arm64.zip |
ARM64 (Surface Pro, etc.) |
MCP Client Configuration
Claude Code / VSCode (stdio)
{
"servers": {
"winwright": {
"type": "stdio",
"command": "C:/path/to/Civyk.WinWright.Mcp.exe",
"args": ["mcp"]
}
}
}
Claude Code / VSCode (HTTP)
Start the server first: 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"]
}
}
}
Use Cases
Each card links to a detailed walkthrough with real prompts, tool call parameters, and example output. Browse all guides in docs/use-cases/.
[Scripted UI Test Automation for CI](docs/use-cases/01-scripted-ci.md)
Record an AI session once — the agent discovers the UI, performs actions, embeds assertions — then export a portable JSON script that replays in CI without an AI agent. Describe your app or paste your existing manual test suite; the agent scripts it automatically.
[Autonomous Desktop Automation](docs/use-cases/02-desktop-automation.md)
Give an AI agent access to your desktop. It launches apps, moves data between them, fills forms, and takes screenshots for verification — no scripts to write or maintain.
[Legacy App Data Extraction](docs/use-cases/03-data-extraction.md)
Many enterprise apps have no API. If Windows UI Automation can see a control, WinWright can read its value. Extract data from apps that were never built for integration.
[Scripted Desktop Automation for Repeated Tasks](docs/use-cases/04-scripted-desktop-
Tools (3)
ww_launchLaunches a Windows application and returns process details.ww_typeTypes text into the active or specified UI control.ww_get_valueRetrieves the value from a specific UI control.Configuration
{
"mcpServers": {
"winwright": {
"command": "C:/path/to/Civyk.WinWright.Mcp.exe",
"args": ["mcp"]
}
}
}