Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Inspect and drive WPF apps: trees, bindings, screenshots, mouse dragging and touch gestures.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"wpf-visual-tree": {
"command": "dnx",
"args": [
"WpfVisualTreeMcp",
"--yes"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add wpf-visual-tree -- dnx WpfVisualTreeMcp --yesIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"wpf-visual-tree": {
"command": "dnx",
"args": [
"WpfVisualTreeMcp",
"--yes"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"wpf-visual-tree": {
"type": "stdio",
"command": "dnx",
"args": [
"WpfVisualTreeMcp",
"--yes"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 6. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto faze79 bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.20.0) kam vor 12 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du .NET auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, debuff
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Let coding agents play, test and tune your 2D web game: live state, explained errors, replays, fuzz.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Let AI agents see, debug and drive running WPF apps. Snoop + Playwright for AI, exposed over the Model Context Protocol — visual tree, bindings, screenshots, mouse dragging, touch gestures, text input and keyboard. Inspect running apps without source changes; touch behavior depends on the application's input support.
*Drag-and-drop, move a canvas item, tap, hold, pan, pinch to zoom and rotate — then query controls, fill a form, select an item and diagnose a binding error. The gesture sequence records real WPF input through MCP, targets controls by AutomationId and checks the application's response, just like the automated tests.*
Watch the animated demo directly.
New in [v0.20.0](https://github.com/faze79/WPFVisualTreeMcp/releases/tag/v0.20.0): Verified support for WPF on .NET 9, .NET 10 and .NET Framework 4.8.1, on both x86 and x64. CI exercises automatic injection and self-hosting across all six supported target frameworks, plus the installed C# SDK from .NET 8, 9 and 10 test projects. The x86 injection helper can also use .NET 9 or 10 when .NET 8 is absent.
The WpfVisualTreeMcp.Automation C# SDK drives virtualized DataGrids/TreeViews, waits for controls, manages WPF windows and streams property changes. The 38-tool MCP server and CLI share the inspection and input engine, including direct AutomationId targeting.
Workflow recording/replay/xUnit export, aggregate diagnostics, full-content screenshots and .NET Framework 4.7.2 support remain available from v0.16.0. Thanks to @miloszkukla for the compatibility and screenshot work in PR #22.
WpfVisualTreeMcp-vX.Y.Z-win-x64.zip from the latest release (requires a .NET 8, 9 or 10 Desktop Runtime)..mcp.json: {
"mcpServers": { "wpf-visual-tree": { "command": "C:/path/to/WpfVisualTreeMcp.Server.exe", "args": [] } } }
3. Ask your agent: *"Look at my running WPF app and tell me why the Save button is disabled."*
Prefer the terminal? The same exe is a full CLI: WpfVisualTreeMcp.Server.exe help. From v0.14.0, run wpfinspect update (or WpfVisualTreeMcp.Server.exe update) to update the installation you launched. See updating. Using Codex? Follow the plugin installation to install the MCP configuration and skill together.
WpfVisualTreeMcp.Automation exposes the inspection and input engine as C# objects, with direct process attachment and AutomationId locators. The package includes the injection payload and works without starting an MCP server or CLI.
| Component | Supported frameworks |
|---|---|
| WPF application being automated | .NET Framework 4.7.2, 4.8, 4.8.1; .NET 8, 9, 10 |
| C# project consuming the Automation NuGet | .NET 8, 9, 10 |
| Architectures | Windows x86 and x64; use an x64 test process to control either |
The application and test project can use different frameworks: for example, a .NET 10 test can automate a .NET Framework 4.8.1 application. The SDK's net8.0 library works in .NET 9/10 test projects; it is not a .NET Framework test library. The compatibility matrix is exercised before release, including actual runtime-version checks. Framework 4.x target builds run on the installed 4.8.1 runtime, since those runtimes update in place.
dotnet add package WpfVisualTreeMcp.Automation --version 0.20.0
using WpfVisualTreeMcp.Automation;
await using var app = await WpfApplication.AttachAsync(processId); await app.ByAutomationId("LoadButton").ClickAsync(); await app.ByAutomationId("StatusTextBox").WaitForTextAsync( "loaded", timeout: TimeSpan.FromSeconds(30)); await app.ByAutomationId("Canvas").PanAsync(100, 0); await app.ByAutomationId("Canvas").ZoomAsync(1.5);
Text waits compare the exact property value: not loaded does not match loaded. Timeouts throw with the expected and last observed values. Property predicates, cancellation, drag, touch, assertions, inspection and recording/replay are also available. Attached sessions leave the app running on disposal; launched sessions own and clean up their process by default.
await app.ByAutomationId("Orders").AsDataGrid()
.RowByKey("Id", "42").Cell("Quantity").SetTextAsync("7"); await app.ByAutomationId("Folders").AsTreeView().Node("Projects", "WPF").SelectAsync(); await app.ByAutomationId("Enabled").CheckAsync(); await using var changes = await app.ByAutomationId("StatusTextBox").ObservePropertyAsync("Text");
The SDK is a separate package from the MCP tool WpfVisualTreeMcp. See installation, API examples and requirements.
WpfVisualTreeMcp is a Model Context Protocol (MCP) server that allows AI coding agents (Codex, Claude Code, Cursor, GitHub Copilot) to inspect and interact with running WPF applications. Think of it as giving your AI assistant the same capabilities as tools like Snoop WPF or Visual Studio's Live Visual Tree.
Debugging WPF UI issues traditionally requires manual inspection with specialized tools. This project bridges that gap by exposing WPF inspection capabilities through MCP, enabling AI agents to:
wpf_touch_gesture / CLI touch: native tap, long press, swipe, pinch and rotation with one or two contacts. Includes an interactive demo and WPF compatibility guidance.wpf_drag / CLI drag: drag between visual-tree elements or by a local displacement, with left/right/middle buttons, configurable duration and local start/end points. Supports slider thumbs, splitters and drag-and-drop. See the parameters and examples.auto capture for native hosted content and reports the selected mode; explicit render rejects unsupported native areas. Capture window/element screenshots visible to AI agents; full_content=true / CLI --full-content captures scrollable content, including virtualized lists, and restores the original scroll positionInvoke/Toggle/Select/ExpandCollapse) or a real OS mouse clickIValueProvider.SetValue, with a TextBox.Text / PasswordBox.Password / reflected-Text fallback, or physical=true to type via OS keyboard input (full Unicode BMP)Ctrl+S, Alt+F4, F5, Enter, Ctrl+Shift+F, ...) to an element or the focused window via OS keyboard inputWpfInjectorHelper.exeThe same WpfVisualTreeMcp.Server.exe runs as either an MCP stdio server (no arguments, default) or as a one-shot CLI (any recognised subcommand). Useful when the MCP server isn't connected, for scripting, and for verifying the pipeline manually. Run WpfVisualTreeMcp.Server.exe help for the full command list. Output is JSON on stdout; diagnostics go to stderr.
vs. the general tool categories:
| WpfVisualTreeMcp | Snoop | FlaUI / WinAppDriver | Generic computer-use (screenshot + mouse) | |
|---|---|---|---|---|
| Consumer | AI agents (MCP) + humans (CLI) | Humans (GUI) | Test code (C#) | AI agents |
| Visual tree, dependency properties | ✅ | ✅ | ❌ (UIA view only) | ❌ |
| Data bindings, binding errors, DataContext | ✅ | ✅ | ❌ | ❌ |
| Find controls by visible text / properties | ✅ | manual | partial (UIA) | pixel guessing |
| Click / type / select / shortcuts | ✅ | ❌ | ✅ | ✅ (blind) |
| Wait for UI conditions (no sleep loops) | ✅ | ❌ | ✅ | ❌ |
| Element screenshots + popup-aware screen capture | ✅ | ❌ | partial | full screen only |
| Works without target source changes | ✅ (auto-injection) | ✅ | ✅ | ✅ |
vs. other WPF MCP servers. Most WPF MCP servers are built on UI Automation (FlaUI): they read the *accessibility* tree, and can only reach WPF internals — bindings, DataContext, ViewModel state — if you install their in-process probe into the app you want to inspect. This server takes the Snoop route instead: it injects at runtime, so it reads the *real* visual tree and diagnoses binding errors and DataContext with zero changes to the target app — nothing to add to your build, nothing to ship into production.
| WpfVisualTreeMcp | UIA-based servers (FlaUI) | Other injection-based servers | |
|---|---|---|---|
| Sees the real visual tree (not just the UIA view) | ✅ injection | ❌ accessibility tree | ✅ |
| Binding errors + DataContext without a probe in the target | ✅ | ❌ (needs in-process probe) | partial |
| Interact
Nur der Anfang wird gezeigt; den Rest findest du im Repo