MCP NodeJS 调试器
项目简介
该项目是一个基于 Model Context Protocol (MCP) 构建的 NodeJS 服务器,旨在为 LLM 客户端(如 Claude Code)提供 NodeJS 代码的运行时调试能力。通过该 MCP 服务器,LLM 可以与运行中的 NodeJS 进程建立连接,进行断点设置、变量检查、单步执行等调试操作,从而辅助开发者诊断和解决 NodeJS 应用中的运行时错误。
主要功能点
- 运行时调试: 允许 LLM 客户端连接到正在运行的 NodeJS 进程,进行实时调试。
- 断点管理: 支持 LLM 客户端设置和管理断点,控制代码执行流程。
- 变量检查: 允许 LLM 客户端在运行时检查变量的值,帮助理解程序状态。
- 代码执行: 支持 LLM 客户端执行 JavaScript 代码片段,动态修改程序行为或获取信息。
- 执行控制: 提供单步执行、步入、步出、继续执行等调试控制命令。
- 控制台输出: 捕获并提供 NodeJS 进程的控制台输出,方便查看日志和调试信息。
安装步骤
-
安装 npm 包: 如果希望全局安装以便 Claude Code 能够找到 'mcp-nodejs-debugger' 命令,请执行:
npm install -g mcp-nodejs-debugger或者,您也可以使用 'npx' 直接运行,无需全局安装。
-
启动 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 包的名称。
基本使用方法
-
将 MCP 服务器添加到 Claude Code: 在 Claude Code 中,使用 '/mcp add' 命令添加 'nodejs-debugger' MCP 服务器。命令会根据上述配置启动 MCP 服务器。
/mcp add nodejs-debugger npx mcp-nodejs-debugger -
验证连接: 使用 '/mcp status' 命令检查 MCP 服务器是否已连接。
/mcp status如果看到 'nodejs-debugger: connected',则表示连接成功。
-
在 Claude Code 中请求调试: 在 Claude Code 中,您可以自然语言指示 LLM 使用 'nodejs-debugger' 进行调试。例如:
我的 NodeJS 代码运行时报错了,请使用 nodejs-debugger 帮我调试。或者更具体地指示 LLM 使用特定工具:
请使用 nodejs-debugger 的 set_breakpoint 工具在 app.js 的 35 行设置断点。 -
在浏览器中访问你的应用 (触发断点): 如果设置了断点,您需要通过浏览器或其他方式访问正在调试的 NodeJS 应用,触发断点。当代码执行到断点位置时,程序会暂停,LLM 即可进行变量检查、代码执行等调试操作。
-
使用调试工具: 根据 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 的指示操作,例如在设置断点后访问你的应用以触发断点。
信息
分类
开发者工具