Codex CLI教程(五) | MCP 之 GitHub
Codex CLI教程(五) | MCP 之 GitHub
- 前言
- 第一章:MCP 接入前置要求
- 第二章:MCP 接入方式
- 2.1 方式一:本地接入
- 2.2 方式二:远程接入(推荐)
- 2.3 GitHub PAT 怎么准备
- 1. Repository access
- 2. Permissions
- 3. 保存 Token
- 2.4 配置文件位置
- 2.5 配完以后怎么验证
- 第三章:该怎么选
- 第四章:补充说明
- 4.1 OAuth 和 PAT 都可以用
- 4.2 Fine-grained PAT 不要和 classic scope 混着写
- 4.3 不要漏掉仓库范围
前言
给 Codex 接入 GitHub MCP,目的很明确:让 Codex 直接访问 GitHub 能力,比如查看仓库、读取 issue、处理 pull request、检查 workflow 等。
GitHub MCP 本质上是一个面向 GitHub 能力的 MCP Server,作用是把 GitHub 的上下文和操作能力接入到 Codex 里。
第一章:MCP 接入前置要求
在正式配置之前,先准备好以下内容:
- 一个支持 MCP 的客户端,比如Codex
- 一个可用的 GitHub 账号
- 一种 GitHub 认证方式
GitHub MCP 通常需要认证,常见方式有两种:
- GitHub OAuth
- GitHub Personal Access Token(PAT)
不过,放到 Codex 的实际配置场景里,远程接入通常直接使用 PAT;本地接入最常见的方式也是PAT。
如果你使用的是Fine-grained personal access token,还需要额外注意两件事:
Repository access要选对仓库范围Permissions要给够所需权限
准备好认证方式之后,就可以开始正式接入了。
第二章:MCP 接入方式
2.1 方式一:本地接入
本地接入的意思是:在本机启动一个 GitHub MCP 进程。
Codex 不会直接连接 GitHub,而是先连接这个本地 MCP 进程,再由这个进程去访问 GitHub。它的链路可以理解为:
Codex -> 本地 GitHub MCP -> GitHub
本地方式最常见的认证方式是:GitHub PAT。
典型配置结构如下:
[mcp_servers.github] command = "你本机上 github-mcp-server 可执行文件的实际位置" args = ["stdio"] env = { GITHUB_PERSONAL_ACCESS_TOKEN = "你的 GitHub PAT" } startup_timeout_sec = 20这段配置的含义如下:
command:本地 GitHub MCP Server 的启动命令args:以stdio模式运行env:通过环境变量传入 GitHub PATstartup_timeout_sec:启动超时时间
如果你希望自己掌控本地运行方式,并且愿意使用 PAT 认证,可以考虑本地接入。
2.2 方式二:远程接入(推荐)
远程接入的意思是:不在本机启动 GitHub MCP 进程。
Codex 会直接连接 GitHub 官方托管的远程 MCP 服务。它的链路可以理解为:
Codex -> GitHub 远程 MCP
官方远程地址如下:
[mcp_servers.github] url = "https://api.githubcopilot.com/mcp/" startup_timeout_sec = 20GitHub MCP 在通用层面支持OAuth和PAT两种认证方式。
但放到 Codex 的手动配置场景里,远程接入通常直接使用 PAT,不按 OAuth 作为默认方案讲。
在 Codex 里,远程接入常见写法如下:
[mcp_servers.github] url = "https://api.githubcopilot.com/mcp/" bearer_token_env_var = "GITHUB_PAT_TOKEN" startup_timeout_sec = 20这段配置表示:
url:GitHub 官方托管的远程 MCP 地址bearer_token_env_var:从环境变量中读取 GitHub Tokenstartup_timeout_sec:连接超时时间
如果你只是想尽快接入并开始使用,远程接入通常更适合作为默认方案。
2.3 GitHub PAT 怎么准备
如果你使用的是 GitHub PAT,建议优先选择:
Fine-grained personal access token
创建时建议这样设置。
1. Repository access
通常建议选择:
Only select repositories
然后勾选你要让 GitHub MCP 访问的仓库。
2. Permissions
基础场景下,通常先给下面这些权限:
Contents→Read and writeIssues→Read and writePull requests→Read and writeMetadata→Read-onlyCommit statuses→Read-only
如果还要处理 GitHub Actions,再额外补:
Workflows→Read and write
3. 保存 Token
Token 生成后一般只显示一次,创建完成后要立即复制保存。
2.4 配置文件位置
Codex 的 MCP 配置通常写在:
~/.codex/config.tomlWindows 下常见路径类似:
C:\Users\你的用户名\.codex\config.toml也就是说,上面的配置都应该写进这个config.toml文件里。
2.5 配完以后怎么验证
配置完成后,建议按下面顺序检查:
- 保存
config.toml - 确认环境变量已经生效
- 重新打开 Codex
- 查看 GitHub MCP 是否已加载
- 实际测试一次调用
例如可以测试:
List my GitHub repositoriesShow me open pull requests in owner/repoShow me recent issues in owner/repo
如果这些请求能正常返回结果,说明 GitHub MCP 已经接通。
第三章:该怎么选
如果只是从使用成本来看,更建议这样理解:
- 想少折腾环境、尽快接入:优先选远程接入
- 想自己控制本地启动链路:可以选本地接入
也就是说:
- 默认推荐远程接入
- 本地接入更适合明确需要本地运行的人
第四章:补充说明
4.1 OAuth 和 PAT 都可以用
GitHub MCP 在通用层面支持 OAuth 和 PAT。
但在 Codex 的手动配置场景里,通常直接按 PAT 配置即可。
4.2 Fine-grained PAT 不要和 classic scope 混着写
如果你创建的是Fine-grained personal access token,就按 GitHub 页面里的细粒度权限项来配,比如:
ContentsIssuesPull requests
不要再写 classic token 的repo、workflow那套 scope 名称。
4.3 不要漏掉仓库范围
对于Fine-grained PAT来说,除了权限项,还要选对仓库范围。
如果目标仓库没包含进去,后面一样不能正常使用。
