想要让 Codex 不再局限于写代码与修复漏洞,而是真正像一位开发伙伴那样,自动读取本地日志、查询数据库甚至抓取网页数据吗?这一切的关键,就在于 MCP(模型上下文协议,Model Context Protocol)。它并非某种内部开关或神秘提示词,而是一套标准化的桥梁,使 Codex 能够与外部工具或服务安全、高效地“对话”。接下来,我们将详细拆解如何搭建这座桥。

确认环境与基础依赖
万事开头先看环境。第一步,打开终端运行 node -v。如今大多数 MCP Server 均基于 Node.js 构建,因此建议版本至少为 16 或更高,比如看到 v18.20.2 这样的输出即代表环境达标。若版本过低,请先升级 Node.js 再继续,以免后续遇到兼容性问题。
接下来,确认 Git 已安装并可用,执行 git --version 能正常响应即可。别小看这一步,许多 MCP Server 在初始化时依赖 Git 来拉取必要资源。
最后一步准备工作:全局安装 Codex 命令行工具。运行 npm install -g codex-cli。若卡住,通常是网络或权限问题。特别提醒国内开发者,可先执行 npm config set registry https://registry.npmmirror.com 切换到淘宝镜像,安装过程会顺畅许多。
三种配置方式任选其一
环境就绪后,便进入关键的配置环节。你拥有三条路径可选,可根据习惯自由选择。
方法一:命令行一键添加(推荐新手)
这是最省心的方式。直接在终端运行类似命令:codex mcp add openaiDeveloperDocs --url https://developers.openai.com/mcp。该命令会自动完成所有繁杂操作,并将服务定义写入全局配置文件 ~/.codex/config.toml 中。
方法二:手动编辑配置文件
若你偏好完全掌控一切,可以手动编辑配置文件。打开 ~/.codex/config.toml,在文件末尾添加一个 TOML 格式的服务块。示例如下:
[mcp_servers.docs]
command = "npx -y @openai/mcp-server-openapi"
args = ["--url", "https://developers.openai.com/openapi.json"]
env = { NODE_OPTIONS = "--max-old-space-size=4096" }
这里有个关键细节:command 字段必须指向完整且可执行的命令。不能仅写包名,通常需加上 npx -y 来确保临时安装并运行对应的 MCP Server 包。
方法三:用 MCP Router CLI 统一管理
对于需要管理多个复杂服务的团队或高级用户,可尝试 MCP Router。先安装:npm install -g @mcp/router,然后依次执行初始化、添加服务、导出配置到 Codex 的命令。这套工具提供了更集中的管理和更清晰的架构视图。
验证与启动服务
配置编写完成并不代表万事大吉。启动服务后的验证环节同样重要,能帮你快速定位问题。
第一步:检查服务注册
启动 Codex CLI,在对话中输入 /mcp list。若一切正常,应能看到类似 docs (openapi) — ready 的输出,表明服务已被成功识别并准备就绪。
第二步:进程存活测试
回到终端,手动执行你在配置文件中编写的 command 命令,观察对应的 MCP Server 进程能否独立启动。若命令一执行完就立即退出,或报了 Cannot find module 的错误,说明依赖未安装或路径不对,务必在此处先解决问题。
第三步:在对话中实际调用
在 Codex 对话里尝试使用工具。输入类似 @docs search "streaming response" 的指令。若服务连通正常,Codex 会从对应服务(如 OpenAI 文档服务)返回匹配内容。若返回 tool not found 或长时间无响应,说明虽已注册但通信链路未真正打通。
第四步:常见问题排查
若连不上,可从以下几方面找原因:
1. 客户端版本:确保所用 Codex CLI 版本在 v0.12 以上,或 VS Code 插件在 v1.8 以上,旧版本可能不识别新的 MCP 配置格式。
2. 配置文件位置:全局配置必须在 ~/.codex/config.toml,而项目级配置则置于项目根目录的 .codex/config.toml 下,切勿混淆。
3. 权限隔离:在 Linux 或 macOS 上,若使用 sudo 权限启动 Codex,它会读取 root 用户主目录下的配置文件,而非当前用户的。
跨工具协同实操
MCP 协议真正的威力在于协同。你完全可以在一轮对话中让 Codex 灵活调用多个不同的外部工具。
例如,你想让 Codex 既能浏览项目文件,又能查询数据库。只需在 config.toml 中并列定义两个服务:
[mcp_servers.filesystem]
command = "npx -y @mcp/server-filesystem"
args = ["--root", "/Users/you/project"]
[mcp_servers.sqlite]
command = "npx -y @mcp/server-sqlite"
args = ["--db", "./dev.db"]
配置好后,你就能在 Codex 中这样连续操作:先 @filesystem ls src/ 查看目录列表,紧接着 @sqlite SELECT * FROM users LIMIT 3 查询数据库。Codex 会自动将指令路由到对应的服务进程,彼此互不干扰。
另外,这套配置不仅限于 Codex CLI。若想在 VS Code 的 Claude Code 扩展中使用同样的 MCP 服务,原理相同。只需将上述 TOML 格式的配置转换为对应的 JSON 结构,填入 Claude Code 设置的 “mcpServers” 字段即可。协议统一,仅不同客户端对配置文件的语法要求略有差异。
