超越工具本身:在 VS Code 中添加 MCP

2025年5月14日,作者:Harald Kirschner

当我们首次在 VS Code 中引入智能体模式(agent mode)时,它通过对话为你的代码和工作区交互开辟了新的方式。你可以要求智能体检查文件、运行构建,甚至调试测试。但你受限于模型训练数据的内容和工作区的范围。因此,下一步的目标很明确:我们需要一种方法,让智能体能够突破这些界限,以安全、用户可控的方式与真实的外部服务进行交互。

我们的首次尝试遵循了熟悉的 VS Code 模式:通过工具(Tools)对话参与者(Chat participants) API 进行扩展。考虑到生态系统中已经存在的数千个扩展,这样做是有道理的,但行业正在迅速转向一个新的标准:模型上下文协议(Model Context Protocol, MCP)。MCP 可以被理解为一种将 AI 智能体连接到各种外部工具和服务的通用协议,就像 HTTP 标准化了网络通信一样。其目标是让任何客户端(不仅仅是 VS Code)都能插入强大的工具服务器,如数据库、代码搜索和部署系统,并让它们能够“即插即用”。

转向 MCP 几乎在一夜之间解锁了一个更广阔的生态系统。现在,VS Code 用户可以利用诸如用于前端验证的 Playwright MCP 服务器、用于仓库洞察和拉取请求的 GitHub MCP 服务器,或者用于更智能 API 使用的 Context7 等服务器。服务器列表在不断增长,MCP 已迅速成为为各种 AI 智能体引入额外功能的基础。

让 MCP 为每个人服务:应用 VS Code 的设计原则

VS Code 的设计理念始终致力于让强大的功能易于使用、默认安全,并给予用户明确的控制权。同样的原则也指导了我们的 MCP 集成。

以前,开始使用 MCP 服务器意味着要将 JSON 代码块复制到配置文件中并管理命令行参数。我们希望简化这一过程:通过 MCP: Add Server(添加服务器) 命令,你可以从包管理器(NPM、PyPI、Docker)安装服务器,并让 VS Code 处理剩下的工作。网站甚至可以提供一个“在 VS Code 中安装”按钮来进一步简化入门流程,VS Code 还会尽可能自动发现来自 Claude Desktop 等其他客户端的配置。

Add MCP Server commands in VS Code

安全性是另一个重点。管理 MCP 服务器的密钥不应意味着将密码硬编码进源代码管理中。我们增加了对输入变量的支持,这些变量会提示你输入一次,然后安全地加密存储密钥,同时也支持引用你本地开发已信任的现有 .env 文件。这使得团队能够更轻松、更安全地共享和审查配置。

GitHub MCP Server with safely stored PAT using input variables

用户控制是体验的核心。通过工具选择器(tool picker),你可以决定智能体在特定会话中可以访问哪些工具,并查看清晰的描述和控制选项。对于那些正在开发或调试服务器的用户,VS Code 会显示日志,并简化了启动、停止和重启服务器的操作。这些细节使 MCP 不仅功能强大,而且对终端用户和服务器开发者来说都易于使用。

超越基础:更丰富的 MCP 功能

我们的旅程并没有止步于实现工具的基础兼容性。MCP 的大部分价值来自于其规范中更深层次的功能。当得到充分支持时,这些功能将使工具更具上下文关联性、适应性和稳健性。

例如,根目录(roots)支持让 MCP 服务器能够理解你的工作区结构。服务器无需询问用户的文件夹路径或依赖配置,而是预先接收工作区文件夹列表,从而能够根据手头的项目定制工具。这实现了诸如在整个代码库(monorepo)中查找所有 TODO,或根据检测到的基础设施文件自动激活部署工具等用例。

动态工具发现(Dynamic tool discovery) 允许服务器动态更改可用工具集。服务器可以根据上下文或项目状态调整工具,而不是提供静态列表——例如在工作流程推进时显示不同的操作,或显示与代码库中检测到的框架相关的工具。这使智能体的能力始终保持相关性并避免混乱。如需查看实际应用,请参考 TypeScript SDK 中的 动态服务器示例 或 GitHub MCP 服务器中的 动态工具发现 功能。

上一次 VS Code 更新还增加了对 工具注解(tool annotations) 的支持,这有助于服务器为工具提供有用的元数据,例如人类可读的名称或关于工具是否应以只读模式运行的提示。这些细节改善了智能体的行为以及用户的理解。

最后,可流式传输的 HTTP(streamable HTTP) 现在作为 MCP 规范中最新的传输方式得到支持。这使得远程服务器集成更加顺畅且具有扩展性,特别适用于云托管或无服务器(serverless)工具提供商。

我们的目标是在 VS Code 中支持最新的 MCP 功能,以便用户能够享受丰富的 AI 体验,而服务器开发者也能放心地实现这些功能。

发展生态系统:协作与未来展望

MCP 现已驱动来自 GitHubPlaywrightAzurePerplexity 的官方服务器,且生态系统正在不断壮大。让 VS Code 脱颖而出的不仅是抢先采用,更是对“规范优先”工程原则的承诺。通过密切遵循 MCP 规范并在 授权发现安全 方面贡献改进,我们正在帮助塑造这一协议的发展,确保生态系统中的创新能够造福每一个人,而不仅仅是 VS Code 用户。

展望未来,我们正积极在 VS Code 中落地支持规范中已有的即将推出的 MCP 功能,包括 授权(Authorization)提示词(Prompts)资源(Resources)采样(Sampling)。这些新增内容将在进入产品后带来更丰富、更灵活的智能体集成。

如果你正在构建开发工具或基础设施,MCP 现在是一个实用且开放的方式,可以让 AI 智能体在 VS Code 及其他环境中访问它们。无论你是想使用现成的服务器还是创建自己的服务器,整个体验都应当是稳健且直观的。

若要开始使用,请访问 ModelContextProtocol.ioVS Code MCP 文档GitHub 上的参考服务器

我们非常期待看到你所构建的内容,以及随着生态系统的扩展,智能体工作流将如何演变。

编码愉快!

© . This site is unofficial and not affiliated with Microsoft.