MCP NodeJS 调试器

项目简介

该项目是一个基于 Model Context Protocol (MCP) 构建的 NodeJS 服务器,旨在为 LLM 客户端(如 Claude Code)提供 NodeJS 代码的运行时调试能力。通过该 MCP 服务器,LLM 可以与运行中的 NodeJS 进程建立连接,进行断点设置、变量检查、单步执行等调试操作,从而辅助开发者诊断和解决 NodeJS 应用中的运行时错误。

主要功能点

  • 运行时调试: 允许 LLM 客户端连接到正在运行的 NodeJS 进程,进行实时调试。
  • 断点管理: 支持 LLM 客户端设置和管理断点,控制代码执行流程。
  • 变量检查: 允许 LLM 客户端在运行时检查变量的值,帮助理解程序状态。
  • 代码执行: 支持 LLM 客户端执行 JavaScript 代码片段,动态修改程序行为或获取信息。
  • 执行控制: 提供单步执行、步入、步出、继续执行等调试控制命令。
  • 控制台输出: 捕获并提供 NodeJS 进程的控制台输出,方便查看日志和调试信息。

安装步骤

  1. 安装 npm 包: 如果希望全局安装以便 Claude Code 能够找到 'mcp-nodejs-debugger' 命令,请执行:

    npm install -g mcp-nodejs-debugger

    或者,您也可以使用 'npx' 直接运行,无需全局安装。

  2. 启动 NodeJS 应用 (debug 模式): 在另一个终端窗口中,启动您需要调试的 NodeJS 应用,并启用 debug 模式。例如:

    node --inspect your_script.js

    这将启动 NodeJS 应用并监听 9229 端口,等待调试器连接。

服务器配置

要将 'MCP NodeJS 调试器' 添加到 MCP 客户端(如 Claude Code),您需要提供以下配置信息。这些信息告诉 MCP 客户端如何启动和连接到该 MCP 服务器。

{
  "servers": [
    {
      "name": "nodejs-debugger",  // MCP 服务器名称,用户在 MCP 客户端中引用时使用
      "command": "npx",         // 启动 MCP 服务器的命令,这里使用 npx 运行本地 npm 包
      "args": [                 // 启动命令的参数
        "mcp-nodejs-debugger"   // 实际执行的 npm 包名,对应 mcp-nodejs-debugger
      ]
    }
  ]
}

配置说明:

  • '"name"': 定义了 MCP 服务器的名称,例如 '"nodejs-debugger"'。这个名称将在 MCP 客户端的命令中使用,例如 '/mcp status' 或 '/mcp add nodejs-debugger ...'。
  • '"command"': 指定了启动 MCP 服务器的命令。这里使用 '"npx"',它允许运行本地或全局安装的 npm 包。
  • '"args"': 是一个字符串数组,包含了传递给 '"command"' 的参数。 '"mcp-nodejs-debugger"' 是要通过 'npx' 运行的 npm 包的名称。

基本使用方法

  1. 将 MCP 服务器添加到 Claude Code: 在 Claude Code 中,使用 '/mcp add' 命令添加 'nodejs-debugger' MCP 服务器。命令会根据上述配置启动 MCP 服务器。

    /mcp add nodejs-debugger npx mcp-nodejs-debugger
  2. 验证连接: 使用 '/mcp status' 命令检查 MCP 服务器是否已连接。

    /mcp status

    如果看到 'nodejs-debugger: connected',则表示连接成功。

  3. 在 Claude Code 中请求调试: 在 Claude Code 中,您可以自然语言指示 LLM 使用 'nodejs-debugger' 进行调试。例如:

    我的 NodeJS 代码运行时报错了,请使用 nodejs-debugger 帮我调试。

    或者更具体地指示 LLM 使用特定工具:

    请使用 nodejs-debugger 的 set_breakpoint 工具在 app.js 的 35 行设置断点。
  4. 在浏览器中访问你的应用 (触发断点): 如果设置了断点,您需要通过浏览器或其他方式访问正在调试的 NodeJS 应用,触发断点。当代码执行到断点位置时,程序会暂停,LLM 即可进行变量检查、代码执行等调试操作。

  5. 使用调试工具: 根据 LLM 的引导,可以使用 'nodejs-debugger' 提供的各种工具进行调试,例如:

    • 'nodejs_inspect': 执行 JavaScript 代码片段。
    • 'set_breakpoint': 设置断点。
    • 'inspect_variables': 检查变量值。
    • 'step_over', 'step_into', 'step_out', 'continue': 控制代码执行流程。
    • 'evaluate': 评估 JavaScript 表达式。
    • 'get_location': 获取当前执行位置。
    • 'get_console_output': 获取控制台输出。

注意事项

  • 确保 NodeJS 应用在 debug 模式 ('--inspect') 下启动。
  • 默认情况下,'MCP NodeJS 调试器' 尝试连接到本地 9229 端口。如果你的 NodeJS debug 端口不同,可能需要修改 'src/mcp-server.js' 中的端口配置或通过 'retry_connect' 工具手动指定端口。
  • 调试过程中,请按照 LLM 的指示操作,例如在设置断点后访问你的应用以触发断点。

信息

分类

开发者工具