Devtools Debugger Mcp

Devtools Debugger Mcp

🚀 Node.js Debugger MCP

Node.js Debugger MCP是一个MCP服务器,它借助Chrome DevTools协议,为Node.js应用程序提供全面的调试功能。该服务器使AI助手能够对Node.js应用程序进行调试,可全面使用断点设置、单步执行、变量检查、调用栈分析、表达式求值以及源映射等功能。

🚀 快速开始

此MCP服务器在需要AI协助调试Node.js应用程序时十分有用。它以编程方式提供了在Chrome DevTools或VS Code中能找到的所有调试功能,使AI助手可以帮助你设置断点、检查变量、逐行执行代码以及分析运行时行为。

✨ 主要特性

  • 完整的Node.js调试器:可设置断点、条件断点、日志点,并能在异常时暂停
  • 单步执行控制:支持单步跳过、单步进入、单步跳出,继续执行到指定位置,重启帧
  • 变量检查:可查看局部/闭包作用域、this预览,并深入查看对象属性
  • 表达式求值:在当前调用帧中计算JavaScript表达式,并捕获控制台输出
  • 调用栈分析:检查调用栈和暂停状态信息
  • 源映射支持:借助完整的源映射支持,调试TypeScript和其他转译代码
  • 控制台监控:在调试会话期间捕获并查看控制台输出

📦 安装指南

npm install devtools-debugger-mcp

📚 详细文档

配置

将服务器添加到你的MCP设置配置中:

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

或者,如果是全局安装,可以使用CLI二进制文件:

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

Node.js调试

该MCP服务器可以通过使用内置检查器(--inspect-brk=0)启动脚本并使用Chrome DevTools协议(CDP)来调试Node.js程序。

工作原理

  • start_node_debug会启动node --inspect-brk=0 your-script.js,等待检查器WebSocket连接,进行连接,并返回初始暂停(第一行),同时附带pauseId和顶级调用帧。
  • 然后,你可以设置断点(通过文件路径或URL正则表达式),选择在异常时暂停,并继续执行或单步执行。在每次暂停时,工具可以检查作用域、计算表达式,并读取自上次单步执行/继续执行以来捕获的控制台输出。
  • 当进程退出时,服务器会清理CDP会话并重置其状态。

快速入门(从支持MCP的客户端)

  1. 启动调试会话
{ "tool": "start_node_debug", "params": { "scriptPath": "/absolute/path/to/app.js" } }
  1. 设置断点(文件路径 + 基于1的行号)
{ "tool": "set_breakpoint", "params": { "filePath": "/absolute/path/to/app.js", "line": 42 } }
  1. 运行到下一个暂停点(可选地包含控制台/调用栈信息)
{ "tool": "resume_execution", "params": { "includeConsole": true, "includeStack": true } }
  1. 在暂停时检查
{ "tool": "inspect_scopes", "params": { "maxProps": 15 } }
{ "tool": "evaluate_expression", "params": { "expr": "user.name" } }
  1. 单步执行
{ "tool": "step_over" }
{ "tool": "step_into" }
{ "tool": "step_out" }
  1. 结束
{ "tool": "stop_debug_session" }

Node.js工具参考(总结)

  • start_node_debug({ scriptPath, format? }) — 使用检查器启动Node并返回初始暂停。
  • set_breakpoint({ filePath, line }) — 通过文件路径设置断点(基于1的行号)。
  • set_breakpoint_condition({ filePath?, urlRegex?, line, column?, condition, format? }) — 条件断点或通过URL正则表达式设置断点。
  • add_logpoint({ filePath?, urlRegex?, line, column?, message, format? }) — 通过条件断点添加日志点,该日志点会记录日志并返回false
  • set_exception_breakpoints({ state })none | uncaught | all
  • blackbox_scripts({ patterns }) — 忽略匹配脚本URL的帧。
  • list_scripts() / get_script_source({ scriptId? | url? }) — 发现并获取脚本源。
  • continue_to_location({ filePath, line, column? }) — 运行到特定的源位置。
  • restart_frame({ frameIndex, pauseId?, format? }) — 重新运行所选帧。
  • resume_execution({ includeScopes?, includeStack?, includeConsole?, format? }) — 继续执行到下一个暂停点或退出。
  • step_over|step_into|step_out({ includeScopes?, includeStack?, includeConsole?, format? }) — 单步执行,结果中可选包含上下文信息。
  • evaluate_expression({ expr, pauseId?, frameIndex?, returnByValue?, format? }) — 在暂停帧中计算表达式;默认为顶级帧。
  • inspect_scopes({ maxProps?, pauseId?, frameIndex?, includeThisPreview?, format? }) — 查看局部/闭包作用域和this摘要。
  • get_object_properties({ objectId, maxProps?, format? }) — 深入查看对象预览。
  • list_call_stack({ depth?, pauseId?, includeThis?, format? }) — 顶级N帧摘要。
  • get_pause_info({ pauseId?, format? }) — 暂停原因/位置摘要。
  • read_console({ format? }) — 自上次单步执行/继续执行以来的控制台消息。
  • stop_debug_session() — 终止进程并断开连接。

注意事项

  • 文件路径在内部会转换为file:// URL以与CDP兼容。
  • line是基于1的;CDP内部是基于0的。
  • 服务器会在暂停之间缓冲控制台输出;可通过单步执行/继续执行时的includeConsoleread_console获取。
  • 使用set_output_format({ format: 'text' | 'json' | 'both' })设置默认响应格式。

可用工具

此MCP服务器提供以下Node.js调试工具。所有工具都支持可选的format参数('text''json')来控制响应格式。

会话管理

  • start_node_debug - 启动启用调试的Node.js脚本
  • stop_debug_session - 终止调试会话并清理

断点管理

  • set_breakpoint - 在特定文件和行设置断点
  • set_breakpoint_condition - 设置条件断点或通过URL正则表达式设置断点
  • add_logpoint - 添加一个在命中时记录消息的日志点
  • set_exception_breakpoints - 配置在异常时暂停的行为

执行控制

  • resume_execution - 继续执行到下一个断点或执行完成
  • step_over - 单步跳过当前行
  • step_into - 单步进入函数调用
  • step_out - 单步跳出当前函数
  • continue_to_location - 运行到特定位置
  • restart_frame - 从特定调用帧重新开始执行

检查和分析

  • inspect_scopes - 检查局部变量、闭包和this上下文
  • evaluate_expression - 在当前上下文中计算JavaScript表达式
  • get_object_properties - 深入查看对象属性
  • list_call_stack - 查看当前调用栈
  • get_pause_info - 获取当前暂停状态的信息

实用工具

  • list_scripts - 列出所有已加载的脚本
  • get_script_source - 获取脚本的源代码
  • blackbox_scripts - 配置在调试期间跳过的脚本
  • read_console - 读取调试期间捕获的控制台输出

有关详细的使用示例和参数描述,请参阅上面的“Node.js调试”部分。

📄 许可证

MIT

  • 0 关注
  • 0 收藏,21 浏览
  • system 提出于 2025-09-18 09:57

相似服务问题

相关AI产品