Token导航 LogoToken导航TokenDH.com
MCP Debug Hub logo
开发工具未说明官方级别未说明来源级核验

MCP Debug Hub

MCP Server

MCP Debug Hub 是一个 VS Code 扩展,通过 Model Context Protocol (MCP) 暴露 VS Code 的调试功能,使 AI 编码助手能够直接在 VS Code 中控制和检查调试会话。

工具数

0

提示词数

0

GitHub Stars

3

资源数

0
调试工具TypeScriptClaudeClaudeCursorClineVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

R-D-menasheof

提供方

R-D-menasheof

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP调试中心

![Build VSIX](https://github.com/R-D-menasheof/mcp-debug-hub/actions/workflows/build-vsix.yml)

mcp-debug-hub 是一个VS Code扩展,它通过模型上下文协议(MCP)公开VS Code的调试功能。它使AI编码助手(如Cline、Claude、Cursor或Copilot)能够直接在VS Code中控制和检查调试会话,提供强大的调试自动化和检查功能。

主要特点

  • 调试会话控制:以编程方式启动、停止、附加到进程和管理VS Code调试会话
  • 多进程调试:调试父子进程层次结构,完全支持子进程、工作进程和生成的进程
  • 智能上下文检测:自动使用在VS Code的“调用堆栈”视图中选择的帧进行检查操作
  • 断点管理:设置、删除和列出断点,包括条件、点击次数和日志消息
  • 代码执行控制:遍历代码,继续执行,并在任何时候暂停
  • 运行时检查:计算表达式、检查变量和检查调用堆栈
  • 会话感知操作:针对多进程场景中的特定调试会话
  • 多语言支持:适用于VS Code调试适配器支持的任何语言
  • 内置状态视图:从活动栏监视服务器状态、活动连接和指标。包括服务器控制、URL复制和自动启动切换的快速操作

需求

  • VS Code 1.99.0或更高版本
  • v22.x或更新版本
  • 带有调试配置的工作区(位于 launch.jsonworkspace.code-workspace)

入门

安装

从VS代码市场安装扩展或从源代码构建:

git clone https://github.com/R-D-menasheof/mcp-debug-hub.git
cd mcp-debug-hub
npm install
npm run vsix
code --install-extension dist/mcp-debug-hub.vsix

MCP客户端配置

根据您使用的客户端配置MCP客户端。每个客户端的配置格式略有不同。

\[!注意\]\ 默认端口为37337。您可以在VS代码设置中更改此设置 mcpDebugHub.ssePort.

MCP客户端配置示例

Cursor

首选 Cursor Settings -> MCP ->编辑配置(或直接编辑 ~/.cursor/mcp.json):

{
  "mcpServers": {
    "debug-mcp": {
      "url": "http://localhost:37337/mcp"
    }
  }
}

Cline

跟随 临床MCP文件 并添加此配置:

{
  "mcpServers": {
    "debug-mcp": {
      "command": "node",
      "args": [],
      "transport": {
        "type": "sse",
        "url": "http://localhost:37337/mcp"
      }
    }
  }
}

确保正确配置SSE传输类型。

Continue

将配置添加到Continue配置文件中(~/.continue/config.json):

{
  "mcpServers": {
    "debug-mcp": {
      "transport": {
        "type": "sse",
        "url": "http://localhost:37337/mcp"
      }
    }
  }
}

启动服务器

当VS Code打开时,扩展可以自动启动(配置 mcpDebugHub.autostart 在设置中),或手动使用:

  • 从活动栏(图层图标)打开MCP调试中心视图
  • 点击 开始 按钮或启用 自动启动 切换
  • 或者,使用命令面板: MCP Debug Hub: Start

您的第一个提示

  1. 确保工作区中有调试配置(.vscode/launch.jsonworkspace.code-workspace)
  2. 在MCP客户端中输入以下提示:
Launch the debug configuration "Python: Current File" and set a breakpoint at line 10 of main.py

您的MCP客户端应启动调试会话并设置断点。

工具

  • 调试会话管理 (9个工具)

- launch_debug - launch_child_debug - attach_to_process - stop_debug - list_launch_configurations - get_debug_state - list_debug_sessions - get_session_hierarchy - get_session_info

  • 断点管理 (5个工具)

- set_breakpoint - set_breakpoints - remove_breakpoint - list_breakpoints - clear_all_breakpoints

  • 执行控制 (5个工具)

- continue_execution - pause_execution - step_over - step_into - step_out

  • 运行时检查 (5个工具)

- evaluate_expression - list_threads - get_stack_frames - get_variables - get_current_location

工具参考

launch_debug

使用工作区设置(launch.json或workspace.code workspace)中的命名配置启动新的调试会话。

参数:

  • configuration (字符串,必填):工作区设置中的调试配置名称(例如,“Python:当前文件”,“节点:启动程序”)

例子:

{
  "configuration": "Python: Current File"
}

launch_child_debug

作为现有会话的子会话启动新的调试会话。可用于调试多进程应用程序中的子进程、工作进程或衍生进程。

参数:

  • parentSessionId (字符串,必填):父调试会话的ID
  • configuration (字符串,必填):工作区设置中调试配置的名称
  • consoleMode (string,可选):是使用单独的控制台还是与父级合并(默认值:“separate”)。选项:“分离”、“合并”
  • lifecycleManagedByParent (布尔值,可选):生命周期(重启/停止)是否由父级管理(默认值:false)

例子:

{
  "parentSessionId": "abc123",
  "configuration": "Python: Worker Process",
  "consoleMode": "merged",
  "lifecycleManagedByParent": true
}

附件_流程

通过PID或进程名将调试器附加到已运行的进程。

参数:

  • configuration (string,必填):连接类型调试配置的名称 "request": "attach"
  • processId (数字,可选):要附加到的进程ID。需要processId或processName。
  • processName (字符串,可选):要附加的进程名称(例如,“python3”、“node”)。需要processId或processName。

例子:

{
  "configuration": "Python: Attach",
  "processId": 12345
}

stop_debug

停止调试会话并终止调试的程序。可以在多进程调试中针对特定会话。

参数:

  • sessionId (字符串,可选):要停止的可选会话ID。如果未提供,则停止活动会话

例子:

{
  "sessionId": "worker-123"
}

list_launch_configurations

列出工作区设置中的所有可用调试启动配置。

参数:

输出示例:

{
  "configurations": [
    { "name": "Python: Current File", "type": "python", "request": "launch" },
    { "name": "Python: Attach", "type": "python", "request": "attach" }
  ],
  "total": 2
}

get_debug_state

获取有关当前活动调试会话的详细信息,包括会话ID、状态和配置。

参数:

list_debug_sessions

列出所有活动的调试会话及其层次结构信息。显示多进程调试场景的父子关系。

参数:

输出示例:

{
  "sessions": [
    {
      "id": "main-123",
      "name": "Python: main.py",
      "type": "python",
      "state": "paused",
      "parent": null,
      "children": ["worker-456", "worker-789"]
    }
  ],
  "total": 3
}

get_session层次结构

以树结构获取调试会话层次结构。可用于在多进程调试中可视化父子关系。

参数:

get_session_info

按ID获取特定调试会话的详细信息。包括父级、子级、状态和会话元数据。

参数:

  • sessionId (string,必填):用于获取信息的调试会话的ID

例子:

{
  "sessionId": "worker-456"
}

设断点

使用可选条件、命中计数或日志消息在源文件中的特定行设置断点。

参数:

  • file (string,必填):源文件的绝对路径(例如,“/workspace/src/main.py”)
  • line (number,必填):应设置断点的行号(从1开始,第一行为1)
  • condition (string,可选):可选条件表达式-断点仅在计算结果为true时触发(例如,“x>10”)
  • hitCondition (字符串,可选):可选的点击计数条件(例如,“>5”表示第5次点击后中断,“==3”表示仅在第3次点击时中断)
  • logMessage (string,可选):可选的日志消息输出,而不是中断(logpoint)。使用{expression}进行变量插值。

例子:

{
  "file": "/workspace/src/main.py",
  "line": 42,
  "condition": "x > 10"
}

设置断点

一次设置多个断点。分别返回每个断点的成功/失败状态。

参数:

  • breakpoints (数组,必填):要设置的断点数组(每批最少1个,最多50个)

例子:

{
  "breakpoints": [
    {
      "file": "/workspace/src/main.py",
      "line": 10
    },
    {
      "file": "/workspace/src/utils.py",
      "line": 25,
      "condition": "count > 5"
    }
  ]
}

移除断点

从源文件中的特定行中删除断点。

参数:

  • file (string,必填):包含要删除的断点的源文件的绝对路径
  • line (number,必填):要删除的断点的行号(从1开始)

列表_断点

列出当前在工作区中设置的所有断点,包括它们的位置、条件和验证状态。

参数:

清除所有断点

清除工作区中所有文件的所有断点。

参数:

继续执行

继续执行程序,直到到达下一个断点或程序终止。可以在多进程调试中针对特定会话。

参数:

  • sessionId (string,可选):可选会话ID。如果未提供,则对活动调试会话进行操作

执行不力

在当前执行点暂停当前运行的程序。可以在多进程调试中针对特定会话。

参数:

  • sessionId (string,可选):可选会话ID。如果未提供,则对活动调试会话进行操作

跨步

遍历当前代码行,在不输入任何函数调用的情况下执行它。可以在多进程调试中针对特定会话。

参数:

  • sessionId (string,可选):可选会话ID。如果未提供,则对活动调试会话进行操作

step_into

进入当前行的函数调用,在被调用的函数内进行调试。可以在多进程调试中针对特定会话。

参数:

  • sessionId (string,可选):可选会话ID。如果未提供,则对活动调试会话进行操作

退出

退出当前函数,继续执行,直到它返回给调用函数。可以在多进程调试中针对特定会话。

参数:

  • sessionId (string,可选):可选会话ID。如果未提供,则对活动调试会话进行操作

求值表达式

在暂停的调试会话的上下文中计算表达式并返回其结果。如果未提供frameId/threadId,则自动使用在VS Code的“调用堆栈”视图中选择的帧。

参数:

  • expression (string,必填):要计算的表达式(例如,“x+y”、“user.name”、“len(items)”)。
  • frameId (数字,可选):堆栈帧ID来自 get_stack_frames。如果未提供,则使用“调用堆栈”视图中的活动帧。
  • threadId (number,可选):线程ID。如果没有提供frameId,则使用此线程的顶部框架。
  • sessionId (字符串,可选):会话ID。如果未提供,则对活动调试会话进行操作。

示例:

{
  "expression": "user.name",
  "threadId": 1
}
{
  "expression": "len(items)",
  "frameId": 2
}

list_threads

列出调试会话中的所有线程及其ID和名称。在调用之前,使用此选项查看哪些线程可用 get_stack_frames, evaluate_expression,或 get_variables 与特定 threadId.

参数:

  • sessionId (string,可选):可选会话ID。如果未提供,则对活动调试会话进行操作

输出示例:

{
  "threads": [
    { "id": 1, "name": "MainThread" },
    { "id": 2, "name": "Worker-1" },
    { "id": 3, "name": "Worker-2" }
  ],
  "total": 3
}

get_stack_frames

获取当前调用堆栈帧,包括文件位置、行号和帧ID。可以选择指定从哪个线程获取帧以进行多线程调试。

参数:

  • threadId (number,可选):可选线程ID。如果省略,则返回第一个线程的堆栈帧。使用 list_threads 查看所有线程ID
  • sessionId (string,可选):可选会话ID。如果未提供,则对活动调试会话进行操作

例子:

{
  "threadId": 2,
  "sessionId": "worker-123"
}

get_variables

获取当前作用域中的所有变量及其值,包括局部变量、全局变量和闭包变量。如果未提供frameId/threadId,则自动使用在VS Code的“调用堆栈”视图中选择的帧。

参数:

  • frameId (数字,可选):堆栈帧ID来自 get_stack_frames。如果未提供,则使用“调用堆栈”视图中的活动帧。
  • threadId (number,可选):线程ID。如果没有提供frameId,则使用此线程的顶部框架。
  • sessionId (字符串,可选):会话ID。如果未提供,则对活动调试会话进行操作。

示例:

{
  "threadId": 1
}
{
  "frameId": 2,
  "sessionId": "worker-123"
}

get_current \_位置

返回调试器中当前暂停执行的确切文件路径、行号和列。在检查变量或计算表达式之前,使用此方法了解当前的执行上下文。可以在多进程调试中针对特定会话。

参数:

  • sessionId (string,可选):可选会话ID。如果未提供,则对活动调试会话进行操作

配置

MCP调试中心扩展支持VS代码设置中的以下配置选项:

  • mcpDebugHub.ssePort

MCP SSE(服务器发送事件)服务器的端口号。用于Cursor、Continue和Cline等AI客户端进行连接调试。

- 类型: 数字 - 违约: 37337 - 范围: 1024-65535

  • mcpDebugHub.sseHost

MCP SSE服务器将侦听的主机地址。使用“localhost”进行本地连接,或使用“0.0.0.0”允许远程连接。

- 类型: 字符串 - 违约: "localhost"

  • mcpDebugHub.autostart

打开VS Code时自动启动MCP服务器。禁用时,使用“MCP调试中心:启动服务器”命令手动启动。此设置也可以直接从MCP调试中心状态视图切换。

- 类型: 布尔 - 违约: false

  • mcpDebugHub.logLevel

记录详细程度。“debug”显示所有消息,“error”仅显示错误。查看“MCP调试中心”输出通道中的日志。

- 类型: 字符串 - 选择: debug, info, warn, error - 违约: "info"

更改端口

要使用其他端口,请更新您的VS Code设置:

{
  "mcpDebugHub.ssePort": 8080
}

然后更新您的MCP客户端配置以使用新端口。确切的格式取决于您的客户端:

对于光标:

{
  "mcpServers": {
    "debug-mcp": {
      "url": "http://localhost:8080/mcp"
    }
  }
}

对于克莱恩:

{
  "mcpServers": {
    "debug-mcp": {
      "command": "node",
      "args": [],
      "transport": {
        "type": "sse",
        "url": "http://localhost:8080/mcp"
      }
    }
  }
}

继续:

{
  "mcpServers": {
    "debug-mcp": {
      "transport": {
        "type": "sse",
        "url": "http://localhost:8080/mcp"
      }
    }
  }
}

概念

调试配置

该扩展使用工作区设置中的VS Code调试配置。配置可以存储在 .vscode/launch.json (单根工作区)或 workspace.code-workspace (多根工作区)。在使用MCP调试中心之前,您必须为项目设置至少一个调试配置。

示例 launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal"
    }
  ]
}

断点验证

当您设置断点时,它可能处于“挂起”状态,直到调试会话到达可以验证它的代码。已验证的断点保证会被命中,而挂起的断点可能需要调整。

栈帧

堆栈帧表示暂停执行点处的调用堆栈。帧ID 0是当前(最顶部)帧。使用帧ID evaluate_expressionget_variables 检查调用堆栈的不同级别。

发展

从源头构建

git clone https://github.com/R-D-menasheof/mcp-debug-hub.git
cd mcp-debug-hub
npm install
npm run compile

在开发中运行

  1. 在VS Code中打开项目
  2. 按F5开始调试
  3. 将打开一个新的VS Code窗口,其中加载了扩展名
  4. 配置您的MCP客户端以连接到 http://localhost:37337/mcp

运行测试

npm test

已知限制

  • 该扩展需要一个具有调试配置的活动VS Code工作区
  • 一些调试适配器可能对某些功能(例如,条件断点)的支持有限
  • SSE传输要求MCP客户端支持服务器发送事件

贡献

欢迎投稿!请随时提交拉取请求。

许可证

许可证 文件以获取详细信息。

链接

目录标签

目录标签

调试工具TypeScriptClaude本地部署VSCode扩展AI集成多进程调试断点管理

支持客户端

ClaudeCursorClineVS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP