VS Code 正式支持 MCP 协议,开发者可在 Agent 模式中集成自定义工具,大幅扩展 AI 编程助手的能力。
2025年5月14日 / Harald Kirschner 著
当我们首次在VS Code中引入Agent模式时,它开启了通过chat与你的代码和工作区交互的新方式。你可以要求Agent检查文件、运行构建,甚至调试测试。但你的能力受限于模型的训练数据和工作区的内容。因此,下一步很清楚:我们需要一种方式让Agent突破这些限制,以安全、用户可控的方式与真实的外部服务交互。
我们的第一次尝试遵循了熟悉的VS Code模式:通过Tools和Chat participants APIs实现扩展。这很有道理,因为生态中已有数千个扩展,但整个行业正在快速转向一个新标准:模型上下文协议(Model Context Protocol,MCP)。MCP最好理解为一个协议,用于以一致的方式将AI Agent连接到各种外部工具和服务,就像HTTP为web标准化通信一样。目标是让任何客户端(不仅仅是VS Code)可以接入强大的工具服务器(如数据库、代码搜索和部署系统),并让它们"开箱即用"。
这一转向MCP的转变几乎在一夜之间解锁了更广泛的生态。现在,VS Code用户可以利用Playwright MCP Server(用于前端验证)、GitHub MCP Server(用于仓库洞察和pull request)或Context7(用于更智能的API使用)等服务器。服务器的列表在不断增长,MCP已迅速成为跨AI Agent引入额外功能的基础。
VS Code的设计哲学始终专注于使强大的功能易于使用、默认安全,并给予用户清晰的控制权。这些相同的原则指导了我们的MCP集成。
以前,开始使用MCP服务器意味着将JSON块复制到配置文件中并管理命令行标志。我们想简化这个过程:通过MCP: Add Server命令,你可以从包管理器(NPM、PyPI、Docker)设置服务器,让VS Code处理其余部分。网站甚至可以提供"在VS Code中安装"按钮来进一步简化入门流程,VS Code还能在可能的情况下自动发现来自Claude Desktop等其他客户端的配置。
安全是另一个主要关注点。管理MCP服务器的密钥不应该意味着将密码检查到源代码控制中。我们添加了对输入变量的支持,这些变量会提示你一次,然后安全地加密和存储密钥,以及引用你已经信任用于本地开发的现有.env文件。这使团队更容易安全地共享和审查配置。
用户控制是体验的中心。通过tool picker,你可以决定Agent在给定会话中可以访问哪些工具,并查看清晰的描述和控制项。对于开发或调试服务器的人,VS Code会显示日志,并让你可以轻松启动、停止和重启服务器。这些细节使MCP不仅功能强大,而且对最终用户和服务器开发者都容易上手。
这段旅程并未止步于实现对工具的基本兼容性。MCP的许多价值来自其规范中的更深层功能。这些功能在完全支持时,能使工具更具上下文感知能力、自适应性和健壮性。
例如,roots支持让MCP服务器理解你工作区的结构。服务器预先收到工作区文件夹列表,而不必让用户提供文件夹路径或依赖配置,这使它们能够根据手边的项目定制工具。这支持诸如在monorepo中查找所有TODO,或根据检测到的基础设施文件激活部署工具等用例。
动态工具发现允许服务器动态更改可用工具的集合。服务器不是提供静态列表,而是可以基于上下文或项目状态调整工具——比如随着工作流的进行显示不同的操作,或呈现与代码库中检测到的框架相关的工具。这使Agent的功能保持相关性并避免混乱。要查看实际使用情况,可以检查TypeScript SDK中的动态服务器示例或GitHub MCP Server中的动态工具集发现功能。
最后一次VS Code更新还添加了对工具注解的支持,这帮助服务器为工具提供有用的元数据,如人类可读的名称或有关工具是否应在只读模式下运行的提示。这些细节既改进了Agent的行为,也改进了用户的理解。
最后,可流式HTTP现已支持为MCP规范中的最新传输方式。这使远程服务器集成更流畅、更可扩展,特别是对于云托管或无服务器工具提供者而言。
我们的目标是在VS Code中支持最新的MCP功能,使用户能受益于丰富的AI体验,服务器开发者能自信地实现这些功能。
MCP现在由GitHub、Playwright、Azure和Perplexity的官方服务器驱动,生态正在不断扩大。VS Code的与众不同之处不仅在于早期采用,还在于对规范优先工程的承诺。通过密切遵循MCP规范并在授权、发现和安全方面贡献改进,我们正帮助塑造该协议的成熟,确保生态中的创新惠及所有人,而不仅仅是VS Code用户。
展望未来,我们正积极致力于在VS Code中采纳规范中已有的即将到来的MCP功能,包括Authorization、Prompts、Resources和Sampling。随着这些功能在产品中推出,它们将带来更丰富、更灵活的Agent集成。
如果你正在构建开发者工具或基础设施,MCP现在是一种实用的、开放的方式使其可被VS Code及更广泛范围内的AI Agent访问。无论你想使用现成的服务器还是创建自己的服务器,体验都应该既健壮又直观。
要开始,请查看ModelContextProtocol.io、VS Code MCP Docs或GitHub上的参考服务器。
我们期待看到你将构建什么,以及随着生态扩展Agent工作流将如何演变。