WpfPilot MCP
Servidor MCP para agentes de IA automatizarem aplicativos Windows WPF com seletores semânticos de automação de interface, capturas de tela, gravação e geração de testes FlaUI.
Documentação
WpfPilot MCP
O WpfPilot MCP é um servidor local do Model Context Protocol para aplicações Windows WPF. Ele permite que agentes de codificação de IA inspecionem árvores de UI Automation, cliquem e digitem por meio de seletores semânticos, diagnosticem problemas específicos de WPF, gravem fluxos de trabalho e gerem testes xUnit + FlaUI.
Recursos
- Anexar ou iniciar processos WPF.
- Capturar snapshots semânticos de UI (seletores, não coordenadas de tela).
- Consultar texto, valor, estado, limites, padrões, filhos, ancestrais, irmãos e seleção.
- Agir com verbos como clicar, definir valor, selecionar, alternar, expandir, recolher, rolar e arrastar/soltar.
- Aguardar e verificar o estado da UI com erros estruturados.
- Capturar capturas de tela.
- Gravar fluxos de trabalho e gerar código de teste.
- Sonda opcional em processo para diagnósticos de ViewModel, binding, command, validação e dispatcher.
Requisitos
- Windows 10/11.
- Um aplicativo WPF para automatizar.
- Node.js 18+ se usar
npx(recomendado). Não é necessário .NET SDK para o binário de lançamento ou o inicializador npm.
Primeiros passos
Adicione isto à configuração do seu cliente MCP (global ou por projeto):
{
"mcpServers": {
"wpfpilot-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@skuzadev/wpfpilot-mcp"]
}
}
}
Ou execute diretamente (stdio; aguarda um cliente MCP):
npx -y @skuzadev/wpfpilot-mcp
O inicializador npm baixa o binário de lançamento mais recente do Windows na primeira execução e depois faz proxy do stdio para ele.
Outras instalações (comando wpfpilot-mcp persistente, zip de lançamento, desinstalação): consulte Instalar o WpfPilot.
Clientes populares
Use a configuração padrão acima, salvo indicação em contrário. Mais clientes: docs/all-clients.md.
Cursor
Global: ~/.cursor/mcp.json (não adicione um .cursor/mcp.json de projeto, a menos que precise de uma substituição específica do repositório)
{
"mcpServers": {
"wpfpilot-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@skuzadev/wpfpilot-mcp"]
}
}
}
Ou: Configurações do Cursor → MCP → Adicionar novo servidor MCP — 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
Ou ~/.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
.mcp.json do projeto:
{
"mcpServers": {
"wpfpilot-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@skuzadev/wpfpilot-mcp"]
}
}
}
Claude Desktop
Configuração do Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"wpfpilot-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@skuzadev/wpfpilot-mcp"]
}
}
}
Reinicie o Claude Desktop após salvar.
VS Code
Crie .vscode/mcp.json:
{
"servers": {
"wpfpilot-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@skuzadev/wpfpilot-mcp"]
}
}
}
Ou: code --add-mcp '{"name":"wpfpilot-mcp","command":"npx","args":["-y","@skuzadev/wpfpilot-mcp"]}'
Primeiro prompt
Após conectar o cliente MCP, pergunte:
List the WpfPilot tools and attach to my running WPF application.
Prompts complementares úteis:
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.
Ferramentas
| Ferramenta | Finalidade |
|---|---|
wpf_capabilities | Listar verbos compatíveis, tipos de consulta e condições de espera. |
wpf_query | Ler o estado da UI. |
wpf_act | Executar ações de UI. |
wpf_wait | Aguardar o estado da UI. |
wpf_assert | Verificar o estado da UI. |
Lista completa de ferramentas: docs/tools-reference.md.
Sonda WPF opcional
A sonda é executada dentro do seu processo WPF e expõe diagnósticos que a UI Automation não consegue ver diretamente (bindings, ViewModels, commands, validação).
Use wpf_probe_connect, then inspect my ViewModel and binding errors.
Configuração: docs/probe-setup.md.
Segurança
O WpfPilot destina-se a desenvolvimento local e automação de testes.
- Ele é executado com a sua conta de usuário e pode interagir com a UI visível para essa conta.
- Ele não expõe shell geral, registro ou ferramentas arbitrárias de sistema de arquivos por meio do MCP.
- Ações de mutação de UI são auditadas na pasta de dados locais do aplicativo do usuário.
- A sonda requer instalação explícita no aplicativo WPF de destino.
- Trate todo servidor MCP como código local confiável antes de habilitá-lo em um agente.
Solução de problemas
wpfpilot-mcp não é reconhecido
Reinicie o terminal após executar o instalador ou use o caminho completo para wpfpilot-mcp.exe na configuração do seu cliente MCP. Consulte all-clients.md.
O servidor inicia, mas nenhuma ferramenta aparece
Reinicie o cliente MCP e verifique os logs de MCP dele. Verifique também se npx -y @skuzadev/wpfpilot-mcp é executado a partir de um terminal normal.
Não é possível anexar a um aplicativo
Certifique-se de que o aplicativo WPF esteja sendo executado na mesma sessão de usuário e em um nível de privilégio compatível. Se o aplicativo for executado como administrador, o cliente MCP também pode precisar ser executado elevado.
A sonda não consegue conectar
Confirme se o aplicativo de destino chamou ProbeHost.Start(), depois use wpf_probe_status e wpf_probe_connect. Se necessário, passe wpfpilot-mcp-probe-{ProcessId} explicitamente.
Documentação
- Todos os clientes MCP
- Referência de ferramentas
- Configuração da sonda
- Arquitetura
- Exemplos
- Desenvolvimento
- Lançamento
Contribuindo
Consulte CONTRIBUTING.md.
Licença
MIT. Consulte LICENSE.