Codex CLI 接入 MCP 服务器:config.toml 配置全字段手册
Codex CLI 通过 config.toml 里的 [mcp_servers] 表接 MCP 服务器:stdio 用 command/args/env,远程用 url/bearer_token/http_headers,还有 startup_timeout_sec、enabled_tools、required 等控制面。本文按 codex 源码的配置结构逐项讲清。
Codex CLI 通过 ~/.codex/config.toml 里的 [mcp_servers] 表声明 MCP 服务器——每个子表是一个命名服务器,stdio(本地进程)与远程 HTTP 两种形态共用一套字段集合。本文按 codex-rs 源码里的 RawMcpServerConfig 结构逐项核对字段,不凭印象写。
1. stdio 形态:本地进程
[mcp_servers.wave]
command = "python"
args = ["-m", "wave_mcp.server", "--session", "/abs/path/to/session"]
env = { "API_KEY" = "..." }
cwd = "/path/to/workdir"
stdio 形态五个字段:
command:启动服务器进程的命令args:参数数组env:写进进程环境的字面量键值对env_vars:从宿主环境变量名列表取值(不把秘密写进配置)cwd:服务器进程的工作目录
env 与 env_vars 的区别在于秘密是否落盘:token 优先放 env_vars 指向环境变量。
2. 远程形态:HTTP 服务器
[mcp_servers.linear]
url = "https://mcp.linear.app/mcp"
bearer_token_env_var = "LINEAR_TOKEN"
远程形态的关键字段:
url:服务器端点bearer_token/bearer_token_env_var:直接 token 或从环境变量取http_headers/env_http_headers:自定义请求头(后者从环境变量取值)http_headers_helper:用辅助命令产 header 值的形态
3. 通用控制面
两种形态共享的控制字段:
| 字段 | 作用 |
|---|---|
startup_timeout_sec / startup_timeout_ms | 服务器启动超时 |
tool_timeout_sec | 单次工具调用超时 |
enabled | 整体开关(false 即禁用) |
required | 必需标记——服务器不可用时会话失败而非降级 |
enabled_tools / disabled_tools | 工具白名单 / 黑名单 |
supports_parallel_tool_calls | 是否允许并行调用该服务器的工具 |
omit_tools_from | 控制工具在哪些暴露面出现 |
scopes | OAuth scope 列表 |
required = true 的语义值得注意:它不是"优先尝试",而是"缺了就让会话失败"——适合强依赖的工作流,不适合锦上添花的服务器。
4. OAuth 与 auth
auth 字段的枚举值为 oauth / chatgpt / ema_auth。需要完整 OAuth 流程的服务器用 [mcp_servers.<name>.oauth] 块,字段含 client_id、callback_url、callback_port、authorization_server_issuer。
5. 常见错误与排查
- 服务器起不来:先查
command的绝对路径(npx/uvx 在 GUI 启动的 Codex 里 PATH 可能不同),再调大startup_timeout_sec - 工具看不见:检查是否被
disabled_tools或 requirements 层过滤——Codex 有 plugin/requirements 层的 MCP 过滤机制,管理员侧required也会反向约束 - 秘密进了仓库:
bearer_token与env是明文;项目级.codex/config.toml会进 git,秘密一律走*_env_var形态
6. 下一步
- Codex CLI 沙箱模式详解:sandbox_mode 与 approval_policy 怎么配 — MCP 之外的安全边界
- OpenAI Codex CLI 入门:从零配置到日常编码流 — 基础安装与登录
关键要点
- stdio 服务器字段:command、args、env、env_vars、cwd
- 远程服务器字段:url、bearer_token / bearer_token_env_var、http_headers / env_http_headers
- 超时控制:startup_timeout_sec(或 startup_timeout_ms)、tool_timeout_sec
- 工具面裁剪:enabled_tools / disabled_tools;required 标记缺服务器即失败
- 鉴权 auth 枚举:oauth / chatgpt / ema_auth;oauth 块可配 client_id、callback_url、callback_port
常见问题
官方参考
相关文章
MCP Apps 解读:让 MCP Server 在对话里渲染交互式 UI(SEP-1865)
MCP Apps(SEP-1865,Final)拆解:工具声明 ui:// 资源,宿主在沙箱 iframe 里渲染交互式 HTML——数据可视化、表单、仪表盘直接长在对话里。机制、安全模型、官方 SDK 代码与八家宿主支持面一文讲清。
阅读全文Model Hardware Standard 解读:MHS 如何让 AI 智能体安全操控物理设备
Anthropic 8-27 公告的 Model Hardware Standard(MHS)研究预览版拆解:标准化驱动 + read/write 原语 + MCP/CLI/代码文件三种控制机制,六家机构实测数据与八家硬件厂商跟进——开源在即的物理设备操控标准。
阅读全文MCP 客户端特性现状:Elicitation 当立,Roots 与 Sampling 已弃用(SEP-2577)
2026-07-28 规范版重排了 MCP 客户端特性:Roots 与 Sampling 被弃用(SEP-2577,保留期至少 12 个月),Elicitation 保留并新增 URL 模式。逐条拆解三特性的现状、弃用原因与迁移方向。
阅读全文订阅 GPTMap Weekly
每周一封邮件,精选 OpenAI 重要更新、深度解读与最佳实践。无广告,可随时退订。
提交后将在新标签页打开 Buttondown 完成订阅确认。