debug-mcp
Servidor MCP que expõe depuração .NET como 34 ferramentas acessíveis por IA via APIs ICorDebug — breakpoints, stepping, inspeção, autópsia de exceções e análise de código.
Documentação
debug-mcp.net
Servidor MCP para depuração .NET — permite que agentes de IA depurem aplicações .NET de forma interativa.
O que é debug-mcp?
debug-mcp é um servidor Model Context Protocol que expõe capacidades de depuração .NET como ferramentas de API estruturadas. Ele permite que assistentes de IA como Claude, GPT ou Copilot:
- Iniciem ou anexem processos .NET
- Definam breakpoints, breakpoints de exceção e tracepoints
- Executem o código passo a passo
- Inspecionem variáveis, avaliem expressões e leiam memória
- Analisem stack traces e threads
- Obtenham contexto completo de exceções com uma única chamada (autópsia de exceção)
- Naveguem pelo código com ir para definição, localizar usos e diagnósticos
- Resolvam símbolos automaticamente a partir de servidores públicos de símbolos
Diferente de ferramentas similares que usam depuradores externos via protocolo DAP, o debug-mcp interage diretamente com o runtime .NET usando APIs ICorDebug — a mesma abordagem usada pelo JetBrains Rider.
Início Rápido
Executar
# No installation needed (.NET 10+)
dnx -y debug-mcp
Requisitos
- .NET 10 SDK ou posterior
- Linux (suporte para Windows e macOS planejado)
Configurar com Claude Desktop
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"dotnet-debugger": {
"command": "dnx",
"args": ["-y", "debug-mcp"]
}
}
}
Configurar com Claude Code
Adicione ao seu .mcp.json:
{
"mcpServers": {
"dotnet-debugger": {
"command": "dnx",
"args": ["-y", "debug-mcp"]
}
}
}
Exemplo de Conversa
You: Debug my ASP.NET app and find why GetUser returns null
Claude: I'll launch your application and investigate.
[Calls debug_launch with program path]
[Calls breakpoint_set at UserService.cs:42]
[Calls debug_continue]
[Calls breakpoint_wait with 30s timeout]
The breakpoint was hit. Let me check the variables.
[Calls variables_get for current frame]
I found the issue: the `userId` parameter is an empty string.
The bug is in the calling code at line 28 where...
You: My app throws NullReferenceException somewhere in checkout. Find it.
Claude: I'll set an exception breakpoint and trigger the flow.
[Calls debug_launch with program path]
[Calls breakpoint_set_exception for System.NullReferenceException]
[Calls debug_continue]
[Calls breakpoint_wait with include_autopsy: true]
Caught it! The exception was thrown in OrderService.cs at line 87.
Here's the full context from the autopsy:
- cart.Items was null because LoadCart() returned an empty cart
- The null check at line 85 only checked cart, not cart.Items
Ferramentas (34)
| Categoria | Ferramentas | Descrição |
|---|---|---|
| Sessão | debug_launch, debug_attach, debug_disconnect, debug_state | Iniciar, parar e monitorar sessões de depuração |
| Execução | debug_continue, debug_pause, debug_step | Controlar o fluxo do programa |
| Breakpoints | breakpoint_set, breakpoint_remove, breakpoint_list, breakpoint_enable, breakpoint_wait | Definir e gerenciar breakpoints de código-fonte |
| Breakpoints de Exceção | breakpoint_set_exception | Interromper em tipos específicos de exceção (primeira/segunda chance) |
| Tracepoints | tracepoint_set | Breakpoints não bloqueantes que registram mensagens sem pausar |
| Autópsia de Exceção | exception_get_context | Análise completa de exceções: tipo, mensagem, exceções internas, stack frames com código-fonte e variáveis locais |
| Inspeção | threads_list, stacktrace_get, variables_get, evaluate | Examinar o estado do programa |
| Memória | object_inspect, memory_read, layout_get, references_get, members_get | Análise profunda de objetos e memória |
| Módulos | modules_list, modules_search, types_get | Explorar assemblies e tipos carregados |
| Análise de Código | code_load, code_goto_definition, code_find_usages, code_find_assignments, code_get_diagnostics | Navegação de código e diagnósticos com Roslyn |
| I/O do Processo | process_write_input, process_read_output | Interagir com stdin/stdout do processo depurado |
Recursos (4)
| URI | Descrição |
|---|---|
debugger://session | Estado atual da sessão de depuração |
debugger://breakpoints | Todos os breakpoints ativos |
debugger://threads | Lista de threads com estados |
debugger://source/{file} | Conteúdo de arquivos de código-fonte |
Documentação
- Arquitetura — Design do sistema e componentes
- Como Funciona a Depuração — Internals do ICorDebug explicados
- Referência de Ferramentas MCP — Documentação completa da API
- Recursos MCP — Visualizações de estado assináveis
- Guia de Desenvolvimento — Compilação, testes, contribuição
Projetos Similares
| Projeto | Linguagem | Abordagem | Suporte .NET |
|---|---|---|---|
| mcp-debugger | TypeScript | DAP | Via depurador externo |
| dap-mcp | Python | DAP | Via depurador externo |
| LLDB MCP | C++ | Nativo | Não |
| debug-mcp | C# | ICorDebug | Nativo, direto |
Licença
AGPL-3.0 — veja LICENSE para detalhes.