Skip to content

在仓库 Settings → Copilot → Cloud agent 中添加 JSON 格式的 MCP 配置,就能让 Copilot 在处理任务时自动调用 Sentry、Notion、Azure DevOps 等外部服务的工具。支持本地命令、HTTP 和 SSE 三种连接方式,Secrets 以 COPILOT_MCP_ 前缀存储。

GitHub Copilot Cloud Agent 接入 MCP 服务器:连接外部工具和数据源

配置入口

  1. 进入仓库主页 → Settings
  2. 左侧边栏 Code & automationCopilotCloud agent
  3. MCP configuration 区域粘贴 JSON 配置
  4. 点击 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

  1. 仓库 Settings → Environments
  2. 创建或选择 copilot 环境
  3. Environment secrets 中添加,命名格式:COPILOT_MCP_服务名_KEY

示例

  • COPILOT_MCP_SENTRY_ACCESS_TOKEN
  • COPILOT_MCP_NOTION_API_KEY
  • COPILOT_MCP_AZURE_DEVOPS_TOKEN

在 JSON 配置中用 $COPILOT_MCP_SENTRY_ACCESS_TOKEN 引用。

变量引用语法

语法说明
$VAR_NAME直接引用
${VAR_NAME}带花括号引用
${VAR_NAME:-default}有默认值的引用

从 VS Code mcp.json 迁移

如果你已有 .vscode/mcp.json,迁移步骤:

  1. 为每个服务器添加 "tools" 字段
  2. "inputs""envFile" 改为 "env" 字段
  3. 把 env 中的值替换为 $COPILOT_MCP_ 格式的 Secrets 引用

验证配置

  1. 创建一个 Issue 并分配给 Copilot
  2. 等待 Copilot 反应并创建 PR
  3. 查看 Session 日志,确认 MCP 服务器启动成功,工具列表正确显示

注意事项

  • Copilot Cloud Agent 只支持 MCP 的工具(Tools),不支持资源(Resources)或提示词(Prompts)
  • 不支持需要 OAuth 认证的远程 MCP 服务器
  • MCP 服务器进程不受防火墙控制,可以自由访问网络

常见问题

Q: 能不能为不同的自定义代理配置不同的 MCP 服务器?

A: 可以。在代理的 .agent.md 文件中用 mcp-servers 字段指定该代理专属的 MCP 配置,不影响默认的仓库级 MCP 配置。

Q: MCP 服务器需要提前安装吗?

A: 如果用 npxdocker 运行的 MCP 服务器,GitHub Actions runner 一般已预装这些工具。如果有特殊依赖,在 copilot-setup-steps.yml 中预安装。