使用说明
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)-了解代码结构和使用上下文的依赖关系 - 安全的文件操作 -通过自动导入更新跨文件重命名符号
核心优势
- 实时:利用VSCode的LSP实现实时代码状态,而无需执行慢速命令
- 准确度:基于语言服务器的精确分析,比静态分析更可靠
- 效率:显著减少AI编码代理的等待时间
- 整合:与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-toolsVSCODE_MCP_DISABLED_TOOLS-与--disable-tools
建筑
安装和配置后,VSCode MCP与MCP兼容客户端无缝协作:
- VSCode扩展:在VSCode实例中运行,并提供对LSP数据的访问
- MCP服务器/CLI:通过每个工作区的Unix套接字将MCP调用(或CLI子命令)转换为VSCode扩展请求
所有工具都需要 workspace_path 参数以针对特定打开的VSCode实例。这必须是由报告的工作区文件夹 list_workspaces 因为每个VSCode工作区都有自己的套接字连接。如果您需要对子项目或git子模块中的文件进行诊断,请保留 workspace_path 设置为打开的VSCode工作区根,并将子路径作为工具特定的文件参数传递。
许可证
该项目根据 反996 许可证。