DevTools Debugger MCP

Expõe capacidades completas de depuração do Protocolo Chrome DevTools, incluindo breakpoints, pilhas de chamadas e source maps.

Documentação

Node.js Debugger MCP

Um servidor MCP que fornece recursos abrangentes de depuração Node.js usando o Chrome DevTools Protocol. Este servidor permite que assistentes de IA depurem aplicações Node.js com acesso completo a breakpoints, execução passo a passo, inspeção de variáveis, pilhas de chamadas, avaliação de expressões e source maps.

Por que usar este servidor MCP?

Este servidor MCP é útil quando você precisa de assistência de IA para depurar aplicações Node.js. Ele fornece acesso programático a todos os recursos de depuração que você encontraria no Chrome DevTools ou VS Code, permitindo que assistentes de IA ajudem você a definir breakpoints, inspecionar variáveis, percorrer o código e analisar o comportamento em tempo de execução.

Recursos

  • Depurador Node.js completo: Defina breakpoints, breakpoints condicionais, logpoints e pausa em exceções
  • Controles de execução passo a passo: Pular sobre/entrar/sair, continuar até o local, reiniciar frame
  • Inspeção de variáveis: Explore escopos locais/fechamentos, pré-visualização de this e aprofunde-se nas propriedades de objetos
  • Avaliação de expressões: Avalie expressões JavaScript no frame de chamada atual com captura de saída do console
  • Análise de pilha de chamadas: Inspecione pilhas de chamadas e informações de estado de pausa
  • Suporte a source maps: Depure TypeScript e outros código transpilado com suporte completo a source maps
  • Monitoramento de console: Capture e revise a saída do console durante sessões de depuração

Instalação

npm install devtools-debugger-mcp

Configuração

Adicione o servidor à sua configuração de configurações MCP:

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

Alternativamente, se instalado globalmente, você pode usar o binário CLI:

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

Depuração Node.js

Este servidor MCP pode depurar programas Node.js iniciando seu script com o inspetor integrado (--inspect-brk=0) e falando o Chrome DevTools Protocol (CDP).

Como funciona

  • start_node_debug inicia node --inspect-brk=0 your-script.js, aguarda o WebSocket do inspetor, anexa e retorna a pausa inicial (primeira linha) com um pauseId e o frame de chamada superior.
  • Você pode então definir breakpoints (por caminho de arquivo ou regex de URL), escolher pausa em exceções e retomar/executar passo a passo. Em cada pausa, as ferramentas podem inspecionar escopos, avaliar expressões e ler a saída do console capturada desde o último passo/retomada.
  • Quando o processo sai, o servidor limpa a sessão CDP e redefine seu estado.

Início rápido (a partir de um cliente habilitado para MCP)

  1. Inicie uma sessão de depuração
{ "tool": "start_node_debug", "params": { "scriptPath": "/absolute/path/to/app.js" } }
  1. Defina um breakpoint (caminho do arquivo + linha baseada em 1)
{ "tool": "set_breakpoint", "params": { "filePath": "/absolute/path/to/app.js", "line": 42 } }
  1. Execute até a próxima pausa (opcionalmente inclua console/pilha)
{ "tool": "resume_execution", "params": { "includeConsole": true, "includeStack": true } }
  1. Inspecione em uma pausa
{ "tool": "inspect_scopes", "params": { "maxProps": 15 } }
{ "tool": "evaluate_expression", "params": { "expr": "user.name" } }
  1. Execute passo a passo
{ "tool": "step_over" }
{ "tool": "step_into" }
{ "tool": "step_out" }
  1. Finalize
{ "tool": "stop_debug_session" }

Referência de ferramentas Node.js (resumo)

  • start_node_debug({ scriptPath, format? }) — Inicia Node com inspetor e retorna a pausa inicial.
  • set_breakpoint({ filePath, line }) — Breakpoint por caminho de arquivo (linha baseada em 1).
  • set_breakpoint_condition({ filePath?, urlRegex?, line, column?, condition, format? }) — Breakpoint condicional ou por regex de URL.
  • add_logpoint({ filePath?, urlRegex?, line, column?, message, format? }) — Logpoint via breakpoint condicional que registra e retorna false.
  • set_exception_breakpoints({ state })none | uncaught | all.
  • blackbox_scripts({ patterns }) — Ignora frames de URLs de script correspondentes.
  • list_scripts() / get_script_source({ scriptId? | url? }) — Descubra e busque fontes de script.
  • continue_to_location({ filePath, line, column? }) — Execute até um local de origem específico.
  • restart_frame({ frameIndex, pauseId?, format? }) — Re-execute o frame selecionado.
  • resume_execution({ includeScopes?, includeStack?, includeConsole?, format? }) — Continue até a próxima pausa ou saída.
  • step_over|step_into|step_out({ includeScopes?, includeStack?, includeConsole?, format? }) — Execução passo a passo com contexto opcional no resultado.
  • evaluate_expression({ expr, pauseId?, frameIndex?, returnByValue?, format? }) — Avalie em um frame pausado; o padrão é o frame superior.
  • inspect_scopes({ maxProps?, pauseId?, frameIndex?, includeThisPreview?, format? }) — Locais/fechamentos e resumo de this.
  • get_object_properties({ objectId, maxProps?, format? }) — Aprofunde-se nas pré-visualizações de objetos.
  • list_call_stack({ depth?, pauseId?, includeThis?, format? }) — Resumo dos N frames superiores.
  • get_pause_info({ pauseId?, format? }) — Resumo do motivo/local da pausa.
  • read_console({ format? }) — Mensagens do console desde o último passo/retomada.
  • stop_debug_session() — Encerre o processo e desconecte.

Notas

  • Os caminhos de arquivo são convertidos em URLs file:// internamente para compatibilidade com CDP.
  • line é baseado em 1; CDP é baseado em 0 internamente.
  • O servidor armazena em buffer a saída do console entre pausas; busque via includeConsole no passo/retomada ou com read_console.
  • Use set_output_format({ format: 'text' | 'json' | 'both' }) para definir a formatação padrão de resposta.

Ferramentas Disponíveis

Este servidor MCP fornece as seguintes ferramentas de depuração Node.js. Todas as ferramentas suportam o parâmetro opcional format ('text' ou 'json') para controlar a formatação da resposta.

Gerenciamento de Sessão

  • start_node_debug - Inicie um script Node.js com depuração habilitada
  • stop_debug_session - Encerre a sessão de depuração e limpe

Gerenciamento de Breakpoints

  • set_breakpoint - Defina um breakpoint em um arquivo e linha específicos
  • set_breakpoint_condition - Defina um breakpoint condicional ou breakpoint por regex de URL
  • add_logpoint - Adicione um logpoint que registra mensagens quando atingido
  • set_exception_breakpoints - Configure o comportamento de pausa em exceção

Controle de Execução

  • resume_execution - Continue a execução até o próximo breakpoint ou conclusão
  • step_over - Pule sobre a linha atual
  • step_into - Entre em chamadas de função
  • step_out - Saia da função atual
  • continue_to_location - Execute até atingir um local específico
  • restart_frame - Reinicie a execução a partir de um frame de chamada específico

Inspeção e Análise

  • inspect_scopes - Examine variáveis locais, fechamentos e contexto de this
  • evaluate_expression - Avalie expressões JavaScript no contexto atual
  • get_object_properties - Aprofunde-se nas propriedades de objetos
  • list_call_stack - Veja a pilha de chamadas atual
  • get_pause_info - Obtenha informações sobre o estado de pausa atual

Utilitários

  • list_scripts - Liste todos os scripts carregados
  • get_script_source - Recupere o código-fonte dos scripts
  • blackbox_scripts - Configure scripts para pular durante a depuração
  • read_console - Leia a saída do console capturada durante a depuração

Para exemplos detalhados de uso e descrições de parâmetros, consulte a seção "Depuração Node.js" acima.

Licença

MIT