mcpField
M
MCP JS Debugger

MCP JS Debugger

本地服务
github.com/johngrimes开发工具249 周前更新

关于 MCP JS Debugger

MCP JS Debugger 是面向 JavaScript 和 TypeScript 开发者的调试服务,通过 Chrome DevTools Protocol 控制调试目标,并支持源映射定位原始代码。

主要功能

  1. 01连接 CDP 兼容的调试目标
  2. 02设置、查看和移除断点
  3. 03单步执行与暂停恢复
  4. 04检查调用栈和作用域变量
  5. 05求值表达式并修改变量
  6. 06映射转译代码的源位置

适用场景

  1. 01调试 Node.js 应用中的运行问题
  2. 02在 Chrome 或 Edge 中定位断点
  3. 03排查 TypeScript 转译后的代码问题

MCP 相关

该 MCP 服务将 CDP 调试能力作为工具提供给 MCP 客户端,包括断点、执行控制、调用栈、表达式求值和变量操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"js-debugger": {
"command": "npx",
"args": [
"-y",
"mcp-js-debugger"
]
}
}
}
启动命令npx -y mcp-js-debugger

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-js-debugger

工具

18

收录的工具列表 · 更新于 3 周前

参数类型必填说明
websocket_urlstring是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_namestring否此调试会话的可选易读名称。管理多个并发会话时很有用。

详细介绍

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列出已加载的脚本
示例工作流
  1. 使用 --inspect-brk 启动应用程序:

    node --inspect-brk=9229 app.js
    
  2. 获取 WebSocket URL:

    curl http://localhost:9229/json
    
  3. 连接调试器:

    connect_debugger(websocket_url: "ws://localhost:9229/<id>")
    
  4. 设置断点:

    set_breakpoint(session_id: "...", url: "file:///path/to/app.js", line_number: 10)
    
  5. 恢复执行,以命中断点:

    resume_execution(session_id: "...")
    
  6. 暂停时检查状态:

    get_call_stack(session_id: "...")
    get_scope_variables(session_id: "...", call_frame_id: "...", scope_index: 0)
    evaluate_expression(session_id: "...", expression: "myVariable")
    
  7. 继续调试:

    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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。