MkDevForge.WpfPilot
0.1.0-preview.17
Suggested Alternatives
Additional Details
Renamed
This is a prerelease version of MkDevForge.WpfPilot.
dotnet tool install --global MkDevForge.WpfPilot --version 0.1.0-preview.17
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
dotnet tool install --local MkDevForge.WpfPilot --version 0.1.0-preview.17
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=MkDevForge.WpfPilot&version=0.1.0-preview.17&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package MkDevForge.WpfPilot --version 0.1.0-preview.17
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
WpfPilot
WpfPilot is an MCP server that gives AI assistants the ability to inspect and control running WPF applications.
- Interaction (out-of-process): FlaUI (UIA3)
- Deep WPF inspection (in-process): an injected agent powered by Snoop
Install (dotnet tool)
dotnet tool install -g MkDevForge.WpfPilot --version 0.1.0-preview.15
dotnet tool update -g MkDevForge.WpfPilot --version 0.1.0-preview.15
Run
wpfpilot
The server speaks MCP over stdio.
Debugging tools
list_displays: list connected displays and virtual screen bounds (helps with multi-monitor coordinate debugging).trace_start/trace_stop: record MCP tool timings and write a JSON trace file (defaults to%TEMP%).performance_start/performance_stop: lightweight UI-thread latency sampling.set_window_bounds/set_window_state: resize/restore windows (useful for deterministic screenshots).take_screenshot: supports optional annotation (rect/label) for debugging.
MCP client config
Example (generic MCP config):
{
"mcpServers": {
"wpfpilot": {
"command": "wpfpilot"
}
}
}
Notes / limitations
- Windows only.
inject_agentrequires the target process to be running as the same user and not elevated above the server.- ARM64 target processes are not supported for injection (x86/x64 only).
- Custom controls that do not expose meaningful UIA peers/patterns may not be interactable via UI Automation.
- Multi-monitor setups are supported; tool coordinates are in virtual screen coordinates (which may be negative).
Licensing
- WpfPilot source code is licensed under MIT (
LICENSE). - The packaged Phase 2 payload redistributes Snoop components under Ms-PL.
- See
THIRD_PARTY_NOTICES.mdandreferences/snoopwpf/License.txt.
Development
This repo uses a git submodule for Snoop:
references/snoopwpf
Build the injector payloads (required for Phase 2 injection tools):
pwsh scripts/build-snoop.ps1 -Configuration Debug
pwsh scripts/build-snoop.ps1 -Configuration Release
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 0.1.0-preview.17 | 144 | 2/28/2026 | |
| 0.1.0-preview.16 | 84 | 2/28/2026 | |
| 0.1.0-preview.15 | 78 | 2/27/2026 | |
| 0.1.0-preview.14 | 78 | 2/27/2026 | |
| 0.1.0-preview.13 | 76 | 2/23/2026 | |
| 0.1.0-preview.12 | 85 | 2/22/2026 | |
| 0.1.0-preview.11 | 79 | 2/22/2026 | |
| 0.1.0-preview.9 | 80 | 2/22/2026 | |
| 0.1.0-preview.8 | 83 | 2/21/2026 | |
| 0.1.0-preview.7 | 86 | 2/21/2026 | |
| 0.1.0-preview.6 | 89 | 2/21/2026 | |
| 0.1.0-preview.5 | 103 | 2/18/2026 | |
| 0.1.0-preview.4 | 80 | 2/17/2026 | |
| 0.1.0-preview.3 | 87 | 2/17/2026 | |
| 0.1.0-preview.2 | 87 | 2/17/2026 | |
| 0.1.0-preview.1 | 85 | 2/17/2026 |