托管 GitHub MCP 用 Copilot HTTP 地址,add 必须带 bearer 变量名

官方远程是 api.githubcopilot.com/mcp/。只 add URL 会留下能 list、请求 401 的配置。Codex 不读 .env;变量必须在启动进程里。不要对它跑 mcp login。

GitHub 官方托管 MCP 是 Streamable HTTP,地址是 https://api.githubcopilot.com/mcp/。这不是 Cloud 评论里的 @codex review,也不是旧的 stdio 包 @modelcontextprotocol/server-github

export GITHUB_PAT_TOKEN
codex mcp add github --url https://api.githubcopilot.com/mcp/ --bearer-token-env-var GITHUB_PAT_TOKEN

--bearer-token-env-var 必须带上。只写 --url 会留下一份看起来正常、发出去却 401 的配置。键里填的是变量名 GITHUB_PAT_TOKEN,不是 PAT 本身。GitHub 安装页注释写过 Replace with your real PAT,那是过时措辞,不要把 token 写进 TOML。

Codex 不会自动读项目 .env。GitHub 文档让你把 PAT 放进 .env,那只在你的 shell 已经 source 之后才进进程。从已经 export GITHUB_PAT_TOKEN 的终端启动 codex;Dock / 开始菜单打开的桌面没有 zshrc。改完彻底退出再开新进程。

不要:

  • 对这台服务器跑 codex mcp login github(Bearer,没有 OAuth 流程)
  • [mcp_servers.github.env](HTTP 会报 env is not supported for streamable_http,整份 config 起不来)
  • 把 PAT 写进 http_headersAuthorization
  • 抄 Claude 的 mcpServers JSON

codex mcp list 显示 Auth: Bearer 不等于请求带了头。工具 0 或 401:先查启动 Codex 的那个进程里有没有 GITHUB_PAT_TOKEN,再查 PAT 是否带了 repo 一类范围。本地 Docker 镜像是另一条 stdio 传输,不要把 GITHUB_PERSONAL_ACCESS_TOKEN 字面量抄进用户 config。

来源