VSCode MCP桥接工具

VSCode MCP是一款连接VSCode与MCP协议的桥接工具,为AI助手提供实时代码分析、诊断和智能导航功能,提升开发效率。

  • by tjx666
  • TypeScript
  • 本地部署
  • 105 星标
  • 更新于
在 GitHub 查看 tjx666/vscode-mcp

使用说明

VSCode MCP

Connect VSCode with MCP (Model Context Protocol) for enhanced AI assistant capabilities

Design Motivation • Available Tools • Installation • CLI • Architecture • License

概述

VSCode MCP是一个全面的单仓库解决方案,使MCP(模型上下文协议)客户端能够实时访问丰富的VSCode上下文信息。该项目弥合了AI助手和开发环境之间的差距,提供了准确的代码分析、诊断和智能代码导航。

设计动机

VSCode MCP Bridge主要服务于AI IDE(如Cursor)和AI编码代理,帮助他们更有效地开发和分析代码。

传统的AI编码代理在验证代码修改时通常需要执行耗时的命令:

  • tsc --noEmit -TypeScript类型检查
  • eslint . -代码样式检查
  • npm run build -项目建设

这些命令在大型项目中运行缓慢,严重影响了AI开发效率。VSCode MCP网桥提供实时LSP(语言服务器协议)信息,允许AI代理:

  • 获得快速诊断 (get-diagnostics)-替换耗时的类型检查和lint命令
  • 访问全面的LSP信息 (get-symbol-lsp-info)-在一次调用中获取定义、悬停、签名和键入信息
  • 高效地浏览代码 (get-references)-了解代码结构和使用上下文的依赖关系
  • 安全的文件操作 -通过自动导入更新跨文件重命名符号

核心优势

  1. 实时:利用VSCode的LSP实现实时代码状态,而无需执行慢速命令
  2. 准确度:基于语言服务器的精确分析,比静态分析更可靠
  3. 效率:显著减少AI编码代理的等待时间
  4. 整合:与VSCode生态系统深度集成,支持多种语言和扩展

可用工具

VSCode MCP通过MCP协议提供以下工具:

工具 说明
execute_命令 ⚠️ 使用JSON字符串参数执行VSCode命令
get_symbol_lspinfo 获取全面的LSP信息(定义、悬停、签名等)
get_诊断学 获取实时诊断,替换慢速tsc/eslint
获取引用 使用使用上下文代码查找符号引用
健康检查 测试与VSCode MCP桥扩展的连接
list_workspaces 列出所有可用的VSCode工作区
open_files 使用可选编辑器显示打开多个文件
重命名_符号 重命名工作区中所有文件的符号

⚠️ 安全警告:The execute_command 该工具可以执行任意的VSCode命令,并可能触发危险的操作。请务必谨慎使用,仅适用于值得信赖的AI模型。

安装

🚨 重要:在安装MCP服务器之前,您必须首先在VSCode实例中安装VSCode MCP网桥扩展。MCP服务器需要扩展才能与VSCode通信。

步骤1:安装VSCode扩展

使用ID安装VSCode MCP桥扩展: YuTengjing.vscode-mcp-bridge

或者在VSCode扩展市场中搜索“VSCode MCP桥”。

步骤2:安装MCP服务器

法典

将以下配置添加到您的 ~/.codex/config.toml:

[mcp_servers.vscode-mcp]
command = "bunx"
args = ["-y", "@vscode-mcp/vscode-mcp-server@latest"]
env = { "VSCODE_MCP_DISABLED_TOOLS" = "health_check,list_workspaces,open_files" }
startup_timeout_ms = 16_000

克劳德代码

Claude Code(Claude.ai/Code)提供内置的MCP支持。只需运行:

claude mcp add vscode-mcp -- npx -y @vscode-mcp/vscode-mcp-server@latest

此命令将在您的Claude Code环境中自动配置MCP服务器。

光标

点击按钮进行安装
或手动安装

首选 Cursor Settings -> Tools & Integrations -> New MCP Server.按你的喜好命名,使用 command 使用命令键入 npx @vscode-mcp/vscode-mcp-server@latest。您还可以通过单击来验证配置或添加命令行参数 Edit.

{
  "mcpServers": {
    "vscode-mcp": {
      "command": "npx",
      "args": ["@vscode-mcp/vscode-mcp-server@latest"]
    }
  }
}

双子星命令行工具

将以下配置添加到您的 ~/.gemini/settings.json:

{
  "mcpServers": {
    "vscode-mcp": {
      "command": "npx",
      "args": ["-y", "@vscode-mcp/vscode-mcp-server@latest"],
      "env": {},
      "includeTools": [
        "get_symbol_lsp_info",
        "get_diagnostics",
        "get_references",
        "health_check",
        "rename_symbol"
      ]
    }
  }
}

CLI(不需要MCP配置)

如果您的代理可以支付费用,但您不想注册MCP服务器,请安装 @vscode-mcp/vscode-mcp-cli。它暴露了 相同 工具作为MCP服务器的普通子命令,通过同一套接字与VSCode Bridge扩展进行通信。

# Run directly without install
bunx --bun @vscode-mcp/vscode-mcp-cli --help

# Or install globally
npm i -g @vscode-mcp/vscode-mcp-cli
vscode-cli --help

子指令

每个MCP工具一个子命令,烤肉串案例:

vscode-cli get-diagnostics      # real-time LSP diagnostics
vscode-cli get-symbol-lsp-info  # hover / signatures / definitions
vscode-cli get-references       # references with usage context
vscode-cli rename-symbol        # workspace-wide rename
vscode-cli open-files           # open one or more files
vscode-cli execute-command      # ⚠️ run arbitrary VSCode commands
vscode-cli health-check         # ping the bridge
vscode-cli list-workspaces      # enumerate open VSCode windows

工作空间定位

CLI默认值 --workspace 到 process.cwd().用覆盖 --workspace <path> 当您需要针对另一个打开的VSCode窗口时(必须与中的工作区匹配 list-workspaces).

例子

# Diagnostics on git-modified files in the current workspace
vscode-cli get-diagnostics

# Find references to `myFunction` in src/utils.ts at line 42
vscode-cli get-references --file-path src/utils.ts --line 42 --character 10

# Open multiple files in background (no editor focus)
vscode-cli open-files --files src/a.ts src/b.ts --no-show-editor

# Target a different VSCode window
vscode-cli get-diagnostics --workspace /Users/me/other-project

文本输出的字节与MCP服务器返回的字节相同——每个标志都是从IPC-zod模式自动生成的,因此MCP工具接受的任何内容都有 --kebab-case 旗帜在这里。

工具筛选

您可以使用命令行参数或环境变量控制哪些工具可用:

命令行参数:

  • --enable-tools -以逗号分隔的要启用的工具列表(白名单模式)。如果指定,则只有这些工具可用。
  • --disable-tools -以逗号分隔的禁用工具列表(黑名单模式)。之后申请 --enable-tools.

环境变量:

  • VSCODE_MCP_ENABLED_TOOLS -与 --enable-tools
  • VSCODE_MCP_DISABLED_TOOLS -与 --disable-tools

建筑

安装和配置后,VSCode MCP与MCP兼容客户端无缝协作:

  1. VSCode扩展:在VSCode实例中运行,并提供对LSP数据的访问
  2. MCP服务器/CLI:通过每个工作区的Unix套接字将MCP调用(或CLI子命令)转换为VSCode扩展请求

所有工具都需要 workspace_path 参数以针对特定打开的VSCode实例。这必须是由报告的工作区文件夹 list_workspaces 因为每个VSCode工作区都有自己的套接字连接。如果您需要对子项目或git子模块中的文件进行诊断,请保留 workspace_path 设置为打开的VSCode工作区根,并将子路径作为工具特定的文件参数传递。

许可证

该项目根据 反996 许可证。