详细介绍
Node.js Debugger MCP 是一个专为 Node.js 应用程序调试设计的 MCP 服务器工具,通过 Chrome DevTools 协议提供完整的调试功能。该工具使 AI 助手能够协助用户设置断点、检查变量、单步执行代码、分析运行时行为,并支持 TypeScript 等转译语言的调试。适用于需要 AI 协助调试的复杂场景,如变量异常分析、函数调用流程追踪和异步代码调试。
核心功能
Node.js Debugger MCP 提供了丰富的调试功能,包括:
- 断点管理:支持设置普通断点、条件断点和日志点,可按文件路径或 URL 正则表达式设置。
- 单步控制:提供步过、步入、步出等完整的单步执行功能,精确控制代码执行流程。
- 变量检查:可以查看局部变量、闭包作用域、this 上下文,并深入查看对象属性。
- 表达式求值:在当前暂停的上下文中执行 JavaScript 表达式,实时查看计算结果。
- 源码映射支持:支持 TypeScript 等转译语言的调试,直接查看源代码而非编译后代码。
- 控制台监控:实时捕获和查看调试过程中的控制台输出,便于分析程序行为。
安装方法
Node.js Debugger MCP 可通过 npm 安装,具体步骤如下:
npm install devtools-debugger-mcp安装完成后,需要在 MCP 客户端配置文件中添加服务器配置,以便 AI 助手能够调用该工具进行调试。
{
"devtools-debugger-mcp": {
"command": "node",
"args": ["path/to/devtools-debugger-mcp/dist/index.js"]
}
}如果工具是全局安装的,也可以使用 CLI 二进制文件进行配置:
{
"devtools-debugger-mcp": {
"command": "devtools-debugger-mcp"
}
}使用方法
Node.js Debugger MCP 提供了多种调试命令,支持 AI 助手通过 MCP 协议与调试器交互。以下是几个常用命令及其使用示例:
启动调试会话
{
"tool": "start_node_debug",
"params": {
"scriptPath": "/absolute/path/to/app.js"
}
}该命令会启动 Node.js 应用程序的调试会话,并返回初始暂停信息。
设置断点
{
"tool": "set_breakpoint",
"params": {
"filePath": "/absolute/path/to/app.js",
"line": 42
}
}该命令在指定文件的第 42 行设置断点。
继续执行
{
"tool": "resume_execution",
"params": {
"includeConsole": true,
"includeStack": true
}
}该命令继续执行到下一个断点或程序结束,并可选地包含控制台输出和调用栈信息。
检查变量
{
"tool": "inspect_scopes",
"params": {
"maxProps": 15
}
}该命令用于检查当前作用域中的变量,最多显示 15 个属性。
表达式求值
{
"tool": "evaluate_expression",
"params": {
"expr": "user.name"
}
}该命令在当前暂停的上下文中计算表达式 `user.name`,并返回结果。
单步执行
{
"tool": "step_over"
}{
"tool": "step_into"
}{
"tool": "step_out"
}这些命令分别用于单步跳过、单步进入和单步跳出当前执行行。
结束调试
{
"tool": "stop_debug_session"
}该命令用于终止调试会话并清理相关资源。
使用场景
Node.js Debugger MCP 适用于以下调试场景:
- 变量值异常分析:当某个变量值不符合预期时,设置断点并检查变量状态。
- 函数调用流程追踪:理解复杂的函数调用关系和执行顺序。
- 异步代码调试:调试 Promise、async/await 等异步代码的执行时序。
- TypeScript 调试:支持 TypeScript 等转译语言的调试,直接查看源代码。
注意事项
使用 Node.js Debugger MCP 时需注意以下事项:
- 文件路径在内部会转换为 `file://` URL 以与 Chrome DevTools 协议兼容。
- 行号是基于 1 的,Chrome DevTools 协议内部是基于 0 的。
- 服务器会在暂停之间缓冲控制台输出,可通过 `includeConsole` 或 `read_console` 获取。
- 使用 `set_output_format` 可设置默认响应格式为 `text`、`json` 或 `both`。
Node.js Debugger MCP 通过提供完整的调试功能,使 AI 助手能够高效地协助开发者调试 Node.js 应用程序,提升调试效率和代码质量。