
Nexera调试器MCP
VS Code扩展,使AI代理能够 交互式调试 应用程序——就像人类开发人员一样——通过 模型上下文协议(MCP).与合作 VS Code, 反重力,以及任何兼容MCP的AI客户端。
而不是依赖 console.log 事实上,使用Nexera Debugger MCP的代理可以设置断点,在故障的确切点暂停执行,逐行遍历代码,检查实时运行时状态的变量,在上下文中评估表达式,并导航调用堆栈。这就是两者之间的区别 *猜测* 日志中出现了什么问题 *看见* 它实时发生。
为什么要对AI进行交互式调试?
console.log 调试 | 交互式调试(MCP) | |
|---|---|---|
| 精确度 | 需要预先猜测要记录哪些变量 | 检查 *任何* 变量at *任何* 点,按需 |
| 迭代速度 | 更改代码→ 重演→ 读取日志→ 重复 | 暂停→ 检查→ step → 继续,不更改代码 |
| 异步和并发 | 日志交错,难以遵循执行顺序 | 一次一个线程地遍历精确的执行路径 |
| 根本原因深度 | 曲面级别:您看到的是值,而不是 *为什么* | 完整的调用栈、作用域、闭包和实时评估 |
| 浏览器调试 | console.log 无法检查DOM状态或网络 | CDP模式:屏幕截图、DOM快照、网络活动 |
| 代码污染 | 剩菜 console.log 散落在代码库中 | 零插装——断点是短暂的 |
Nexera调试器MCP将AI代理从 *猜测bug的代码生成器* 进入一个 观察、假设和验证的推理调试器 --同样的反馈循环使经验丰富的开发人员高效工作。
快来看看
https://github.com/user-attachments/assets/bc632185-6668-43df-be30-215fac79380a
我们为什么建造这个
我们想回答一个大问题: 当AI代理可以与正在运行的代码交互时,它们是如何推理的?
该项目为代理提供了与人类开发人员使用的调试工具相同的工具——断点、步进、变量检查、实时评估——并允许他们浏览代码库,通过观察而不是猜测来查找和修复错误。
我们建造这个是因为:
- 🔬 我们正在探索 代理如何与SDLC交互——不仅仅是编写代码,还要在运行时理解它
- 🤝 我们需要社区意见 --欢迎提供意见、想法和反馈
- 🎯 它真的很有用 --看着人工智能代理遍历代码,推理状态,并专注于bug,这有点神奇
如果你能找到让它变得更好的方法——欢迎公关。 🚀
⚠️ 安全注意事项
在启用此扩展之前,请了解风险:
任意代码执行
此MCP中的一些工具允许代理 执行任意代码 在您正在运行的应用程序的上下文中。这些被归类为 第3层 工具:
| 第3层工具 | 它的作用 |
|---|---|
eval_expression | 在调试上下文中计算任何表达式 |
eval_repl | 在REPL中执行有副作用的代码 |
eval_set_variable | 修改实时内存中的变量值 |
默认情况下, 所有层都已启用。如果要将代理限制为只读检查和标准调试控件,请在VS代码设置中禁用第3层:
{
// Only allow read-only (tier1) and standard debugging (tier2) tools
"debugAutomation.security.allowedTiers": ["tier1", "tier2"]
}看 MCP_TOOLS_REFERNCE.md 对于完整的层级细分。
敏感数据泄露
当代理检查变量、计算表达式或读取内存时,它可能会遇到 敏感信息 -应用程序运行时状态中存在的API密钥、令牌、密码、PII或其他机密。请注意:
- 返回的变量值
inspect_variables和eval_expression被发送回代理(并可能被记录或转发给链中的其他工具) - 扩展 不过滤或编辑 敏感值——它返回调试器看到的内容
- 控制台输出由捕获
observe_console也可能包含敏感数据
推荐:在具有测试数据的开发环境中使用此工具。调试处理生产机密或真实用户数据的应用程序时要小心。
代币使用和成本
\[!小心\] 活动调试会话是令牌密集型的。 在开始扩展调试会话之前,请注意对AI使用配额和成本的影响。
交互式调试是固有的 健谈的每一步、断点命中、变量检查、作用域枚举和表达式求值都是一个单独的MCP工具调用——每一步都是一次往返,将结构化数据发送回代理并消耗输入和输出令牌。一个调试会话可以轻松生成10行代码、检查3个作用域并计算几个表达式 数十次工具调用 具有大量的响应有效载荷。
这意味着:
- VS代码副本/GitHub副本:调试会话将比正常的代码生成或聊天交互更快地消耗您的高级请求分配。如果你在使用限制计划中,一次彻底的调试会话可能会占用你配额中有意义的一部分。
- 反重力:模型选择很重要——使用前沿模型(如Claude Opus、GPT-5.2、Gemini 3.0 Pro)进行调试,每次会话的成本将比使用较小的模型高得多。考虑这个bug是否需要深入的推理,或者一个更轻的模型是否就足够了。
- 任何具有计量API访问权限的MCP客户端:同样适用。每次工具调用响应——尤其是
inspect_variables对于大型物体,browser_dom_snapshot,或browser_screenshot--可以返回大量有效载荷,从而增加令牌计数。
管理使用情况的提示:
- 🎯 成为目标 --向代理明确描述错误以及要调查的文件/函数,而不是要求它“探索整个应用程序”
- ⏱️ 设定界限 --请代理在发现第一个错误后停止,而不是彻底测试所有内容
- 📉 使用较轻的型号进行分流 --为需要深入推理的复杂bug保存边界模型
- 🔍 使用
console.log对于广度,MCP调试用于深度 --如果您不确定错误在哪里,请先用日志缩小范围,然后将调试器附加到特定区域
MCP刀具表面--34刀具
扩展暴露 34个MCP工具 分为8类。所有工具都适用于DAP(VS代码调试器)和CDP(Chrome DevTools协议)模式。
会话管理(4个工具)
| 工具 | 说明 |
|---|---|
session_start | 启动新的调试会话(DAP或CDP)。自动检测子会话并返回对代理友好的指导。 |
session_stop | 停止调试会话。 |
session_list | 列出活动会话。为了简单起见,默认情况下隐藏父/启动器会话。 |
session_info | 获取详细的会话信息和自动化上下文。 |
执行控制(7个工具)
| 工具 | 说明 |
|---|---|
exec_continue | 恢复执行。线程ID是自动解析的。 |
exec_pause | 暂停执行。 |
exec_step_over | 跨过当前线路。 |
exec_step_into | 进入函数调用。 |
exec_step_out | 退出当前功能。 |
exec_run_to | 运行到特定的文件和行(仅DAP)。 |
exec_paused_state | 获取详细的暂停状态,包括暂停原因和点击断点。 |
检查(6个工具)
| 工具 | 说明 |
|---|---|
inspect_threads | 列出调试会话中的所有线程(仅DAP)。 |
inspect_stack_trace | 获取调用堆栈。如果省略,则自动解析线程ID。 |
inspect_scopes | 获取调用帧的变量作用域。 |
inspect_variables | 从作用域或按路径获取变量。 |
inspect_watch | 添加监视表达式(仅DAP)。 |
inspect_memory | 读取内存或反汇编(仅DAP)。 |
断点(5个工具)
| 工具 | 说明 |
|---|---|
breakpoint_add | 添加行、函数、数据或日志断点。支持条件和命中次数。 |
breakpoint_remove | 删除一个或所有断点。 |
breakpoint_list | 列出所有断点。 |
breakpoint_toggle | 启用或禁用断点。 |
breakpoint_exceptions | 配置异常断点(捕获/未捕获)。 |
评估(3个工具)
| 工具 | 说明 |
|---|---|
eval_expression | 在当前调试上下文中计算表达式。 |
eval_repl | 在REPL上下文中评估表达式的副作用(仅DAP)。 |
eval_set_variable | 在当前上下文中设置变量值。 |
浏览器和CDP(7个工具)
| 工具 | 说明 |
|---|---|
browser_launch | 启动启用远程调试的浏览器。 |
browser_tab_create | 创建新的浏览器选项卡 |
browser_tab_list | 列出所有打开的浏览器选项卡。 |
browser_tab_get | 获取特定选项卡的详细信息 |
browser_tab_refresh | 刷新浏览器选项卡 |
browser_screenshot | 截取浏览器页面的屏幕截图。 |
browser_dom_snapshot | 获取DOM结构快照。 |
可观察性(2个工具)
| 工具 | 说明 |
|---|---|
observe_console | 从调试会话中获取控制台输出。 |
observe_network | 获取网络请求活动(仅限CDP)。 |
有关完整的参数文档,请参阅 MCP工具参考.
架构概述
扩展分为重点模块:
- VS代码扩展入口点 (
src/extension.ts)--连接命令、配置和UI界面。 - MCP服务器+网桥 (
src/mcpServer.ts,src/websocketServer.ts,src/bridge/)--处理MCP请求处理和WebSocket传输。 - 调试会话编排 (
src/debugManager.ts,src/models/)--管理会话生命周期和状态。 - 工具表面 (
src/tools/consolidated/)--34个MCP工具,用于会话控制、断点、评估、检查和浏览器交互。 - CDP集成 (
src/cdp/)--用于浏览器调试的Chrome DevTools协议工具。 - 安全 (
src/security/)--授权层和验证规则。 - UI视图 (
src/views/)--VS Code中的MCP控制面板。
入门指南
先决条件
- Node.js(建议使用当前的LTS)
- VS Code 1.96+或VS Code内部人士
安装依赖项
npm install构建扩展
npm run compile打包VSIX
npx vsce package --no-dependencies安装VSIX
code --install-extension nexera-debugger-mcp-*.vsixMCP服务器和配置
MCP服务器自动启动(可通过设置进行配置)。您还可以通过以下方式进行控制 调试自动化 VS代码活动栏中的视图。
VS代码MCP配置
使用以下命令之一:
- 调试自动化:配置mcp.json (将文件写入您选择的位置)。
- 调试自动化:复制MCP配置(VS代码) (将JSON片段复制到剪贴板)。
典型的VS代码配置如下:
{
"servers": {
"nexera-debugger": {
"command": "node",
"args": ["
/nexera-mcp-launcher.js"]
}
}
}反重力MCP配置
使用 调试自动化:复制MCP配置(反重力) 复制反重力特定配置。反重力使用 mcpServers 密钥而不是 servers:
{
"mcpServers": {
"nexera-debugger": {
"command": "node",
"args": ["
/nexera-mcp-launcher.js"]
}
}
}测试项目和快速验证
一个小型的Node.js测试项目包含在 test-app-to-debug/.
- 在VS Code中打开此存储库。
- 开始调试
test-app-to-debug/test.js使用Node.js调试器。 - 确认MCP服务器正在运行 调试自动化 面板。
- 从您的MCP客户端致电
session_list以验证会话是否可见。 - 使用设置断点
breakpoint_add和使用exec_continue击中它。 - 检查变量
inspect_stack_trace→inspect_scopes→inspect_variables.
许可证
MIT许可证。看 许可证.
