Skip to content

Copilot Cloud Agent 通过 MCP(Model Context Protocol)接入外部工具,默认内置了 GitHub 数据访问和 Playwright 网页测试两个 MCP Server。管理员可以为仓库添加额外的 MCP Server,让 Cloud Agent 在执行任务时自动调用这些外部工具。

GitHub Copilot Cloud Agent 与 MCP:为 AI 代理接入外部工具和数据源

什么是 MCP

MCP(Model Context Protocol,模型上下文协议)是一个开放标准,让 AI 模型能与不同的数据源和工具连接。对 Copilot Cloud Agent 来说,MCP Server 是扩展工具能力的主要方式——让代理不仅能操作代码,还能读取数据库、访问外部 API、操控浏览器等。

注意:Copilot Cloud Agent 只支持 MCP Server 提供的工具(Tools),不支持 MCP 资源(Resources)和提示词(Prompts)。同时,不支持使用 OAuth 认证的远程 MCP Server。

默认内置 MCP Server

Copilot Cloud Agent 启动时自动配置以下两个 MCP Server:

MCP Server功能访问范围
GitHub访问 GitHub 数据(Issue、PR、仓库内容等)只读权限访问当前仓库(默认 token 只读)
Playwright访问网页:读取、交互、截图只能访问 localhost127.0.0.1,无法访问外部网络

Playwright MCP 服务器特别适合:运行本地 Web 应用并让 Copilot 进行 UI 测试和截图验证。

为仓库配置 MCP Server

管理员可以在仓库中添加 MCP Server 配置,配置生效后 Cloud Agent 在每次任务中都能使用这些工具:

配置格式(JSON)

json
{
  "mcpServers": {
    "my-database": {
      "command": "npx",
      "args": ["-y", "@my-org/db-mcp-server"],
      "env": {
        "DB_CONNECTION_STRING": "${secrets.DB_CONNECTION_STRING}"
      }
    },
    "internal-api": {
      "url": "https://api.internal.example.com/mcp",
      "headers": {
        "Authorization": "Bearer ${secrets.API_TOKEN}"
      }
    }
  }
}

配置保存后,工具会自动对 Cloud Agent 可用,代理会在合适时机自主调用这些工具,不会向用户请求确认

自定义代理的 MCP Server

自定义代理(Custom Agents)可以配置专属的 MCP Server,处理顺序为:

  1. 默认 MCP Server(GitHub、Playwright)
  2. 自定义代理的 MCP Server 配置
  3. 仓库级 MCP Server 配置

这意味着自定义代理可以有比主代理更精细的工具集控制。

安全注意事项

配置前必须仔细审查

  • 第三方 MCP Server 可能影响代理输出质量,甚至引入安全风险
  • Cloud Agent 默认没有写权限,但某些 MCP Server 可能提供写操作工具,需要谨慎评估
  • 只配置任务所需的最小工具集,不要为了"以防万用"添加过多工具
  • 包含 MCP Server 的仓库应限制谁可以修改配置文件

不要在配置中硬编码凭证,使用 GitHub Secrets 引用(如 ${secrets.SECRET_NAME})。

与 IDE/CLI 中 MCP 的区别

场景MCP 服务器类型运行位置
Cloud Agent远程/本地 MCP Server(受限)GitHub 云端环境
Copilot CLI本地 MCP Server你的开发机器
IDE Copilot本地 MCP Server你的开发机器

Cloud Agent 运行在 GitHub 的云端隔离环境中,所以网络访问受限(Playwright 只能访问 localhost),而本地 CLI/IDE 可以访问你本地网络的任何服务。

常见问题

Q: Cloud Agent 能访问我公司内网的 MCP Server 吗?

A: 不能直接访问。Cloud Agent 运行在 GitHub 隔离环境中,没有访问公司内网的通道。如果需要,可以考虑将内部服务通过安全方式暴露到公网,或使用 Cloud Agent 的本地备选方案(CLI 模式)。

Q: Playwright MCP 能访问 localhost,但我的服务跑在容器里,地址是什么?

A: Cloud Agent 任务运行在独立的容器环境中,localhost 指向的是这个容器内部。如果 Cloud Agent 需要启动一个服务并用 Playwright 访问,需要在任务描述中告诉 Copilot 先启动服务(如 npm start),然后再用 Playwright 访问。

Q: 如何撤销某个 MCP Server 的工具权限?

A: 从 MCP Server 配置中删除该 Server,或限制其可用工具列表。配置保存后,下次任务即生效。