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

CI NuGet .NET MCP License

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)

CategoriaFerramentasDescrição
Sessãodebug_launch, debug_attach, debug_disconnect, debug_stateIniciar, parar e monitorar sessões de depuração
Execuçãodebug_continue, debug_pause, debug_stepControlar o fluxo do programa
Breakpointsbreakpoint_set, breakpoint_remove, breakpoint_list, breakpoint_enable, breakpoint_waitDefinir e gerenciar breakpoints de código-fonte
Breakpoints de Exceçãobreakpoint_set_exceptionInterromper em tipos específicos de exceção (primeira/segunda chance)
Tracepointstracepoint_setBreakpoints não bloqueantes que registram mensagens sem pausar
Autópsia de Exceçãoexception_get_contextAnálise completa de exceções: tipo, mensagem, exceções internas, stack frames com código-fonte e variáveis locais
Inspeçãothreads_list, stacktrace_get, variables_get, evaluateExaminar o estado do programa
Memóriaobject_inspect, memory_read, layout_get, references_get, members_getAnálise profunda de objetos e memória
Módulosmodules_list, modules_search, types_getExplorar assemblies e tipos carregados
Análise de Códigocode_load, code_goto_definition, code_find_usages, code_find_assignments, code_get_diagnosticsNavegação de código e diagnósticos com Roslyn
I/O do Processoprocess_write_input, process_read_outputInteragir com stdin/stdout do processo depurado

Recursos (4)

URIDescrição
debugger://sessionEstado atual da sessão de depuração
debugger://breakpointsTodos os breakpoints ativos
debugger://threadsLista de threads com estados
debugger://source/{file}Conteúdo de arquivos de código-fonte

Documentação

Projetos Similares

ProjetoLinguagemAbordagemSuporte .NET
mcp-debuggerTypeScriptDAPVia depurador externo
dap-mcpPythonDAPVia depurador externo
LLDB MCPC++NativoNão
debug-mcpC#ICorDebugNativo, direto

Licença

AGPL-3.0 — veja LICENSE para detalhes.