VS Code Debugger MCP
项目简介
VS Code Debugger MCP 是一个 Visual Studio Code 扩展,它集成了一个基于 Model Context Protocol (MCP) 的服务器。这个服务器允许支持 MCP 协议的 AI 代理(如 RooCode、Cline 等)与 VS Code 的调试功能进行交互,从而实现自动化和智能化的代码调试体验。该项目充当了 AI 客户端和 VS Code 调试器之间的桥梁。
主要功能点
- AI 驱动调试: 允许 AI 代理通过标准化的 MCP 工具接口,执行 VS Code 中的调试操作。
- 调试配置管理: AI 可读取项目 'launch.json' 文件中的可用调试配置列表。
- 断点管理: 支持 AI 设置、查询和移除普通断点、条件断点、命中计数断点和日志点。
- 执行控制: AI 可启动调试会话(启动或附加模式)、继续执行、单步调试(步过、步入、步出)以及停止调试会话。
- (未来功能) 检查变量值、遍历调用堆栈、在特定上下文评估表达式等。
- MCP 服务器管理: 扩展在 VS Code 状态栏显示服务器运行状态,并提供方便的启动、停止和重启服务器的控制菜单。
- 端口配置: 支持配置服务器监听端口,处理端口占用冲突。
- 自动启动: 可配置在 VS Code 启动时自动启动 MCP 服务器。
- 客户端配置: 提供一键复制功能,方便将连接到该 MCP 服务器所需的配置信息(URL、端口)复制到 AI 客户端。
安装步骤
- 安装 Node.js: 确保您的系统已安装 Node.js (版本 18.0.0 或更高)。访问 Node.js 官方网站 下载并安装适合您操作系统的版本。
- 安装 VS Code Debugger MCP 扩展:
- 打开 Visual Studio Code。
- 切换到扩展视图 (侧边栏的方块图标,或按 'Ctrl+Shift+X')。
- 在搜索框中输入 'VSCode Debugger MCP'。
- 找到该扩展,点击“安装”按钮。
- 确认服务器状态: 扩展安装并激活后,会在 VS Code 状态栏(通常在右下角)显示 Debug-MCP 服务器的状态(如 "Debug-MCP: Stopped")。如果配置为自动启动,它可能会显示 "Debug-MCP: Starting" 或 "Debug-MCP: Running"。
服务器配置
该 MCP 服务器作为 VS Code 扩展的一部分运行,其进程生命周期由扩展管理。MCP 客户端不需要配置启动服务器的 'command' 和 'args'。客户端只需要配置连接到此服务器的 URL 和端口信息。
您可以通过点击状态栏的 Debug-MCP 状态项来打开菜单,选择“Copy MCP Config”来获取客户端所需的配置信息,通常格式如下(具体端口号取决于您的配置和服务器状态):
{ "mcpServers": { "vscode-debugger-mcp": { "url": "http://localhost:6009/sse", "headers": {} } } }
- 'url': MCP 服务器的连接地址,AI 客户端通过这个地址与服务器通信。'/sse' 是 Server-Sent Events 端点。
- 'headers': 可选的 HTTP 请求头。
将此配置添加到您的 AI 客户端(如 RooCode 的 MCP 配置文件 'mcp.json' 或其他支持 MCP 的客户端)中相应的 'mcpServers' 部分。请参考您的 AI 客户端文档了解如何添加外部 MCP 服务器配置。
您可以通过 VS Code 设置 ('settings.json') 配置服务器端口 ('vscode-debugger-mcp.server.port') 和是否自动启动 ('vscode-debugger-mcp.server.autoStart')。
基本使用方法
- 启动 MCP 服务器: 如果服务器未运行,点击状态栏的 Debug-MCP 状态项,选择“Start Debug MCP Server”。等待状态显示为 "Debug-MCP: Running"。
- 配置 AI 客户端: 将上一步复制的 MCP 服务器配置粘贴到您的 AI 客户端的 MCP 配置中。
- 连接 AI 客户端: 在您的 AI 客户端中,确保已启用并连接到“vscode-debugger-mcp”服务器(具体操作取决于客户端)。通常客户端会显示连接状态。
- AI 代理交互: 现在,您的 AI 代理应该可以通过调用 'vscode-debugger-mcp' 服务器提供的工具(如 'get_debugger_configurations', 'set_breakpoint', 'start_debugging' 等)来执行调试任务了。例如,让 AI 获取调试配置,然后选择一个配置启动调试会话,并在特定代码行设置断点。