Model Context Protocol
Model Context Protocol (MCP) 将模型连接到工具和上下文。使用它可以让 ChatGPT 或 Codex 访问第三方文档,或与浏览器、Figma 等开发者工具交互。
ChatGPT web 可以使用插件提供的远程 MCP 工具。本地 Codex 客户端也可以直接连接到 MCP 服务器,并共享其配置。
ChatGPT 桌面应用、Codex CLI 和 Codex IDE extension 支持 MCP 服务器,并为同一 Codex 主机共享 MCP 配置。
以下支持的服务器功能适用于在 Codex 主机上配置的 MCP 服务器。托管的插件工具可能具有不同的功能。
支持的 MCP 功能
Section titled “支持的 MCP 功能”- STDIO 服务器:作为本地进程运行的服务器(由命令启动)。
- 环境变量
- Streamable HTTP 服务器:通过地址访问的服务器。
- Bearer token 身份验证
- OAuth 身份验证
- ChatGPT 会话身份验证,适用于受信任的第一方服务器
- 服务器说明:Codex 会读取 MCP 在初始化期间返回的
instructions字段,并将其与服务器工具的说明一起作为服务器级指导。
如果你为 Codex 构建或维护 MCP 服务器,请使用 instructions 说明适用于整个服务器的跨工具工作流、约束和速率限制。前 512 个字符应自包含,以便 Codex 在决定如何使用服务器时能够获取最重要的指导。
将 Codex 连接到 MCP 服务器
Section titled “将 Codex 连接到 MCP 服务器”Codex 将 MCP 配置与其他 Codex 配置设置一起存储在 config.toml 中。默认路径为 ~/.codex/config.toml,但你也可以使用 .codex/config.toml 将 MCP 服务器限定到某个项目(仅限受信任的项目)。
ChatGPT 桌面应用、Codex CLI 和 Codex IDE extension 共享此配置。配置 MCP 服务器后,你可以在这些客户端之间切换,无需重新设置。
在 ChatGPT 桌面应用中配置
Section titled “在 ChatGPT 桌面应用中配置”- 打开 Settings,然后选择 MCP servers。
- 选择 Add server。
- 输入名称,选择 STDIO 或 Streamable HTTP,然后提供服务器的命令或 URL。
- 保存服务器,然后选择 Restart。
服务器列表会显示哪些服务器已启用,以及哪些服务器需要 OAuth。OAuth 服务器要求登录时,选择 Authenticate。在编辑器中输入 /mcp 可查看已连接的服务器。
使用 config.toml 配置
Section titled “使用 config.toml 配置”如需更精细的控制,请编辑 ~/.codex/config.toml 或项目范围的 .codex/config.toml。请参阅配置参考,其中提供了所有受支持 MCP 选项的可搜索列表。
在配置文件中,使用 [mcp_servers.<server-name>] 表配置每个 MCP 服务器。
STDIO 服务器
Section titled “STDIO 服务器”command(必需):启动服务器的命令。args(可选):传递给服务器的参数。env(可选):为服务器设置的环境变量。env_vars(可选):允许并转发的环境变量。cwd(可选):启动服务器时使用的工作目录。experimental_environment(可选):设置为remote,以便在可用时通过远程执行器环境启动 stdio 服务器。
env_vars 可以包含普通变量名,或包含来源信息的对象:
env_vars = ["LOCAL_TOKEN", { name = "REMOTE_TOKEN", source = "remote" }]字符串条目和 source = "local" 会从 Codex 的本地环境中读取。source = "remote" 会从远程执行器环境中读取,并且需要远程 MCP stdio。
Streamable HTTP 服务器
Section titled “Streamable HTTP 服务器”url(必需):服务器地址。auth(可选):在已配置的 bearer token 和授权标头之后尝试使用的身份验证方式。使用oauth(默认值)可使用已存储的 MCP OAuth 凭据。使用chatgpt可让受信任的第一方 ChatGPT 来源使用当前 ChatGPT 会话,并在需要时回退到已存储的 OAuth。bearer_token_env_var(可选):用于 bearer token 的环境变量名称,令牌将发送到Authorization标头中。http_headers(可选):将标头名称映射到静态值。env_http_headers(可选):将标头名称映射到环境变量名称(从环境中读取值)。
如果没有凭据来源能够解析,Codex 可以在不进行身份验证的情况下连接到服务器。单独运行 codex mcp login <server-name>,即可开始 MCP OAuth 登录。
其他配置选项
Section titled “其他配置选项”startup_timeout_sec(可选):服务器启动超时时间(秒)。默认值:10。tool_timeout_sec(可选):服务器运行工具的超时时间(秒)。默认值:60。enabled(可选):设置为false可禁用服务器,但不会删除服务器。required(可选):设置为true后,如果此已启用服务器无法初始化,启动将失败。enabled_tools(可选):工具允许列表。disabled_tools(可选):工具拒绝列表(在enabled_tools之后应用)。default_tools_approval_mode(可选):此服务器工具的默认批准行为。支持的值包括auto、prompt、writes和approve。writes模式会要求批准未标记为只读的工具。tools.<tool>.approval_mode(可选):覆盖单个工具的批准行为。
如果你的 OAuth 提供商要求固定的回调端口,请在 config.toml 中设置顶层的 mcp_oauth_callback_port。如果未设置,Codex 会绑定到临时端口。
如果你的 MCP OAuth 流程必须使用特定的回调 URL(例如远程 Devbox 入口 URL 或自定义回调路径),请设置 mcp_oauth_callback_url。Codex 会将该值用作基础回调 URL,然后追加特定于服务器的回调 ID,以生成登录期间发送的 OAuth redirect_uri。请向 OAuth 提供商注册完整的派生 redirect_uri,包括追加的回调 ID 以及任何已配置的路径、查询参数或端口,而不是仅注册不带该后缀的基础主机或路径。本地回调 URL(例如 localhost)会绑定到本地接口;非本地回调 URL 会绑定到 0.0.0.0,以便回调能够访问主机。
如果 MCP 服务器公布了 scopes_supported,Codex 会在 OAuth 登录期间优先使用服务器公布的作用域。否则,Codex 会回退到 config.toml 中配置的作用域。
config.toml 示例
Section titled “config.toml 示例”[mcp_servers.context7]command = "npx"args = ["-y", "@upstash/context7-mcp"]env_vars = ["LOCAL_TOKEN"]
[mcp_servers.context7.env]MY_ENV_VAR = "MY_ENV_VALUE"# Optional MCP OAuth callback overrides (used by `codex mcp login`)mcp_oauth_callback_port = 5555mcp_oauth_callback_url = "https://devbox.example.internal/callback"[mcp_servers.figma]url = "https://mcp.figma.com/mcp"bearer_token_env_var = "FIGMA_OAUTH_TOKEN"http_headers = { "X-Figma-Region" = "us-east-1" }[mcp_servers.chrome_devtools]url = "http://localhost:3000/mcp"enabled_tools = ["open", "screenshot"]disabled_tools = ["screenshot"] # applied after enabled_toolsdefault_tools_approval_mode = "prompt"startup_timeout_sec = 20tool_timeout_sec = 45enabled = true
[mcp_servers.chrome_devtools.tools.open]approval_mode = "approve"插件提供的 MCP 服务器
Section titled “插件提供的 MCP 服务器”已安装的插件可以在其插件清单中捆绑 MCP 服务器。这些服务器会从插件启动,因此用户配置不会设置其传输命令。用户配置仍可以通过 plugins.<plugin>.mcp_servers.<server> 控制其启用状态和工具策略。
[plugins."sample@test".mcp_servers.sample]enabled = truedefault_tools_approval_mode = "prompt"enabled_tools = ["read", "search"]
[plugins."sample@test".mcp_servers.sample.tools.search]approval_mode = "approve"有用的 MCP 服务器示例
Section titled “有用的 MCP 服务器示例”MCP 服务器列表正在不断增长。下面是一些常见的服务器:
- OpenAI Docs MCP:搜索和阅读 OpenAI 开发者文档。
- Context7:连接到最新的开发者文档。
- Figma Local 和 Remote:访问你的 Figma 设计。
- Playwright:使用 Playwright 控制和检查浏览器。
- Chrome Developer Tools:控制和检查 Chrome。
- Sentry:访问 Sentry 日志。
- GitHub:执行
git不支持的 GitHub 管理操作(例如拉取请求和 issue)。