超越工具,在 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 Server进行前端验证,GitHub MCP Server进行仓库洞察和拉取请求,或者Context7进行更智能的 API 使用。服务器的列表不断增长,MCP 已迅速成为为 AI 代理带来额外功能的基石。
让 MCP 为所有人服务:应用 VS Code 的设计原则
VS Code 的设计理念一直专注于使强大功能易于使用、默认安全,并赋予用户明确的控制权。这些相同的原则指导了我们的 MCP 集成。
以前,开始使用 MCP 服务器意味着将 JSON 块复制到配置文件并管理命令行标志。我们希望简化这一点:使用 **MCP:添加服务器** 命令,你可以从包管理器(NPM、PyPI、Docker)设置服务器,然后由 VS Code 处理其余部分。网站甚至可以提供“安装到 VS Code”按钮,以进一步简化入门过程,并且 VS Code 在可能的情况下会自动发现来自 Claude Desktop 等其他客户端的配置。

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

用户控制是体验的核心。通过工具选择器,你可以决定在给定会话中代理可以访问哪些工具,并看到清晰的描述和控件。对于开发或调试服务器的人员,VS Code 会显示日志,并简化服务器的启动、停止和重启。这些细节使得 MCP 不仅强大,而且对最终用户和服务器开发人员来说都易于上手。
超越基础:更丰富的 MCP 功能
这项工作不仅仅是实现工具的基本兼容性。MCP 的许多价值来自于其规范中的深入功能。这些功能在完全支持时,可以使工具更具上下文感知、自适应性和健壮性。
例如,根 (roots)支持使 MCP 服务器能够理解你的工作区结构。服务器可以预先收到工作区文件夹列表,而不是必须要求用户提供文件夹路径或依赖配置,从而能够根据手头的项目定制工具。这使得诸如在 monorepo 中查找所有 TODOs,或基于检测到的基础设施文件激活部署工具之类的用例成为可能。
动态工具发现允许服务器在运行时更改可用工具集。服务器可以根据上下文或项目状态调整工具,而不是使用静态列表,例如在工作流进行时显示不同的操作,或显示与代码库中检测到的框架相关的工具。这使得代理的功能保持相关性并避免混乱。有关实际用法的示例,请查看 TypeScript SDK 的动态服务器示例或 GitHub MCP Server 中的动态工具集发现功能。
上一个VS Code 更新还增加了对工具注释的支持,这有助于服务器为工具提供有用的元数据,例如人类可读的名称或关于工具是否应在只读模式下运行的提示。这些细节可以改善代理的行为和用户的理解。
最后,流式 HTTP现已作为 MCP 规范中的最新传输方式得到支持。这使得远程服务器集成更加顺畅和可扩展,特别是对于云托管或无服务器工具提供商。
我们的目标是在 VS Code 中支持最新的 MCP 功能,以便用户能够受益于丰富的 AI 体验,并且服务器开发人员能够自信地实现这些功能。
发展生态系统:协作与未来
MCP 现在为GitHub、Playwright、Azure和Perplexity的官方服务器提供支持,并且生态系统只会越来越大。VS Code 与众不同之处不仅在于早期采用,还在于对规范优先工程的承诺。通过密切遵循 MCP 规范并在授权、发现和安全方面贡献改进,我们正在帮助塑造该协议的成熟,确保生态系统中的创新惠及所有人,而不仅仅是 VS Code 用户。
展望未来,我们正在积极努力在 VS Code 中为规范中已有的即将推出的 MCP 功能提供支持,包括授权、提示、资源和采样。这些新增功能将在产品中推出时,带来更丰富、更灵活的代理集成。
如果您正在构建开发者工具或基础设施,MCP 现在是一种实用且开放的方式,可以使它们在 VS Code 及其他地方对 AI 代理可用。无论您是想使用现成的服务器还是创建自己的服务器,体验都应该是强大且直接的。
要开始,请查看ModelContextProtocol.io、VS Code MCP 文档或GitHub 上的参考服务器。
我们很期待看到您将构建的内容,以及随着生态系统的扩展,代理工作流将如何发展。
编码愉快!