关于 MCP JS Debugger
MCP JS Debugger 是面向 JavaScript 和 TypeScript 开发者的调试服务,通过 Chrome DevTools Protocol 控制调试目标,并支持源映射定位原始代码。
主要功能
- 01连接 CDP 兼容的调试目标
- 02设置、查看和移除断点
- 03单步执行与暂停恢复
- 04检查调用栈和作用域变量
- 05求值表达式并修改变量
- 06映射转译代码的源位置
适用场景
- 01调试 Node.js 应用中的运行问题
- 02在 Chrome 或 Edge 中定位断点
- 03排查 TypeScript 转译后的代码问题
MCP 相关
该 MCP 服务将 CDP 调试能力作为工具提供给 MCP 客户端,包括断点、执行控制、调用栈、表达式求值和变量操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
18收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| websocket_url | string | 是 | CDP 端点的 WebSocket URL。对于 Node.js,通常为 ws://localhost:9229/{uuid}。对于 Chrome,使用 ws://localhost:9222/devtools/page/{pageId}。可通过访问 http://localhost:9229/json(Node.js)或 http://localhost:9222/json(Chrome)查找可用目标。 |
| session_name | string | 否 | 此调试会话的可选易读名称。管理多个并发会话时很有用。 |
详细介绍
MCP JS 调试器
一个 MCP(模型上下文协议)服务,提供 Chrome DevTools Protocol 调试功能,使 AI 助手能够调试 JavaScript 和 TypeScript 应用程序。
功能
- 连接到任何兼容 CDP 的调试器(Node.js、Chrome、Edge)
- 设置、列出和移除断点
- 单步执行代码(跳过、进入、跳出)
- 查看调用堆栈,并支持源映射
- 在任意堆栈帧中求值表达式
- 查看和修改变量
- 在异常处暂停
- 全面支持源映射,可用于调试转译后的代码
安装
npm install
npm run build
Claude Code 集成
将以下内容添加到 Claude Code 配置中:
claude mcp add mcp-js-debugger -- npx mcp-js-debugger
或添加到 .mcp.json:
{
"mcpServers": {
"mcp-js-debugger": {
"command": "npx",
"args": ["mcp-js-debugger"]
}
}
}
用法
启动调试目标
使用检查器启动 Node.js 应用程序:
# Pause on first line (recommended for setting initial breakpoints)
node --inspect-brk=9229 your-script.js
# Or start without pausing
node --inspect=9229 your-script.js
可用工具
| 工具 | 描述 |
|---|---|
connect_debugger | 通过 WebSocket URL 连接到 CDP 端点 |
disconnect_debugger | 断开调试会话 |
set_breakpoint | 按 URL 和行号设置断点 |
remove_breakpoint | 按 ID 移除断点 |
list_breakpoints | 列出会话中的所有断点 |
resume_execution | 暂停后继续执行 |
step_over | 跳过当前语句 |
step_into | 进入函数调用 |
step_out | 跳出当前函数 |
pause_execution | 暂停正在运行的执行 |
get_call_stack | 获取带有源代码位置的当前调用堆栈 |
evaluate_expression | 求值 JavaScript 表达式 |
get_scope_variables | 获取作用域中的变量 |
set_variable_value | 修改变量的值 |
set_pause_on_exceptions | 配置异常处理 |
get_original_location | 将生成代码的位置映射到原始源代码位置 |
get_script_source | 获取脚本源代码 |
list_scripts | 列出已加载的脚本 |
示例工作流
-
使用
--inspect-brk启动应用程序:node --inspect-brk=9229 app.js -
获取 WebSocket URL:
curl http://localhost:9229/json -
连接调试器:
connect_debugger(websocket_url: "ws://localhost:9229/<id>") -
设置断点:
set_breakpoint(session_id: "...", url: "file:///path/to/app.js", line_number: 10) -
恢复执行,以命中断点:
resume_execution(session_id: "...") -
暂停时检查状态:
get_call_stack(session_id: "...") get_scope_variables(session_id: "...", call_frame_id: "...", scope_index: 0) evaluate_expression(session_id: "...", expression: "myVariable") -
继续调试:
step_over(session_id: "...") resume_execution(session_id: "...")
源映射支持
该服务会自动为转译后的代码(TypeScript、打包后的 JavaScript 等)加载源映射。源映射可用时:
- 调用堆栈会显示原始源代码位置
- 可以在原始源文件中设置断点
get_original_location会将生成代码的位置映射到原始源代码位置get_script_source可以返回原始源代码内容
开发
# Build
npm run build
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Watch mode for development
npm run dev
架构
- cdp-client.ts - 底层 Chrome DevTools Protocol 客户端封装
- session-manager.ts - 管理多个调试会话
- source-map-manager.ts - 处理源映射加载和位置映射
- server.ts - 包含工具处理程序的 MCP 服务实现
- types.ts - TypeScript 类型定义
要求
- Node.js 18.0.0 或更高版本
- 兼容 CDP 的调试目标(Node.js、Chrome、Edge 等)
许可证
Apache-2.0
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。