进阶教程 · MCP

给 Codex 连接一个 MCP Server

选择 STDIO 或 Streamable HTTP,配置鉴权和工具范围,并验证服务器是否可用。

MCP server 可以给 Codex 增加外部工具和上下文。当前官方文档支持两类连接。STDIO server 由本地命令启动,Streamable HTTP server 通过地址访问。HTTP 连接可以使用 bearer token、OAuth,以及受信任第一方 server 的 ChatGPT session authentication。

本文内容核对到 2026 年 8 月。MCP 设置入口、鉴权方式和配置字段可能变化,连接前应再看 server 自己的文档与 Codex 当前配置参考。

先确认传输方式和权限

本地开发工具、数据库代理和命令行服务常用 STDIO。由团队托管、有稳定地址的服务适合 Streamable HTTP。配置以前先取得 server 的官方启动命令或 URL,列出需要的环境变量和工具权限。不要把 token 直接写进仓库配置或聊天内容。

还要先看 server 暴露的 tools。读取文档、搜索日志和创建工单具有不同影响,连接成功以后不应默认全部开放。外部系统有生产数据时,先使用测试账号或只读身份,并让服务端继续执行自己的授权检查。Codex 侧的工具列表不能替代服务端权限。

Codex 默认把 MCP 配置放在 ~/.codex/config.toml。受信任项目也可以使用 .codex/config.toml。ChatGPT 桌面端中的 Codex、Codex CLI 和 IDE 扩展共享这份配置,因此一处配置完成后可以切换客户端,各个入口仍需按提示重启或刷新。

给 Codex 连接一个 MCP Server的入口、目标与准备条件操作示意图
图 1 · 进入任务前先确认目标、范围和准备条件

用界面或 CLI 添加

在 ChatGPT 桌面端中选择 Codex,进入 Settings,再打开 MCP servers。选择 Add server 后填写名称、连接类型和命令或 URL,保存后选择 Restart。IDE 扩展走相同的 MCP servers 设置入口,保存后需要 Restart extension。

CLI 添加 STDIO server 的通用形式如下。

codex mcp add <server-name> -- <stdio-server-command>
codex mcp list
codex mcp --help

支持 OAuth 的 server 可以再运行 codex mcp login <server-name>。终端界面输入 /mcp 能查看当前活动 server。CLI 的 --env KEY=VALUE 会让值进入命令行,通常还会留在 shell history,只适合非敏感配置。密钥先放进受控环境,再由 env_varsbearer_token_env_var 引用。

需要细调时编辑 config.toml

每个 server 使用 [mcp_servers.<server-name>] 表。STDIO 的必填项是 command,还可以配置 argsenv_varscwd。HTTP 的必填项是 url,令牌应通过 bearer_token_env_var 引用环境变量,静态或环境请求头也有独立字段。

STDIO 进程由 Codex 启动,启动命令必须在当前环境可执行。先在终端单独运行 server 的帮助或版本命令,能更快发现缺少运行时和 PATH 问题。HTTP server 由 Codex host 连接,应检查主机网络、代理、防火墙、TLS 和鉴权。显式使用 shell 探测地址时,那条探测命令仍会受到当前命令沙箱的网络限制。

下面只展示官网给出的 Context7 启动命令,不加入无关的 token 示例。

[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]

npx -y 可能在启动时下载并执行当前包版本。第一次验证以前先核对包名和发布者。长期使用时应把依赖固定到已经审查的确切版本,并在升级前重新查看发布说明。

给 Codex 连接一个 MCP Server的三步关键操作与请求骨架示意图
图 2 · 把关键操作拆成三步,并给每一步留下可观察结果

缩小工具范围并验证

enabled = false 可以停用 server 而不删除配置。enabled_tools 设置工具允许列表,disabled_tools 会在允许列表之后继续排除。还可以配置启动超时、单次工具超时和 tool approval mode。外部系统含写操作时,先只开放读取与搜索,验证返回数据和身份范围后再扩大。

官方默认启动超时是 10 秒,单次工具超时是 60 秒。server 启动较慢时可以明确调整,先查清慢在依赖下载、鉴权还是服务初始化。required = true 会让启用的 server 初始化失败时直接阻止启动,只有任务离开它就无法工作的环境才适合这样设置。

MCP 初始化还可以返回 instructions,Codex 会把它当作 server 级说明,与工具一起使用。维护 server 时应把跨工具流程、限制和速率要求写在前面,官方建议前 512 个字符自成一段。它能指导工具选择,用户批准和服务端授权仍然继续生效。

重启客户端后打开 /mcp,确认 server 已连接且没有鉴权提示。随后执行一个只读小任务,核对实际调用的 tool、返回来源和批准行为。启动失败就检查命令能否在本机运行、环境变量是否存在、URL 是否可达以及 OAuth callback 是否登记完整。完成一次可复现的读取,才算连接验收通过。

OAuth 卡住时运行 codex mcp login <server-name>,再看 server 列表是否仍标记需要认证。需要预先登记回调地址时,以 codex mcp add 显示的完整 callback URL 为准;只有服务端不支持 issuer-bound response 等特定情况时,地址里才可能包含额外的 server callback ID。不要只凭示例猜 redirect URI。

给 Codex 连接一个 MCP Server的结果验收与交付证据清单示意图
图 3 · 用结果、检查与交付证据确认任务真的完成

官方参考