尝试以扩展 VS Code 中的代理模式!

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

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

当我们首次在 VS Code 中引入代理模式时,它开辟了通过聊天与代码和工作区交互的新方式。你可以要求代理检查文件、运行构建,甚至调试测试。但是,你受限于模型训练的内容和工作区的内容。因此,下一步很明确:我们需要一种方法,让代理能够超越这些限制,以安全、用户控制的方式与真实的外部服务进行交互。

我们的首次尝试遵循了熟悉的 VS Code 模式:通过工具聊天参与者API 进行扩展。考虑到生态系统中已经有数千个扩展,这很合理,但行业正迅速走向一个新标准:模型上下文协议 (MCP)。MCP 最好理解为一种协议,用于以一致的方式将 AI 代理连接到各种外部工具和服务,就像 HTTP 规范了 Web 通信一样。目标是让任何客户端,不仅仅是 VS Code,都能够插入强大的工具服务器,如数据库、代码搜索和部署系统,并让它们“即插即用”。

这种向 MCP 的转变几乎在一夜之间解锁了一个更广阔的生态系统。现在,VS Code 用户可以利用像 Playwright MCP 服务器 进行前端验证、GitHub MCP 服务器 进行仓库洞察和拉取请求,或 Context7 进行更智能的 API 使用。 服务器列表持续增长,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

用户控制是体验的核心。通过工具选择器,你可以决定代理在给定会话中可以访问哪些工具,并查看清晰的描述和控制。对于开发或调试服务器的人员,VS Code 会显示日志,并使其易于启动、停止和重新启动服务器。这些细节使 MCP 不仅功能强大,而且对最终用户和服务器开发人员都易于上手。

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

我们的旅程并未止步于实现工具的基本兼容性。MCP 的大部分价值来自于其规范中更深层次的功能。这些功能,当完全支持时,使工具更具上下文性、适应性和鲁棒性。

例如,支持让 MCP 服务器理解你的工作区结构。服务器不再需要向用户询问文件夹路径或依赖配置,而是预先接收工作区文件夹列表,从而能够根据手头的项目定制工具。这使得诸如在单体仓库中查找所有待办事项,或根据检测到的基础设施文件激活部署工具等用例成为可能。

动态工具发现允许服务器实时更改可用工具集。服务器不再是静态列表,而是可以根据上下文或项目状态调整工具——例如,随着工作流程的进行显示不同的操作,或者显示与代码库中检测到的框架相关的工具。这使得代理的功能保持相关性并避免混乱。有关实际使用情况,请查看 TypeScript SDK 中的动态服务器示例或 GitHub MCP 服务器中的动态工具集发现功能。

最近的VS Code 更新还增加了对工具注解的支持,这有助于服务器为工具提供有用的元数据,例如人类可读的名称或关于工具是否应以只读模式运行的提示。这些细节改善了代理的行为和用户的理解。

最后,MCP 规范中最新的传输方式可流式 HTTP 现已获得支持。这使得远程服务器集成更流畅、更具可扩展性,尤其是对于云托管或无服务器工具提供商而言。

我们的目标是在 VS Code 中支持最新的 MCP 功能,以便用户能够受益于丰富的 AI 体验,并且服务器开发人员可以放心地实现这些功能。

发展生态系统:协作与下一步计划

MCP 现已为 GitHubPlaywrightAzurePerplexity 的官方服务器提供支持,并且生态系统正在不断壮大。VS Code 的独特之处不仅在于早期采用,还在于对规范优先工程的承诺。通过密切遵循 MCP 规范并在授权发现安全方面贡献改进,我们正在帮助塑造该协议的成熟,确保生态系统中的创新惠及所有人,而不仅仅是 VS Code 用户。

展望未来,我们正在积极努力在 VS Code 中支持 MCP 规范中即将推出的功能,包括授权提示资源采样。这些新增功能将在产品中实现时带来更丰富、更灵活的代理集成。

如果你正在构建开发工具或基础设施,MCP 现在是一种实用且开放的方式,可以使它们在 VS Code 及其他环境中可供 AI 代理访问。无论你是想使用现成的服务器还是创建自己的服务器,体验都应该既强大又直接。

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

我们很高兴能看到你们将构建什么——以及随着生态系统的扩展,代理工作流将如何演进。

编码愉快!