MCP JS调试器
一个MCP(模型上下文协议)服务器,它公开 Chrome DevTools协议 调试功能,使AI助手能够调试JavaScript和 TypeScript应用程序。
特性
- 连接到任何兼容CDP的调试器(Node.js、Chrome、Edge)
- 设置、列出和删除断点
- 遍历代码(over、into、out)
- 使用源代码映射支持检查调用堆栈
- 计算任何堆栈帧中的表达式
- 查看和修改变量
- 在出现异常时暂停
- 完全支持源代码映射,用于调试转换后的代码
安装
npm install
npm run buildClaude代码集成
添加到您的Claude代码配置中:
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/")- 设置断点:
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协议客户端包装器
- 会话管理器 -管理多个调试会话
- 源地图管理器 -处理源地图加载和位置映射
- server.ts -使用工具处理程序实现MCP服务器
- types.ts -TypeScript类型定义
需求
- Node.js 18.0.0或更高版本
- CDP兼容的调试目标(Node.js、Chrome、Edge等)
许可证
阿帕奇-2.0
