DevTools Debugger MCP

Expone todas las capacidades de depuración del Protocolo Chrome DevTools, incluidos puntos de interrupción, pilas de llamadas y mapas de origen.

Documentación

Node.js Debugger MCP

Un servidor MCP que proporciona capacidades integrales de depuración de Node.js mediante el Protocolo de DevTools de Chrome. Este servidor permite a los asistentes de IA depurar aplicaciones Node.js con acceso completo a puntos de interrupción, ejecución paso a paso, inspección de variables, pilas de llamadas, evaluación de expresiones y mapas de origen.

¿Por qué usar este servidor MCP?

Este servidor MCP es útil cuando necesitas asistencia de IA para depurar aplicaciones Node.js. Proporciona acceso programático a todas las funciones de depuración que encontrarías en Chrome DevTools o VS Code, permitiendo a los asistentes de IA ayudarte a establecer puntos de interrupción, inspeccionar variables, recorrer el código paso a paso y analizar el comportamiento en tiempo de ejecución.

Características

  • Depurador completo de Node.js: Establece puntos de interrupción, puntos de interrupción condicionales, logpoints y pausa en excepciones
  • Controles de ejecución paso a paso: Saltar por encima/hacia dentro/hacia fuera, continuar hasta una ubicación, reiniciar marco
  • Inspección de variables: Explora ámbitos locales/cierre, vista previa de this y profundiza en las propiedades de los objetos
  • Evaluación de expresiones: Evalúa expresiones JavaScript en el marco de llamada actual con captura de salida de consola
  • Análisis de pila de llamadas: Inspecciona pilas de llamadas e información del estado de pausa
  • Soporte de mapas de origen: Depura TypeScript y otro código transpilado con soporte completo de mapas de origen
  • Monitoreo de consola: Captura y revisa la salida de consola durante las sesiones de depuración

Instalación

npm install devtools-debugger-mcp

Configuración

Añade el servidor a tu configuración de ajustes MCP:

{
  "devtools-debugger-mcp": {
    "command": "node",
    "args": ["path/to/devtools-debugger-mcp/dist/index.js"]
  }
}

Alternativamente, si está instalado globalmente, puedes usar el binario CLI:

{
  "devtools-debugger-mcp": {
    "command": "devtools-debugger-mcp"
  }
}

Depuración de Node.js

Este servidor MCP puede depurar programas Node.js lanzando tu script con el inspector integrado (--inspect-brk=0) y hablando el Protocolo de DevTools de Chrome (CDP).

Cómo funciona

  • start_node_debug lanza node --inspect-brk=0 your-script.js, espera el WebSocket del inspector, se conecta y devuelve la pausa inicial (primera línea) con un pauseId y el marco de llamada superior.
  • Luego puedes establecer puntos de interrupción (por ruta de archivo o regex de URL), elegir pausa en excepciones y reanudar/avanzar paso a paso. En cada pausa, las herramientas pueden inspeccionar ámbitos, evaluar expresiones y leer la salida de consola capturada desde el último paso/reanudación.
  • Cuando el proceso termina, el servidor limpia la sesión CDP y restablece su estado.

Inicio rápido (desde un cliente habilitado para MCP)

  1. Inicia una sesión de depuración
{ "tool": "start_node_debug", "params": { "scriptPath": "/absolute/path/to/app.js" } }
  1. Establece un punto de interrupción (ruta de archivo + línea basada en 1)
{ "tool": "set_breakpoint", "params": { "filePath": "/absolute/path/to/app.js", "line": 42 } }
  1. Ejecuta hasta la siguiente pausa (opcionalmente incluye consola/pila)
{ "tool": "resume_execution", "params": { "includeConsole": true, "includeStack": true } }
  1. Inspecciona en una pausa
{ "tool": "inspect_scopes", "params": { "maxProps": 15 } }
{ "tool": "evaluate_expression", "params": { "expr": "user.name" } }
  1. Avanza paso a paso
{ "tool": "step_over" }
{ "tool": "step_into" }
{ "tool": "step_out" }
  1. Finaliza
{ "tool": "stop_debug_session" }

Referencia de herramientas de Node.js (resumen)

  • start_node_debug({ scriptPath, format? }) — Lanza Node con inspector y devuelve la pausa inicial.
  • set_breakpoint({ filePath, line }) — Punto de interrupción por ruta de archivo (línea basada en 1).
  • set_breakpoint_condition({ filePath?, urlRegex?, line, column?, condition, format? }) — Punto de interrupción condicional o por regex de URL.
  • add_logpoint({ filePath?, urlRegex?, line, column?, message, format? }) — Logpoint mediante punto de interrupción condicional que registra y devuelve false.
  • set_exception_breakpoints({ state })none | uncaught | all.
  • blackbox_scripts({ patterns }) — Ignora marcos de URLs de script coincidentes.
  • list_scripts() / get_script_source({ scriptId? | url? }) — Descubre y obtiene fuentes de scripts.
  • continue_to_location({ filePath, line, column? }) — Ejecuta hasta una ubicación de origen específica.
  • restart_frame({ frameIndex, pauseId?, format? }) — Vuelve a ejecutar el marco seleccionado.
  • resume_execution({ includeScopes?, includeStack?, includeConsole?, format? }) — Continúa hasta la siguiente pausa o salida.
  • step_over|step_into|step_out({ includeScopes?, includeStack?, includeConsole?, format? }) — Ejecución paso a paso con contexto opcional en el resultado.
  • evaluate_expression({ expr, pauseId?, frameIndex?, returnByValue?, format? }) — Evalúa en un marco en pausa; por defecto el marco superior.
  • inspect_scopes({ maxProps?, pauseId?, frameIndex?, includeThisPreview?, format? }) — Resumen de locales/cierres y this.
  • get_object_properties({ objectId, maxProps?, format? }) — Profundiza en vistas previas de objetos.
  • list_call_stack({ depth?, pauseId?, includeThis?, format? }) — Resumen de los N marcos superiores.
  • get_pause_info({ pauseId?, format? }) — Resumen de motivo/ubicación de pausa.
  • read_console({ format? }) — Mensajes de consola desde el último paso/reanudación.
  • stop_debug_session() — Termina el proceso y se desconecta.

Notas

  • Las rutas de archivo se convierten a URLs file:// internamente para compatibilidad con CDP.
  • line está basado en 1; CDP está basado en 0 internamente.
  • El servidor almacena en búfer la salida de consola entre pausas; recupérala mediante includeConsole al avanzar/reanudar o con read_console.
  • Usa set_output_format({ format: 'text' | 'json' | 'both' }) para establecer el formato de respuesta predeterminado.

Herramientas disponibles

Este servidor MCP proporciona las siguientes herramientas de depuración de Node.js. Todas las herramientas admiten el parámetro opcional format ('text' o 'json') para controlar el formato de respuesta.

Gestión de sesión

  • start_node_debug - Lanza un script Node.js con depuración habilitada
  • stop_debug_session - Termina la sesión de depuración y limpia

Gestión de puntos de interrupción

  • set_breakpoint - Establece un punto de interrupción en un archivo y línea específicos
  • set_breakpoint_condition - Establece un punto de interrupción condicional o por regex de URL
  • add_logpoint - Añade un logpoint que registra mensajes cuando se alcanza
  • set_exception_breakpoints - Configura el comportamiento de pausa en excepción

Control de ejecución

  • resume_execution - Continúa la ejecución hasta el siguiente punto de interrupción o finalización
  • step_over - Salta por encima de la línea actual
  • step_into - Entra en llamadas de función
  • step_out - Sale de la función actual
  • continue_to_location - Ejecuta hasta alcanzar una ubicación específica
  • restart_frame - Reinicia la ejecución desde un marco de llamada específico

Inspección y análisis

  • inspect_scopes - Examina variables locales, cierres y contexto this
  • evaluate_expression - Evalúa expresiones JavaScript en el contexto actual
  • get_object_properties - Profundiza en las propiedades de los objetos
  • list_call_stack - Ve la pila de llamadas actual
  • get_pause_info - Obtiene información sobre el estado de pausa actual

Utilidades

  • list_scripts - Lista todos los scripts cargados
  • get_script_source - Recupera el código fuente de los scripts
  • blackbox_scripts - Configura scripts para omitir durante la depuración
  • read_console - Lee la salida de consola capturada durante la depuración

Para ejemplos de uso detallados y descripciones de parámetros, consulta la sección "Depuración de Node.js" anterior.

Licencia

MIT