Appearance
在仓库 Settings → Copilot → Cloud agent 中添加 JSON 格式的 MCP 配置,就能让 Copilot 在处理任务时自动调用 Sentry、Notion、Azure DevOps 等外部服务的工具。支持本地命令、HTTP 和 SSE 三种连接方式,Secrets 以 COPILOT_MCP_ 前缀存储。
GitHub Copilot Cloud Agent 接入 MCP 服务器:连接外部工具和数据源
配置入口
- 进入仓库主页 → Settings
- 左侧边栏 Code & automation → Copilot → Cloud agent
- 在 MCP configuration 区域粘贴 JSON 配置
- 点击 Save
JSON 配置基本格式
json
{
"mcpServers": {
"服务器名": {
"type": "local|stdio|http|sse",
"command": "启动命令",
"args": ["参数"],
"env": {
"变量名": "值或 $SECRET_NAME"
},
"tools": ["*"]
}
}
}"tools": ["*"] 启用所有工具;也可以指定工具列表:["read_file", "search_code"]。
配置示例
Sentry(本地 Node.js 命令)
json
{
"mcpServers": {
"sentry": {
"type": "local",
"command": "npx",
"args": ["@sentry/mcp-server@latest", "--host=$SENTRY_HOST"],
"env": {
"SENTRY_HOST": "https://contoso.sentry.io",
"SENTRY_ACCESS_TOKEN": "$COPILOT_MCP_SENTRY_ACCESS_TOKEN"
},
"tools": ["*"]
}
}
}Notion(本地 Docker)
json
{
"mcpServers": {
"notionApi": {
"type": "local",
"command": "docker",
"args": [
"run", "--rm", "-i", "-e",
"OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer $NOTION_API_KEY\", \"Notion-Version\": \"2022-06-28\"}",
"mcp/notion"
],
"env": {
"NOTION_API_KEY": "$COPILOT_MCP_NOTION_API_KEY"
},
"tools": ["*"]
}
}
}Cloudflare(SSE 远程)
json
{
"mcpServers": {
"cloudflare": {
"type": "sse",
"url": "https://docs.mcp.cloudflare.com/sse",
"tools": ["*"]
}
}
}使用 GitHub MCP Server(扩展权限)
json
{
"mcpServers": {
"github-mcp-server": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/readonly",
"tools": ["*"],
"headers": {
"X-MCP-Toolsets": "repos,issues,users,pull_requests,actions,web_search"
}
}
}
}如需更广泛的 GitHub 访问权限,在 Copilot 环境中添加 COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN secret。
配置 Secrets
- 仓库 Settings → Environments
- 创建或选择
copilot环境 - 在 Environment secrets 中添加,命名格式:
COPILOT_MCP_服务名_KEY
示例:
COPILOT_MCP_SENTRY_ACCESS_TOKENCOPILOT_MCP_NOTION_API_KEYCOPILOT_MCP_AZURE_DEVOPS_TOKEN
在 JSON 配置中用 $COPILOT_MCP_SENTRY_ACCESS_TOKEN 引用。
变量引用语法
| 语法 | 说明 |
|---|---|
$VAR_NAME | 直接引用 |
${VAR_NAME} | 带花括号引用 |
${VAR_NAME:-default} | 有默认值的引用 |
从 VS Code mcp.json 迁移
如果你已有 .vscode/mcp.json,迁移步骤:
- 为每个服务器添加
"tools"字段 - 将
"inputs"或"envFile"改为"env"字段 - 把 env 中的值替换为
$COPILOT_MCP_格式的 Secrets 引用
验证配置
- 创建一个 Issue 并分配给 Copilot
- 等待 Copilot 反应并创建 PR
- 查看 Session 日志,确认 MCP 服务器启动成功,工具列表正确显示
注意事项
- Copilot Cloud Agent 只支持 MCP 的工具(Tools),不支持资源(Resources)或提示词(Prompts)
- 不支持需要 OAuth 认证的远程 MCP 服务器
- MCP 服务器进程不受防火墙控制,可以自由访问网络
常见问题
Q: 能不能为不同的自定义代理配置不同的 MCP 服务器?
A: 可以。在代理的 .agent.md 文件中用 mcp-servers 字段指定该代理专属的 MCP 配置,不影响默认的仓库级 MCP 配置。
Q: MCP 服务器需要提前安装吗?
A: 如果用 npx 或 docker 运行的 MCP 服务器,GitHub Actions runner 一般已预装这些工具。如果有特殊依赖,在 copilot-setup-steps.yml 中预安装。