{"meta":{"title":"使用 MCP 增强 GitHub Copilot 智能体 模式","intro":"了解如何使用模型上下文协议 （MCP） 扩展代理 副驾驶聊天功能。","product":"GitHub Copilot","breadcrumbs":[{"href":"/zh/copilot","title":"GitHub Copilot"},{"href":"/zh/copilot/tutorials","title":"教程"},{"href":"/zh/copilot/tutorials/enhance-agent-mode-with-mcp","title":"使用 MCP 增强代理模式"}],"documentType":"article"},"body":"# 使用 MCP 增强 GitHub Copilot 智能体 模式\n\n了解如何使用模型上下文协议 （MCP） 扩展代理 副驾驶聊天功能。\n\n> \\[!NOTE]\n>\n> 默认禁用的适用于企业和组织的“Copilot 中的 MCP 服务器”策略会控制 MCP 的使用\\*\\*\\*\\*。\n\n## 关于Copilot的智能能力和MCP\n\nCopilot的主体能力指的是可以通过执行多步骤的工作流来自主工作，无需持续指导；根据上下文选择合适的工具和方法来做出决策；并根据反馈和结果迭代和调整其方法。 可以使用代理模式访问这些功能。\n\n与模型上下文协议 （MCP） 服务器结合使用时，代理模式会变得更加强大，无需 Copilot 切换上下文即可访问外部资源。 这样就可以 Copilot 完成代理的“循环”，这样就可以通过自主查找相关信息、分析反馈和做出明智的决策来动态调整其方法。 借助 MCP， Copilot 可以以最小的人工干预完成任务，并根据发现的内容持续调整其策略。\n\n### 将 MCP 与代理模式相结合的优势\n\n将 MCP 服务器与代理模式结合使用时，可解锁几项关键优势：\n\n* **扩展上下文**：MCP 服务器提供 Copilot 对外部数据源、API 和工具的访问权限。\n* **减少手动工作量**： Copilot 可以执行创建问题和运行工作流等任务，同时专注于更高价值的任务。\n* **无缝集成**： Copilot 可以处理涉及多个工具和平台的任务，而无需切换上下文或需要自定义集成。\n\n## 将 MCP 与代理模式结合使用的最佳做法\n\n遵循这些最佳做法，充分利用 MCP 服务器与代理模式的组合。\n\n### 提示策略\n\n* **明确目标**：在提示中明确定义要完成的任务，以及所需的输出。\n* **提供上下文**：包括有关项目和要求的相关背景信息，包括可访问的外部资源 Copilot 的链接。\n* **设置边界**：指定任务的任何约束或限制。 例如，如果只想 Copilot 规划新功能，但尚未进行任何更改，请指定。 还可限制已启用的 MCP 工具。\n* **请求确认**：在继续进行重大更改之前，请求 Copilot 确认其理解。\n* **使用提示文件或自定义说明**：可以创建提示文件或自定义说明文件，以指导 Copilot 不同 MCP 服务器的行为。 请参阅 [关于自定义GitHub Copilot 响应](/zh/copilot/concepts/about-customizing-github-copilot-chat-responses)。\n\n### MCP 服务器使用\n\n* **选择相关服务器**：选择并启用符合特定工作流需求的 MCP 服务器。\n* **从简入手**：在添加更复杂的集成之前，先使用一些成熟的 MCP 服务器。\n* **测试连接**：在启动代理模式任务之前，确保所有 MCP 服务器正确配置且可访问。\n\n### 安全注意事项\n\n* **可用时使用 OAuth**：对于像 GitHub MCP 这样的 MCP 服务器，首选 OAuth 身份验证而不是personal access tokens。 请参阅 [在 IDE 中使用 GitHub MCP 服务器](/zh/copilot/customizing-copilot/using-model-context-protocol/using-the-github-mcp-server#remote-mcp-server-configuration-with-oauth)。\n* **限制权限**：仅向 MCP 服务器授予任务所需的最低权限。\n* **审核连接**：定期审核哪些 MCP 服务器可以访问您的开发环境。\n* **监视活动**：跟踪 Copilot 通过 MCP 服务器执行的操作。\n* **防止机密泄露**：推送保护阻止机密包含在 AI 生成的响应中，并阻止你通过使用 GitHub MCP 服务器执行的任何操作公开机密。 此功能目前仅适用于公共仓库。 请参阅 [推送保护](/zh/code-security/secret-scanning/introduction/about-push-protection)。\n\n## 示例场景：实现可访问性合规\n\n> \\[!NOTE] 以下场景仅用于演示可与代理模式和 MCP 服务器结合使用来端到端完成任务的模式和策略；场景、提示和响应只是示例。\n\n假设你的团队收到反馈，需要更新你的客户门户以符合最新的无障碍标准。 你的任务是按照以下指南在整个应用程序中提高可访问性：\n\n* 设计团队定义的规范列表。\n* 辅助功能审核后在项目存储库中创建的问题。\n\n可以使用Copilot代理模式利用多个 MCP 服务器有效地实现可访问性改进。\n\n以下场景演示如何对不同的阶段（研究、规划、实现和验证）使用单独的提示，从而使多个代理“循环”与软件开发生命周期阶段松散对齐。 此方法会创建自然检查点，你可以在其中查看进度、提供反馈并调整要求，然后再 Copilot 继续进入下一阶段。\n\n* [先决条件](#prerequisites)\n* [设置 MCP 服务器](#setting-up-mcp-servers)\n* [步骤 1：研究循环 - 分析可访问性要求](#step-1-research-loop---analyzing-accessibility-requirements)\n* [步骤 2：规划循环 - 辅助功能实施策略](#step-2-planning-loop---accessibility-implementation-strategy)\n* [步骤 3：实施循环 - 改进无障碍功能](#step-3-implementation-loop---making-accessibility-improvements)\n* [步骤 4：使用 Playwright 验证辅助功能的测试循环](#step-4-testing-loop---accessibility-verification-with-playwright)\n* [步骤 5：更新 GitHub 问题](#step-5-updating-github-issues)\n* 进一步阅读\n\n### 先决条件\n\n在将代理模式与 MCP 结合使用之前，请确保：\n\n* 集成 Copilot 和 MCP 支持的 IDE（例如 Visual Studio Code）\n* 已启用代理模式\n* 有权访问要使用的所需 MCP 服务器\n\n### 设置 MCP 服务器\n\n首先，您需要配置您预期需要的Copilot MCP 服务器。 在此示例场景中，我们将使用：\n\n* **GitHub MCP 服务器**：配置 GitHub MCP 服务器用于 Copilot 访问存储库、检查代码库、研究现有问题、创建分支和管理拉取请求。 请参阅 [在 IDE 中使用 GitHub MCP 服务器](/zh/copilot/customizing-copilot/using-model-context-protocol/using-the-github-mcp-server)。\n\n* **Figma MCP 服务器**：配置 Figma MCP 服务器以允许 Copilot 访问包含辅助功能规范的设计文件，例如颜色对比度要求、焦点状态和交互模式。 请参阅 [Figma-Context-MCP](https://github.com/GLips/Figma-Context-MCP) 或试用 [Dev Mode MCP 服务器](https://help.figma.com/hc/en-us/articles/32132100833559-Guide-to-the-Dev-Mode-MCP-Server)。\n\n* **Playwright MCP 服务器：设置 Playwright MCP** 服务器，以便能够编写和运行自动化辅助功能测试，包括屏幕阅读器兼容性和键盘导航测试。 请参阅 [mcp-playwright](https://github.com/executeautomation/mcp-playwright)。\n\n### 步骤 1：研究循环 - 分析可访问性要求\n\n提示Copilot分析项目中的辅助功能要求以及现有的GitHub辅助功能相关问题。\n\n在提示中，包含 Figma 文件的链接。 为了使Copilot成功读取和分析设计规范，请在文件中选择特定的节点或层，以便将节点 ID 包含在 URL 中。\n\n#### 示例提示 1\n\n```copilot copy\nI need to make our customer portal WCAG 2.1 AA compliant. Use the Figma MCP to analyze our design specifications at https://figma.com/design/DESIGN-FILE-FOR-ACCESSIBILITY-SPECS?node-id=NODE_ID for accessibility requirements. Also use the GitHub MCP to find open GitHub issues with the labels accessibility or WCAG in the customer-portal repository. Then sort them into categories and list each issue that falls under the category with the issue title and number.\n```\n\n#### 示例响应 1\n\nCopilot应首先通过请求从 Figma 和 GitHub MCP 服务器运行工具来响应。 允许它后，Copilot将分析 Figma 设计规范，并搜索并组织GitHub问题分为类别。\n\n例如，Copilot 可以通过发现多个与颜色对比度相关的问题，将其标识为一个类别。\n\n> * 颜色对比度问题\n>   * 问题 #134：仪表板文本对比度低于 4.5:1\n>   * 问题 #156：表单错误状态不符合对比度要求\n\n通过这项功能，你可以全面了解辅助功能要求，从而确定 Copilot 的优先级并为其制定计划。\n\n### 步骤 2：规划循环 - 辅助功能实施策略\n\n接下来，要求 Copilot 创建详细的实施计划。\n\n#### 示例提示 2\n\n```copilot copy\nBased on your accessibility analysis of our Figma designs and GitHub issues, create a focused implementation plan for an immediate pull request addressing the highest priority accessibility issues. Don't make any changes yet. Also suggest follow-up issues we should create for the remaining Figma specifications.\n```\n\n#### 示例响应 2\n\nCopilot 将通过创建一个优先实施计划来响应，该计划重点关注对高影响力可访问性问题进行即时的拉取请求，并建议剩余工作的后续问题。\n\n例如， Copilot 可以确定需要执行哪些操作来修复颜色对比度类别中的问题。\n\n> *\n\n**1.解决颜色对比度问题：**\n\n> * 更新 variables.scss 中的文本颜色变量，确保所有普通文本的对比度均为 4.5:1\n> * 修改 DashboardCard.vue 和其他主要组件中的 UI 组件颜色，使对比度达到 3:1\n> * 优先修复 Issue #134（仪表板文本对比度）和 Issue #156（表单错误状态）\n\n可以根据要关注的内容要求 Copilot 调整计划。 结果是一个让你满意的计划，现在可以要求 Copilot 实施。\n\n### 第3步：实施循环 - 改进辅助功能\n\n审查计划后，提示 Copilot 开始执行辅助功能修复。\n\n#### 示例提示 3\n\n```copilot copy\nCreate a new branch and implement the critical accessibility fixes according to your proposed implementation plan. Focus on the top three categories that you identified as highest priority. Create a pull request with proper references to the issues being fixed.\n```\n\n#### 示例响应 3\n\nCopilot 将通过执行实施计划做出响应，进行有针对性的代码更改，以解决已识别的辅助功能问题并创建拉取请求。\n\n例如， Copilot 可以创建一 `fix/critical-accessibility-issues` 个名为的新分支，并进行更改以解决颜色对比度问题。\n\n> * 解决了仪表板文本对比度问题（问题 #134）：\n>   * 将 `src/styles/variables.scss` 中的文本颜色变量从 #767676 更新为了 #595959\n>   * 在 `DashboardCard.vue` 中修改了浅灰色背景上的深色文本，确保对比度为 4.5:1\n>\n> 我基于这些更改打开了拉取请求 #213。\n\n### 步骤 4：使用 Playwright 测试循环并进行无障碍功能验证\n\n可以提示 Copilot 使用 Playwright MCP 创建和运行可访问性测试。\n\n#### 示例提示 4\n\n```copilot copy\nCreate focused accessibility tests for the components we've updated in the pull request. Use the Playwright MCP.\n```\n\n#### 示例响应 4\n\nCopilot 将通过开发无障碍测试来进行响应，并在必要时创建 Playwright 配置文件。\n\n例如， Copilot 可以围绕文本对比度创建测试文件。\n\n> **测试实现：**\n>\n> * 在 `tests/accessibility/` 中创建了目标测试文件：\n>   \\*\n>   `contrast.spec.ts` - 验证文本对比度\n\n创建测试后， Copilot 将要求有权使用 Playwright MCP 中的各种工具运行测试。 请注意，有时Copilot可能会执行一些你并未要求的额外测试；你可以尝试通过更严格地调整提示来防止这种情况发生。\n\n### 步骤 5：更新 GitHub 问题\n\n最后，提示 Copilot 更新 GitHub 拉取请求中已解决的问题，并创建后续问题。\n\n#### 示例提示 5\n\n```copilot copy\nUpdate the GitHub issues we've fixed in the pull request with comments summarizing the changes. Create the follow-up issues you suggested for the remaining accessibility work.\n```\n\n#### 示例响应 5\n\nCopilot 将通过向 GitHub MCP 服务器请求权限来使用所需的工具。 然后，它将用详细注释更新 GitHub 问题，并为剩余工作创建结构化的后续任务。\n\n例如， Copilot 将在研究步骤中最初识别的颜色对比度问题中添加注释。\n\n> **带有注释的问题已更新：**\n>\n> * 问题 #134：“仪表板文本对比度低于 4.5:1”\n>   * 注释：“通过在 variables.scss 和 DashboardCard 组件中更新文本颜色变量来修复拉取请求 #213。 现在，所有仪表板文本的对比度均为 4.5:1，这通过自动测试得到验证。”\n\n现在，你可以审核拉取请求并进行任何调整。 验证更改是否有效后，可以像处理任何其他拉取请求一样进行合并。\n\n## 动手练习\n\n练习在[将 MCP 与GitHub Copilot集成](https://github.com/skills/integrate-mcp-with-copilot/)技能练习中与GitHub Copilot集成 MCP。\n\n在本练习中，你将了解如何：\n\n* 设置 MCP 服务器并将其连接到 GitHubGitHub Copilot。\n* 使用自然语言通过代理模式下的 MCP 工具与外部服务交互。\n* 使用 MCP 搜索和分析类似项目。\n* 分类处理、创建和管理 GitHub 问题，然后使用 GitHub Copilot 实现更改。\n\n## 其他阅读材料\n\n* **MCP 基础知识**：有关设置和配置 MCP 服务器的详细信息，请参阅 [使用 MCP（模型上下文协议）服务器扩展 GitHub Copilot 对话助手](/zh/copilot/customizing-copilot/using-model-context-protocol/extending-copilot-chat-with-mcp)。\n* **使用 MCP 服务器**：有关将 MCP 与 GitHub Copilot 集成的更多想法，请参阅 [使用 GitHub Copilot 和 MCP 转换工作流的 5 种方法](https://github.blog/ai-and-ml/github-copilot/5-ways-to-transform-your-workflow-using-github-copilot-and-mcp/) 在 the GitHub Blog。"}