SuperAPI AI 工具集

node-debugging

编程与开发

查看项目

更新于 10-16 09:24

技能介绍

Node.js 后端调试技能。

用途

该技能用于调试 Node.js 后端进程,采用非阻塞的 tracepoint、logpoint、exceptionpoint 和 JavaScript 执行方式。当需要调试 API 服务器、worker 或后端脚本时使用。

触发场景

该技能在以下情况被激活:

  • 用户要求调试 Node.js 后端或 API
  • 用户想要在运行中的服务器里跟踪函数调用
  • 用户需要检查 Node 进程中的变量或状态
  • 用户提及后端错误、API bug 或服务端问题
  • 用户想在已连接的 Node 进程中运行 JavaScript

前置条件

  • 使用 MCP 并设置 PLATFORM=node,或单独运行 node-devtools-mcp
  • 在其他调试命令之前先连接目标进程(debug_connect)

主要能力

连接

  • 按 PID 连接(debug_connect 传 pid)
  • 按进程名连接(debug_connect 传 processName)
  • 按 Docker 容器连接(debug_connect 传 containerName 或 containerId)
  • 按 inspector 端口或 WebSocket URL 连接
  • 对于 Docker:当 MCP 运行在容器中时,使用 host.docker.internal 或容器名。在 MCP 容器中挂载 /var/run/docker.sock。

非阻塞调试

  • 跟踪点(debug_put-tracepoint):在代码位置捕获调用栈和局部变量
  • 日志点(debug_put-logpoint):评估并记录表达式
  • 异常点(debug_put-exceptionpoint):在未捕获异常或全部异常时捕获
  • 监视表达式(debug_add-watch):在每次跟踪点命中时评估

快照获取

  • debug_get-probe-snapshots(类型:tracepoint、logpoint、exceptionpoint;返回 tracepointSnapshots、logpointSnapshots、exceptionpointSnapshots)
  • debug_clear-probe-snapshots —— 完成后清理以释放内存

控制台与 Source Map

  • 控制台日志(debug_get-logs):捕获 Node 进程中的 console.log、error、warn
  • Source map(debug_resolve-source-location):将打包后的代码解析回原始源码

JavaScript 执行

  • 在 Node 平台上使用 execute 进行批量工具调用(仅 callTool;无 page)。参见 commands/node/execute.md。

调试工作流

  1. 连接:使用 pid、processName 或 containerName 执行 debug_connect
  2. 设置探针:在路由处理函数上设置跟踪点,为错误设置异常点
  3. 触发:发起 API 请求或触发代码路径
  4. 收集:debug_get-probe-snapshots(类型:tracepoint、exceptionpoint)
  5. 调查:在 Node 平台上使用 execute 进行动态检查(callTool;无 page 绑定)
  6. 清理:debug_clear-probes、debug_disconnect

最佳实践

  • 使用 urlPattern 匹配脚本路径(例如 routes/api.ts、server.js)
  • 先从异常点开始,优先捕获错误
  • 使用日志点做轻量监控
  • 使用 fromSequence 轮询快照以增量获取
  • 完成后清理探针以避免额外开销