debug-mcp

Servidor MCP que expone la depuración de .NET como 34 herramientas accesibles por IA a través de las API de ICorDebug: puntos de interrupción, ejecución paso a paso, inspección, autopsia de excepciones y análisis de código.

Documentación

debug-mcp.net

CI NuGet .NET MCP License

Servidor MCP para depuración de .NET — permite a los agentes de IA depurar aplicaciones .NET de forma interactiva.

¿Qué es debug-mcp?

debug-mcp es un servidor de Model Context Protocol que expone capacidades de depuración de .NET como herramientas de API estructuradas. Permite a asistentes de IA como Claude, GPT o Copilot:

  • Iniciar o adjuntarse a procesos .NET
  • Establecer puntos de interrupción, puntos de interrupción de excepción y puntos de seguimiento
  • Ejecutar el código línea por línea
  • Inspeccionar variables, evaluar expresiones y leer memoria
  • Analizar seguimientos de pila y subprocesos
  • Obtener contexto completo de excepción con una sola llamada (autopsia de excepción)
  • Navegar por el código con ir a definición, buscar usos y diagnósticos
  • Resolver automáticamente símbolos desde servidores de símbolos públicos

A diferencia de herramientas similares que usan depuradores externos mediante el protocolo DAP, debug-mcp interactúa directamente con el runtime de .NET usando las API de ICorDebug, el mismo enfoque utilizado por JetBrains Rider.

Inicio rápido

Ejecutar

# No installation needed (.NET 10+)
dnx -y debug-mcp

Requisitos

  • SDK de .NET 10 o posterior
  • Linux (soporte para Windows y macOS planificado)

Configurar con Claude Desktop

Añade a tu claude_desktop_config.json:

{
  "mcpServers": {
    "dotnet-debugger": {
      "command": "dnx",
      "args": ["-y", "debug-mcp"]
    }
  }
}

Configurar con Claude Code

Añade a tu .mcp.json:

{
  "mcpServers": {
    "dotnet-debugger": {
      "command": "dnx",
      "args": ["-y", "debug-mcp"]
    }
  }
}

Ejemplo de conversación

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

Herramientas (34)

CategoríaHerramientasDescripción
Sesióndebug_launch, debug_attach, debug_disconnect, debug_stateIniciar, detener y monitorear sesiones de depuración
Ejecucióndebug_continue, debug_pause, debug_stepControlar el flujo del programa
Puntos de interrupciónbreakpoint_set, breakpoint_remove, breakpoint_list, breakpoint_enable, breakpoint_waitEstablecer y gestionar puntos de interrupción de código fuente
Puntos de interrupción de excepciónbreakpoint_set_exceptionDetenerse en tipos de excepción específicos (primera/segunda oportunidad)
Puntos de seguimientotracepoint_setPuntos de interrupción no bloqueantes que registran mensajes sin pausar
Autopsia de excepciónexception_get_contextAnálisis completo de excepción: tipo, mensaje, excepciones internas, marcos de pila con código fuente y variables locales
Inspecciónthreads_list, stacktrace_get, variables_get, evaluateExaminar el estado del programa
Memoriaobject_inspect, memory_read, layout_get, references_get, members_getAnálisis profundo de objetos y memoria
Módulosmodules_list, modules_search, types_getExplorar ensamblados y tipos cargados
Análisis de códigocode_load, code_goto_definition, code_find_usages, code_find_assignments, code_get_diagnosticsNavegación de código y diagnósticos impulsados por Roslyn
E/S de procesoprocess_write_input, process_read_outputInteractuar con la entrada/salida estándar del proceso depurado

Recursos (4)

URIDescripción
debugger://sessionEstado actual de la sesión de depuración
debugger://breakpointsTodos los puntos de interrupción activos
debugger://threadsLista de subprocesos con estados
debugger://source/{file}Contenido de archivos de código fuente

Documentación

Proyectos similares

ProyectoLenguajeEnfoqueSoporte .NET
mcp-debuggerTypeScriptDAPVía depurador externo
dap-mcpPythonDAPVía depurador externo
LLDB MCPC++NativoNo
debug-mcpC#ICorDebugNativo, directo

Licencia

AGPL-3.0 — consulte LICENCIA para más detalles.