模型上下文协议(MCP)是一种开放标准,允许GitHub Copilot在 IDE 外部使用工具和服务。 在Visual Studio中,MCP 允许GitHub Copilot代理通过将 MCP 客户端连接到公开文件访问、存储库管理或 PR 创建等重要功能的 MCP 服务器来使用外部工具。 通过标准化工具的发现和调用方式,MCP 无需自定义集成,只需添加新 MCP 服务器即可轻松扩展 AI 助手。
MCP 支持通过允许将任何 MCP 兼容的服务器连接到代理编码工作流来增强 GitHub Copilot 智能体模式。 Visual Studio 中的 MCP 支持如下所示:
- MCP 客户端(如 Visual Studio)连接到 MCP 服务器,并代表 AI 模型请求作。
- MCP 服务器提供一个或多个工具,通过定义完善的接口公开特定功能。
- 协议定义客户端和服务器之间的通信的消息格式,包括工具发现、调用和响应处理。
例如,启用 GitHub MCP 服务器和协同驾驶功能后,可以创建和管理 PR,并告知你是否有需要评审的 PR。 启用 Azure DevOps MCP 服务器后,可以让 Copilot 创建和管理工作项。
本文介绍如何在 Visual Studio 中设置 MCP 服务器和使用具有代理模式的工具。
先决条件
Visual Studio 2026 或 Visual Studio 2022 版本 17.14(建议使用最新服务更新,以获得最新的 MCP 功能)
查找 MCP 服务器
官方 MCP 服务器存储库是展示 MCP 多功能性的参考服务器、官方服务器和社区贡献服务器的绝佳起点。 可以浏览服务器的各种功能,例如文件系统作、数据库交互和 Web 服务。
MCP 是一个相对新的标准,生态系统正在迅速演变。 随着更多开发人员采用 MCP,你会看到越来越多的服务器和工具可用于与项目集成。
添加 MCP 服务器
可以使用多个选项在 Visual Studio 中添加 MCP 服务器。
直接从 Web 添加 MCP 服务器
从版本 17.14 的最新服务版本开始,可以通过直接从 Web 安装 MCP 服务器来添加 MCP 服务器。 选择 MCP 服务器上的 Install 按钮,自动安装它并将其添加到Visual Studio实例。
MCP 服务器示例
在Visual Studio中试用一些常用的 MCP 服务器,只需单击一下:
-
– 发现并安装 GitHub Copilot 的自定义提示和说明。
-
– 将各种文件格式(PDF、Word、Excel、图像、音频)转换为 Markdown。
-
– 在本地和云中查询和分析 DuckDB 数据库中的数据。
-
– 数据库作和管理。 执行查询、管理集合、聚合管道和文档操作。
-
– 在 Hugging Face Hub 上访问模型、数据集和空间。
从聊天中添加 MCP 服务器
若要从聊天视图添加 MCP 服务器,请执行以下作:
从 GitHub MCP 服务器注册表添加 MCP 服务器
可以通过 Visual Studio 中的扩展直接从 GitHub MCP 服务器注册表安装 MCP 服务器。
将 MCP 服务器添加到 .mcp.json 文件
以下步骤将引导你完成 GitHub MCP 服务器的配置示例:
创建新文件:
<SOLUTIONDIR>\.mcp.json或%USERPROFILE%\.mcp.json。 使用 Visual Studio 编辑此文件,以便自动应用其 JSON 架构。将以下内容粘贴到
.mcp.json文件中:{ "servers": { "github": { "url": "https://api.githubcopilot.com/mcp/" } } }保存文件。
在文件中,从 CodeLens 中选择 “身份验证必需 ”,该 CodeLens 似乎通过 GitHub 帐户向服务器进行身份验证。 在弹出对话框中选择 “身份验证 ”,以使用 GitHub 帐户进行身份验证。
如果未看到 CodeLens,请确保它在 工具>选项>文本编辑器>CodeLens 中启用。
在聊天面板底部,从模式下拉列表中选择“Agent”。
选择要使用的工具,例如列出问题。
尝试示例提示: 列出 GitHub 上分配给我的问题。
Copilot 要求有权使用 MCP 服务器提供给它的工具。 选择 允许,并选择要继续的范围。
管理 MCP 服务器的配置
Visual Studio支持使用 mcp.json 文件来存储 MCP 服务器的配置信息。
mcp.json 文件存储每个服务器的名称、传输类型(例如 stdio 或 SSE)、要启动它的命令、连接到该服务器所需的任何参数和可选环境变量。
如果还没有 mcp.json 文件,请根据存储库、用户或编辑器要求在任何受支持的位置创建一个文件。
若要添加 MCP 服务器,请联机找到服务器的 JSON 配置。 例如,在 MCP 服务器的 GitHub 存储库中找到它。 然后将其粘贴到 mcp.json 文件中。
用于自动发现 MCP 配置的文件位置
Visual Studio 还会检查其他开发环境设置的 MCP 配置。 它按以下顺序从以下目录读取 MCP 服务器配置:
-
%USERPROFILE%\.mcp.json
充当特定用户的全局 MCP 服务器配置。 在此处添加 MCP 服务器时,所有 Visual Studio 解决方案都会加载该服务器。 -
<SOLUTIONDIR>\.vs\mcp.json
特定于 Visual Studio,并且仅为特定用户加载指定的 MCP 服务器,适用于指定的解决方案。 -
<SOLUTIONDIR>\.mcp.json
如果要查找可在存储库的源代码管理中跟踪的 MCP 配置,则效果良好。 -
<SOLUTIONDIR>\.vscode\mcp.json
范围限定为存储库/解决方案,通常不受源代码管理。 -
<SOLUTIONDIR>\.cursor\mcp.json
范围限定为存储库/解决方案,通常不受源代码管理。
其中一些位置需要 .mcp.json,而其他位置需要 mcp.json。
MCP 配置格式
可以同时定义 远程 (URL 和凭据)和 本地 (命令行调用)服务器。
通常通过包管理器调用工具。 例如,使用 npx -y @azure/mcp@latest 或 docker run ... mcp/github。 Visual Studio 遵循您指定的所有命令,因此可以根据需要锁定版本或传递参数标志。
格式必须遵循 MCP 规范。 例如,它必须包含一组服务器对象,每个对象都有 name、command 或 url,以及 transport。
编辑 MCP 配置
如果您有现有的 mcp.json 文件,并将该文件签入版本控制系统,请将文件位置添加到解决方案资源管理器中的 解决方案项。
使用有效语法保存文件时,GitHub Copilot 代理将重启并重新加载配置的服务器。
工具生命周期
一旦 Visual Studio 发现或添加服务器,
- 它通过执行握手和查询工具列表来初始化服务器。
- 它订阅了MCP事件
notifications/tools/list_changed。 - 当该事件触发时,Visual Studio 会重置对工具的任何先前接受或权限(以防止 地毯式清算攻击),重新提取工具列表,并实时更新计数和用户界面(UI)。
- 当 Visual Studio 成功启用服务器时,代理会提供这些工具。 默认情况下禁用这些工具,必须手动启用它们。
- 如果删除服务器,Visual Studio 会立即停止其进程,并从 UI 提取其所有工具。
- 如果编辑服务器定义,Visual Studio 将终止并重启它,然后重新查询。
工具审批的管理
调用工具时,Copilot 请求确认以运行该工具。 原因是工具可能在计算机上本地运行,并执行修改文件或数据的作。
管理授权
Visual Studio 现在支持使用任何 OAuth 提供程序(根据 MCP 授权规范)对远程服务器进行身份验证。 此支持是对 Visual Studio 密钥链集成的补充。
若要管理 MCP 服务器的身份验证,请执行以下作:
在
.mcp.json文件中,从 CodeLens 选择“管理该服务器的 身份验证 ”。在浏览器弹出的对话框中,提供该服务器所需的 OAuth 提供者凭据。
MCP 服务器允许列表策略
Visual Studio 中的 MCP 服务器使用情况遵循组织管理员在 GitHub 上设置的白名单策略。 为组织配置允许列表时,只能连接到批准的 MCP 服务器。
如果尝试连接到不在允许列表中的 MCP 服务器,Visual Studio会显示一条错误消息,指示组织的策略不允许服务器。 请与组织管理员联系,请求访问服务器或验证哪些服务器已获批准。
此功能可帮助组织:
- 控制哪些 MCP 服务器可以处理敏感数据
- 保持遵守安全策略
- 集中管理跨开发团队的 MCP 服务器访问权限
有关将 MCP 服务器允许列表配置为管理员的信息,请参阅 “配置 MCP 服务器允许列表”。
MCP 提示和提示模板
MCP 服务器可以提供可重用的提示模板,帮助你更有效地与语言模型交互。 这些提示是针对特定任务定制的,可以包含可自定义的参数。
使用 MCP 提示
若要从 MCP 服务器引用提示,请按照以下步骤执行:
- 在聊天中选择 “+ 添加引用 ”。
- 选择 “提示>MCP 提示”。
- 选择提示并选择“ 插入提示”。
某些提示包括可在将其插入聊天之前自定义的参数设置。 这些提示称为提示模板。
例: GitHub MCP 服务器提供分析拉取请求、生成提交消息和查看代码更改的提示。
MCP 资源和资源模板
MCP 资源提供语言模型的上下文,例如文件、数据库架构或特定于应用程序的数据。 每个资源都有一个可在聊天中引用的唯一 URI。
使用 MCP 资源
使用井号标签(#后跟资源 URI)在 Copilot 聊天中引用 MCP 资源。
对于具有参数的资源(资源模板):
- 在聊天中选择 “+ 添加引用 ”。
- 选择 MCP 资源。
- 选择资源,填写任何必需的参数,然后选择“ 添加资源”。
例: Azure DevOps MCP 服务器公开项目规划任务的工作项资源、冲刺信息和团队容量数据。
例: Figma MCP 服务器提供对设计组件资源、样式指南和设计规范的访问权限。
MCP 采样
通过使用采样,MCP 服务器可以为你发出 LLM 调用,从而实现更复杂的多步骤作业。 如果 MCP 服务器提供采样,Visual Studio 会自动支持采样。
当 Copilot 需要进行采样调用时,您会看到一个确认对话框。 在操作继续之前查看详细信息并批准,确保你保持对自动化操作的控制。
例: Playwright MCP 服务器使用采样根据应用程序的 DOM 结构和用户流生成测试方案。
常见问题
作为管理员,如何在 Visual Studio 用户的代理模式下控制 MCP 服务器的使用?
GitHub Copilot 仪表板上的 GitHub 策略设置由管理员管理,用于控制 Visual Studio 中的代理模式和 MCP 使用情况。 如果管理员关闭此设置,则订阅下的用户无法使用代理模式或连接到 Visual Studio 中的 MCP 服务器。
此外,管理员可以配置 MCP 服务器允许列表,以准确控制其组织内允许哪些 MCP 服务器。 有关详细信息,请参阅 “配置 MCP 服务器允许列表”。
有关详细信息,请参阅 在企业中管理 GitHub Copilot 的策略和功能。