TestWeave MCP
Provides automated testing for Electron applications, including inspection of renderer content, multiple windows, and native Electron menus, plus generation, execution, and reporting of reusable test suites via Playwright.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TestWeave MCPGenerate a test plan for the Windows login flow in the desktop application."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TestWeave MCP
One testing workflow for web, Electron, and Windows desktop applications.
TestWeave connects an MCP-compatible AI client to real application controls, then turns a test plan into reusable tests and evidence-rich, offline HTML reports. It also runs saved suites directly from the command line.
Inspect: browser accessibility snapshots, Windows UI Automation trees, multiple windows, native Electron menus, and bounded nested-menu discovery.
Plan and generate: requirement-traced plans, validated JSON suites, portable JavaScript test runners, and planner/generator/healer MCP prompts.
Execute: sequential cases with fresh sessions, explicit assertions, screenshots, and Playwright traces.
Heal with evidence: opt-in, exact-identity selector recovery; locator-only patches with backups; no weakened assertions.
Report: summary dashboard, searchable/filterable case explorer, step drill-down, evidence images, healing audit, environment details, JSON export, dark/light themes, and print layout. No CDN or report server required.
Scope: Web and Electron use Playwright on its supported operating systems. Native desktop automation currently uses FlaUI on Windows. No framework can guarantee every app: inaccessible canvas controls, protected windows, disabled Electron inspect fuses, elevated apps, and locked desktops need app-specific setup or another adapter. Native macOS/Linux desktop apps are not supported in v0.1.

The verification fixture above deliberately includes one failing assertion and one healed selector to demonstrate truthful reporting.
Quick start: npx from GitHub
Install Node.js 24 LTS or newer, then run this once in a terminal:
npx --yes https://github.com/warademilind/testweave-mcp/releases/download/v0.1.1/testweave-mcp-0.1.1.tgz setupOn Windows x64, add native desktop support with:
npx --yes https://github.com/warademilind/testweave-mcp/releases/download/v0.1.1/testweave-mcp-0.1.1.tgz setup --desktopDesktop testing also needs the .NET 8 Windows Desktop Runtime and a signed-in, unlocked desktop. The setup command installs matching Chromium and caches the matching native worker from this repository's release, verifying its SHA-256 checksum before extraction. It does not install .NET or require a .NET SDK. Use setup --desktop --skip-browser for desktop-only testing.
Connect an MCP client
Paste this into a client that accepts an mcpServers configuration:
{
"mcpServers": {
"testweave": {
"command": "npx",
"args": [
"--yes",
"https://github.com/warademilind/testweave-mcp/releases/download/v0.1.1/testweave-mcp-0.1.1.tgz"
]
}
}
}Restart or reload the client, enable TestWeave's tools, and ask it to call doctor. This launcher downloads a compiled release package: no clone, Git installation, build command, or local executable path is required. The first launch needs internet access to download the package and dependencies. MCP startup itself never installs browsers or desktop workers. This is GitHub distribution; testweave-mcp@latest is not published to the npm registry yet.
The same stdio server works across compatible clients; configuration file names and wrappers differ. See the ready-to-copy general JSON, Codex TOML, and VS Code servers-style JSON. Newer VS Code versions that accept .mcp.json can use the general JSON. Source-checkout configurations remain in mcp-clients.json.
By default, plans, suites and reports go into the client's current working directory. If it is a system folder, drive root, or unwritable, the launcher uses ~/TestWeave. To choose a project explicitly, append "--workspace", "/absolute/path/your-test-project" to args, or set TESTWEAVE_WORKSPACE. On Windows JSON paths use doubled backslashes, for example D:\\tests. Existing suites and executable paths remain local to the machine running the MCP.
Check prerequisites at any time:
npx --yes https://github.com/warademilind/testweave-mcp/releases/download/v0.1.1/testweave-mcp-0.1.1.tgz doctorDevelop from source
Install Node.js 24 and Git, then:
git clone https://github.com/warademilind/testweave-mcp.git
cd testweave-mcp
npm ci
npm run build
node dist/cli.js setup
node dist/cli.js run examples/web.suite.jsonThe source example uses a self-contained HTML fixture. Open the reported index.html for the summary and detailed.html for the test explorer. From a checkout, native source builds additionally need the .NET 8 SDK: run npm run build:native. The worker uses FlaUI 5.0.0 with pinned NuGet dependencies. For custom worker locations set TESTWEAVE_NATIVE_WORKER to the DLL's absolute path.
GitHub hosts source and downloadable builds; automation runs locally beside the app under test. Native desktop automation needs the same privilege level as its target. Attach with pid or a unique windowTitle, or launch an executable. Attached native applications are left open. One native session per Windows desktop is supported.
Related MCP server: winagent
Use it with an AI client
Ask the connected client:
Inspect this application. Build a test plan for its project form, including validation and recovery cases. Save a reusable suite, execute it, and give me the summary and detailed HTML reports. Preserve assertions when proposing selector repairs.
The included test-planner, test-generator, and test-healer prompts guide the host model. Planning and generation are authored by that model and validated/persisted by TestWeave; there is no hidden LLM service, required API key, or claim that a template independently understands arbitrary business rules.
Typical sequence:
session_start → ui_snapshot / ui_menus → plan_create → test_generate
↓
test_run → test_status → report_get
↓
heal_suggest → heal_apply → rerunLong suites run as background jobs inside the MCP process; test_run returns a job ID immediately. Keep the client/server alive and poll test_status. CLI execution waits and exits nonzero for failed cases. Healed cases are a separate outcome.
A test is a portable document
{
"schemaVersion": 1,
"name": "Project form",
"target": { "kind": "web", "url": "http://localhost:3000" },
"healing": "off",
"tests": [{
"id": "project-save",
"name": "Save a project",
"requirements": ["R01"],
"tags": ["smoke"],
"steps": [
{ "name": "Name", "action": "fill", "locator": { "label": "Project name" }, "value": "Launch" },
{ "name": "Save", "action": "click", "locator": { "role": "button", "name": "Save project" } },
{ "name": "Verify", "action": "assertText", "locator": { "testId": "status" }, "value": "Saved Launch" }
]
}]
}For Electron, set kind: "electron" and executable plus optional args, or supply an existing Chromium cdpUrl. Native Electron menu reading requires launch mode; CDP-only connections expose renderer menus. Playwright's Electron API remains experimental.
For Windows native apps use kind: "desktop" and executable, pid, or windowTitle. Locators use automationId, controlType, name, and optional windowTitle. See examples and tool/action reference.
Honest healing and honest results
Healing defaults to off. semantic mode retries only a locator that resolved to zero controls before the action, using a unique exact accessible name and compatible role/control type. It never retries a failed assertion, fuzzy-matches a nearby button, or blindly repeats a partially completed action. Every repair appears in the report.
heal_apply previews by default; apply: true writes a locator-only patch, backup and audit record. Assertion steps cannot be patched. A patch is unverified until the test is rerun.
Menu discovery reads actual runtime controls. It never substitutes a predefined menu list. UIA discovery expands supported submenu containers, collapses what it opened, and never invokes leaf commands. Lazy/non-accessible menus may require explicit navigation; truncated trees and discovery errors are reported.
GitHub automation
The repository includes:
Linux/Windows/macOS Node build and unit/protocol checks.
Chromium and Electron fixture integration on Linux.
Compilation of the Windows worker on a Windows runner.
An opt-in native fixture workflow for a self-hosted interactive Windows runner.
Tag-driven releases with npm-format tarball, native Windows worker, and SHA-256 checksums.
See CI and release guide. Native UI automation is not claimed to work on GitHub-hosted unattended Windows desktops. GitHub Pages can host a deliberately sanitized report; TestWeave does not upload private test artifacts automatically.
Develop and verify
npm ci
npm run build
npm test
npx playwright install chromium
npm ci --prefix integration/fixtures/electron
npm run test:integration:web
npm run test:integration:electronOn Windows with .NET 8+, build the worker and native fixture, then run npm run test:integration:native. See CONTRIBUTING.md.
Reports and screenshots stay under .testweave/ and are ignored by Git. The browser and target application can still access the network. Executable paths and actions are trusted local-user inputs; connect only a trusted MCP client. See SECURITY.md.
Upstream foundations
Component | Pinned version | Source |
Playwright | 1.64.1 | |
FlaUI UIA3 | 5.0.0 | |
MCP TypeScript server/client SDK | 2.4.0 | |
Zod | 4.6.7 |
Versions were checked on 31 October 2026 and are locked in package/restore lockfiles. Dependencies are used through their public APIs, with upstream attribution in THIRD_PARTY_NOTICES.md.
MIT licensed. Independent project; not affiliated with Microsoft, FlaUI, or the MCP maintainers.
This server cannot be deployed
Maintenance
Related MCP Connectors
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Run, debug, and triage tests from your IDE using natural language, no dashboard switching, no manual data transfers. The TestMu AI (formerly LambdaTest) MCP Server is a single remote server exposing four tool suites: HyperExecute — analyze your project, generate YAML configs and test runner commands, then monitor jobs and sessions. Automation — pull a TestID's details plus command, network, and console logs into one chat for instant root-cause analysis. Includes mobile app upload. SmartUI — explain pixel, layout, DOM, and perceptual changes in a visual regression run, with context-aware React/HTML/CSS fixes. Accessibility — audit any public URL or a local React app against WCAG and get ready-to-apply remediation steps. Connects over https://mcp.lambdatest.com/mcp using OAuth 2.1 — no API keys in your config. One-click install in Cursor; works with Claude, GitHub Copilot, Cline, and any MCP client. Tests execute on the TestMu AI cloud: 3,000+ browsers and 10,000+ real devices.
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceGives AI agents and MCP clients direct control over native desktop apps, Chrome/Electron browsers, and Android devices with screenshots, OCR, accessibility-based element lookup, input simulation, window management, CDP, and ADB in one local server.139MIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP-compatible AI platforms to see the screen and operate any desktop software through real mouse clicks, text input, key presses, and scripted scenario execution.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to see and control the user's real Chrome/Brave/Edge profile over MCP, so they can read pages, click, type, take screenshots, audit layouts, debug CSS, and scrape paginated or infinite-scroll data. Because it drives the normal browser via the DevTools protocol with real input events, it works on modern JavaScript apps and on sites where the user is logged in.24 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables an AI client to inspect and control an interactive Windows desktop, including screenshots, mouse and keyboard input, Windows UI Automation, PowerShell commands with managed jobs, and authenticated file uploads/downloads. Connects over remote MCP Streamable HTTP or local stdio without a separate host-side gateway.Apache 2.0