WpfPilot MCP

Servidor MCP para que agentes de IA automaticen aplicaciones WPF de Windows con selectores semánticos de automatización de UI, capturas de pantalla, grabación y generación de pruebas FlaUI.

Documentación

WpfPilot MCP

WpfPilot MCP es un servidor local del Model Context Protocol para aplicaciones WPF de Windows. Permite a los agentes de codificación con IA inspeccionar árboles de UI Automation, hacer clic y escribir mediante selectores semánticos, diagnosticar problemas específicos de WPF, grabar flujos de trabajo y generar pruebas xUnit + FlaUI.

.NET 8 MCP Windows License

Características

  • Adjuntarse a procesos WPF o iniciarlos.
  • Capturar instantáneas semánticas de la interfaz (selectores, no coordenadas de pantalla).
  • Consultar texto, valor, estado, límites, patrones, elementos secundarios, antepasados, hermanos y selección.
  • Actuar con verbos como clic, establecer valor, seleccionar, alternar, expandir, contraer, desplazar y arrastrar/soltar.
  • Esperar y verificar el estado de la interfaz con errores estructurados.
  • Capturar capturas de pantalla.
  • Grabar flujos de trabajo y generar código de prueba.
  • Sonda opcional en proceso para diagnósticos de ViewModel, enlace, comando, validación y dispatcher.

Requisitos

  • Windows 10/11.
  • Una aplicación WPF para automatizar.
  • Node.js 18+ si se usa npx (recomendado). No se requiere .NET SDK para el binario de lanzamiento ni para el lanzador npm.

Primeros pasos

Agregue esto a la configuración de su cliente MCP (global o con alcance de proyecto):

{
  "mcpServers": {
    "wpfpilot-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@skuzadev/wpfpilot-mcp"]
    }
  }
}

O ejecútelo directamente (stdio; espera a un cliente MCP):

npx -y @skuzadev/wpfpilot-mcp

El lanzador npm descarga el último binario de lanzamiento para Windows en la primera ejecución y luego canaliza stdio hacia él.

Otras instalaciones (comando wpfpilot-mcp persistente, archivo zip de lanzamiento, desinstalación): consulte Instalar WpfPilot.

Clientes populares

Use la configuración estándar anterior salvo que se indique lo contrario. Más clientes: docs/all-clients.md.

Cursor

Global: ~/.cursor/mcp.json (no agregue un .cursor/mcp.json de proyecto a menos que necesite una anulación específica del repositorio)

{
  "mcpServers": {
    "wpfpilot-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@skuzadev/wpfpilot-mcp"]
    }
  }
}

O: Cursor SettingsMCPAdd new MCP Server — comando npx, argumentos -y @skuzadev/wpfpilot-mcp.

cursor-agent mcp list
cursor-agent mcp list-tools wpfpilot-mcp
Codex
codex mcp add wpfpilot-mcp -- npx -y @skuzadev/wpfpilot-mcp
codex mcp list

O ~/.codex/config.toml:

[mcp_servers.wpfpilot-mcp]
command = "npx"
args = ["-y", "@skuzadev/wpfpilot-mcp"]
enabled = true
startup_timeout_sec = 30
tool_timeout_sec = 60
Claude Code
claude mcp add --transport stdio wpfpilot-mcp -- npx -y @skuzadev/wpfpilot-mcp
claude mcp list

Proyecto .mcp.json:

{
  "mcpServers": {
    "wpfpilot-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@skuzadev/wpfpilot-mcp"]
    }
  }
}
Claude Desktop

Configuración de Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "wpfpilot-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@skuzadev/wpfpilot-mcp"]
    }
  }
}

Reinicie Claude Desktop después de guardar.

VS Code

Cree .vscode/mcp.json:

{
  "servers": {
    "wpfpilot-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@skuzadev/wpfpilot-mcp"]
    }
  }
}

O: code --add-mcp '{"name":"wpfpilot-mcp","command":"npx","args":["-y","@skuzadev/wpfpilot-mcp"]}'

Primer mensaje

Después de conectar el cliente MCP, pregunte:

List the WpfPilot tools and attach to my running WPF application.

Mensajes de seguimiento útiles:

Show the main window UI tree.
Click the Save button using a selector, not coordinates.
Wait until the status text says Saved.
Why is the Submit button disabled?
Record this workflow and generate an xUnit test.

Herramientas

HerramientaPropósito
wpf_capabilitiesEnumera verbos admitidos, tipos de consulta y condiciones de espera.
wpf_queryLee el estado de la interfaz.
wpf_actRealiza acciones de interfaz.
wpf_waitEspera el estado de la interfaz.
wpf_assertVerifica el estado de la interfaz.

Lista completa de herramientas: docs/tools-reference.md.

Sonda WPF opcional

La sonda se ejecuta dentro de su proceso WPF y expone diagnósticos que UI Automation no puede ver directamente (enlaces, ViewModels, comandos, validación).

Use wpf_probe_connect, then inspect my ViewModel and binding errors.

Configuración: docs/probe-setup.md.

Seguridad

WpfPilot está diseñado para desarrollo local y automatización de pruebas.

  • Se ejecuta con su cuenta de usuario y puede interactuar con la interfaz visible para esa cuenta.
  • No expone shell general, registro ni herramientas de sistema de archivos arbitrarias a través de MCP.
  • Las acciones de interfaz mutantes se auditan en la carpeta de datos locales de la aplicación del usuario.
  • La sonda requiere instalación explícita en la aplicación WPF de destino.
  • Trate cada servidor MCP como código local confiable antes de habilitarlo en un agente.

Solución de problemas

wpfpilot-mcp no se reconoce

Reinicie su terminal después de ejecutar el instalador, o use la ruta completa a wpfpilot-mcp.exe en la configuración de su cliente MCP. Consulte all-clients.md.

El servidor se inicia pero no aparecen herramientas

Reinicie el cliente MCP y revise sus registros de MCP. También verifique que npx -y @skuzadev/wpfpilot-mcp se ejecute desde un terminal normal.

No se puede adjuntar a una aplicación

Asegúrese de que la aplicación WPF se esté ejecutando en la misma sesión de usuario y con un nivel de privilegio compatible. Si la aplicación se ejecuta como administrador, es posible que el cliente MCP también deba ejecutarse elevado.

La sonda no puede conectarse

Confirme que la aplicación de destino llamó a ProbeHost.Start(), luego use wpf_probe_status y wpf_probe_connect. Si es necesario, pase wpfpilot-mcp-probe-{ProcessId} explícitamente.

Documentación

Contribuciones

Consulte CONTRIBUTING.md.

Licencia

MIT. Consulte LICENSE.