返回市场
开发工具调试器-mcp

开发工具调试器-mcp

作者:ScriptedAlchemy331 星标更新:2025-10-03

项目介绍

Node.js 调试器 MCP

一个使用Chrome DevTools协议提供全面Node.js调试能力的MCP服务器。此服务器使AI助手能够访问断点、单步执行、变量检查、调用堆栈、表达式求值和源映射等功能来调试Node.js应用程序。

为什么使用这个MCP服务器?

当你需要AI辅助来调试Node.js应用程序时,这个MCP服务器非常有用。它提供了对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": {
    1. "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": "/绝对路径/to/app.js" } }
  1. 设置断点(文件路径+1行)
{ "tool": "set_breakpoint", "params": { "filePath": "/绝对路径/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行。
  • 服务器在暂停之间缓冲控制台输出;通过includeConsole在单步执行/恢复时获取或使用read_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