Skip to content
FunCoding

Search

Search docs, Skills and MCP

扩展云端 GitHub MCP 授权

使用细粒度 PAT 或 GitHub App 扩大读取范围,同时限制工具和访问仓库。

This page has not been translated into English yet. The original Chinese version is shown below.

内置 GitHub MCP 默认使用只读、仅限当前仓库的特殊 token。需要查询其他仓库的 Issue 或 PR 时,可以配置访问范围更广的 PAT 或 GitHub App。

扩大上下文访问不改变 cloud agent 一次任务只修改指定仓库的限制,也不意味着应启用所有写工具。

PAT 配置

在仓库 MCP 设置中,可按官方示例覆盖 github-mcp-server:

{
  "mcpServers": {
    "github-mcp-server": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/readonly",
      "tools": ["*"],
      "headers": {
        "X-MCP-Toolsets": "repos,issues,users,pull_requests,code_security,secret_protection,actions,web_search"
      }
    }
  }
}

然后创建 Agents secret COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN,值为 PAT。官方建议使用 fine-grained PAT,只授予所需仓库的读取权限。

这里的特殊 secret 名和内置服务器覆盖流程来自云端配置专题,不应改写成 IDE 的交互 OAuth 示例。/readonly 限制只读工具,X-MCP-Toolsets 选择工具集,tools 再选择具体工具;token 自身的仓库和权限范围仍会限制实际请求。

官方说明移除 /readonly 可开放更广工具范围,但工具可见并不代表 token 已获得写权限。若仅需额外仓库的上下文,保留只读即可。

GitHub App 配置

官方提供本地 Docker 服务器方式,由 GitHub App 身份访问其安装所授权的仓库:

{
  "mcpServers": {
    "github-wider-access": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "GITHUB_APP_ID",
        "-e", "GITHUB_APP_INSTALLATION_ID",
        "-e", "GITHUB_APP_PRIVATE_KEY",
        "-e", "GITHUB_READ_ONLY",
        "-e", "GITHUB_TOOLSETS",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_APP_ID": "$COPILOT_MCP_GITHUB_APP_ID",
        "GITHUB_APP_INSTALLATION_ID": "$COPILOT_MCP_GITHUB_APP_INSTALLATION_ID",
        "GITHUB_APP_PRIVATE_KEY": "$COPILOT_MCP_GITHUB_APP_PRIVATE_KEY",
        "GITHUB_READ_ONLY": "true",
        "GITHUB_TOOLSETS": "repos,pull_requests"
      },
      "tools": ["*"]
    }
  }
}

在 Agents variables 中创建 COPILOT_MCP_GITHUB_APP_ID 和 COPILOT_MCP_GITHUB_APP_INSTALLATION_ID,在 Agents secrets 中保存 COPILOT_MCP_GITHUB_APP_PRIVATE_KEY。不要把私钥字面值写入仓库 MCP JSON。

此示例注册独立名称 github-wider-access,不能仅凭它与 PAT 方案并列,就认为两者都会替换同一内置服务器。

检查连接与范围

从会话的 Start MCP Servers 日志检查工具发现。遇到授权错误时,分别检查 Agents 值、PAT 或 App 的仓库授权、只读设置和工具选择。

官方配置页也要求:若出现 api.github.com 防火墙警告,将它加入适当 allowlist。这不改变防火墙不直接约束 MCP 进程的总体说明;应以警告里实际发起请求的命令判断受阻环节。