MCP 集成对比:Claude Code vs Codex CLI
Model Context Protocol 是 AI Agent 的”USB 接口标准”。两大 Coding Agent 对 MCP 的实现路径截然不同——Claude Code 走全功能深度集成,Codex 走精简实用双角色路线。
MCP 协议现状(2025-11-25 规范)
| 维度 | 详情 |
|---|---|
| 规范版本 | 2025-11-25(最新) |
| 治理 | Linux Foundation · Agentic AI Foundation |
| 核心传输 | stdio(本地)+ Streamable HTTP(远程,取代旧 HTTP+SSE) |
| 认证 | OAuth 2.0/2.1 + Bearer Token + URL mode elicitation |
| 最新特性 | Async Tasks、增量 scope 同意、Extensions 框架、Tool 图标 |
传输类型对照
| 传输 | 场景 | 特点 |
|---|---|---|
| stdio | 本地进程通信 | JSON-RPC over stdin/stdout,零网络开销 |
| Streamable HTTP | 远程服务器(推荐) | HTTP POST + 可选 SSE 流式返回,支持断线恢复 |
| HTTP+SSE(废弃) | 远程(旧) | 单向推送,已被 Streamable HTTP 取代 |
| WebSocket | 全双工低延迟 | 非规范标准,部分客户端支持 |
Claude Code 的 MCP 实现
架构定位
MCP 是 Claude Code 的核心扩展机制。Plugin、Skill、外部 Agent 连接都基于 MCP 协议。源码中 services/mcp/ 目录包含 23 个文件,实现了协议的所有主要特性。
传输支持(7 种)
| 传输 | 状态 | 说明 |
|---|---|---|
| stdio | 默认 | 本地 MCP 服务器标准方式 |
| Streamable HTTP | 支持 | 远程服务器推荐传输 |
| SSE | 兼容 | 旧版远程服务器兼容 |
| WebSocket | 支持 | 全双工场景(如 Neovim 集成) |
| 自动重连 | 内置 | 连接断开后自动恢复 |
| Channel | 内置 | Push messages 主动推送 |
| Auth Stub | 内置 | Headless/SDK 模式认证隔离 |
配置层级(三层优先级)
优先级:Local > Project > User
Local: ~/.claude.json(项目路径下) → 仅个人
Project: .mcp.json(仓库根目录) → 团队共享,可 git 提交
User: ~/.claude.json(全局) → 个人所有项目
.mcp.json 支持环境变量展开:${VAR} 和 ${VAR:-default},避免密钥入库。
OAuth 认证流
用户触发 → Claude Code 启动本地 HTTP Server
→ 打开浏览器跳转 OAuth Provider
→ 用户授权 → 回调到本地 Server
→ 获取 token → 存储并注入后续请求
可配置选项:
--oauth-port:固定回调端口- 预配置 OAuth 凭据(跳过浏览器流)
- 覆盖 metadata discovery URL
- 限制 OAuth scopes
- 动态 headers 自定义认证
Elicitation 机制
MCP 服务器可在工具执行过程中向用户请求结构化输入:
MCP Server → 发送 JSON Schema 定义的表单
Claude Code → 渲染表单给用户
User → 填写并提交
Claude Code → 将结果返回 MCP Server
支持两种模式:
- 内联表单:直接在终端中展示字段
- URL mode:跳转浏览器完成认证(2025-11-25 规范新增)
Tool Search(延迟加载)
当连接的 MCP 服务器暴露大量工具时(>50),不把所有工具塞进 system prompt:
- 维护工具元数据索引
- LLM 按需描述需要的能力
- 匹配并加载相关工具到当前上下文
作为 MCP 服务器
claude mcp serve
暴露 Claude Code 完整能力给其他 MCP 客户端,用于:
- 多 Agent 编排中的节点
- 其他工具调用 Claude Code 的搜索/编辑/分析能力
- IDE 深度集成
其他特性
- 从 Claude Desktop 导入 MCP 配置
- 支持 claude.ai connectors(远程 MCP Server)
- MCP Resources(引用外部数据)
- MCP Prompts 作为
/命令暴露 - Managed MCP(企业管理配置)
- 输出大小限制(可按工具提升)
- 动态工具更新通知
Codex CLI 的 MCP 实现
架构定位
MCP 是 Codex 的工具扩展通道之一(与内置工具、shell 命令并列)。实现在 codex-rs/mcp-server/ crate 中,走精简实用路线。
传输支持(2 种)
| 传输 | 状态 | 说明 |
|---|---|---|
| stdio | 默认 | 本地 MCP 服务器 |
| Streamable HTTP | 支持 | 远程服务器,Bearer Token 或 OAuth |
配置方式
CLI 命令添加:
codex mcp add <server-name> -- <command> [args...]
TOML 配置文件:
# ~/.codex/config.toml(全局)或 .codex/config.toml(项目级)
[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/path"]
env = { SOME_KEY = "value" }
cwd = "/working/dir"
startup_timeout_sec = 30
[mcp_servers.my-remote-mcp]
url = "https://mcp.example.com/server"
bearer_token_env_var = "MY_TOKEN_ENV"
工具过滤:
[mcp_servers.my-server]
command = "my-mcp-server"
enabled_tools = ["tool1", "tool2"]
disabled_tools = ["dangerous-tool"]
required = true # 启动失败时终止 Codex
配置层级:2 层(全局 + 项目),App/IDE/CLI 共享同一份 config.toml。
作为 MCP 服务器
codex --mcp-server
暴露 2 个工具:
| 工具 | 功能 |
|---|---|
codex() |
创建新 Codex 会话(接受 Config 结构参数) |
codex-reply() |
通过 thread_id + prompt 继续已有会话 |
传输方式:stdio JSON-RPC(作为子进程被启动)。
与 Agents SDK 集成
OpenAI Agents SDK
│
├── 通过 stdio 启动 Codex CLI 子进程
├── Codex 作为 MCP Server 保持活跃
├── Orchestrator Agent 通过 codex() 派发任务
├── 通过 codex-reply() 继续对话
└── 支持 tracing / handoffs / guardrails
典型场景:一个 orchestrator agent 调度多个 Codex 实例,各自在独立 worktree 中工作。
外部客户端兼容
任何 MCP 客户端都可连接 Codex MCP Server:
- Claude Desktop / Claude Code
- Zed Editor
- 任何支持 MCP 的 IDE/工具
关键差异矩阵
| 维度 | Claude Code | Codex CLI |
|---|---|---|
| 设计哲学 | 全功能 MCP 客户端,协议所有特性深度集成 | 精简实用,聚焦 stdio + HTTP 两种核心传输 |
| 传输数量 | 7 种 | 2 种 |
| 配置格式 | JSON | TOML |
| 配置层级 | 3 层 | 2 层 |
| Server 暴露 | 完整能力暴露 | 仅 2 个工具(codex / codex-reply) |
| OAuth | 完整浏览器流 + 多种覆盖 | Bearer Token + 基础 OAuth |
| Elicitation | 完整实现 | 未文档化 |
| Tool Search | 延迟加载(大量工具时按需搜索) | 手动过滤(白名单/黑名单) |
| 动态更新 | 服务器运行时通知新工具 | 未文档化 |
| Push 消息 | Channel 机制支持 | 未文档化 |
| 实现语言 | TypeScript (services/mcp/, 23 文件) | Rust (codex-rs/mcp-server/ crate) |
| 互操作 | 可将 Codex 作为 MCP Server 接入 | 可将 Claude Code 作为 MCP Server 接入 |
互操作场景
Claude Code 调用 Codex
// .mcp.json
{
"mcpServers": {
"codex": {
"command": "codex",
"args": ["--mcp-server"]
}
}
}
Claude Code 可通过 codex() 工具将子任务委派给 Codex 在沙箱中执行。
Codex 调用 Claude Code
# .codex/config.toml
[mcp_servers.claude]
command = "claude"
args = ["mcp", "serve"]
Codex 可通过 Claude Code MCP Server 获取深度推理能力。
多 Agent 混合编排
Agents SDK (Orchestrator)
├── Codex Instance 1 (MCP Server) → 前端开发
├── Codex Instance 2 (MCP Server) → 后端开发
└── Claude Code (MCP Server) → 代码审查 + 安全审计
演进趋势
Claude Code 方向:持续深化 MCP 集成,让 MCP 成为一切扩展的统一协议层。Plugin Marketplace 本质上是 MCP 服务器的发现和安装机制。
Codex 方向:保持精简 MCP 实现,把复杂编排逻辑外推到 Agents SDK。Codex 自身定位为多 Agent 网络中的一个高质量执行节点。
共同趋势:两者都支持作为 MCP Server 被对方调用,互操作正在成为现实。2025-11-25 规范的 Async Tasks 特性将进一步推动跨 Agent 协作。
交叉引用
- Claude Code vs Codex 全维度对比 — 12 维度总览
- Claude Code 工具循环 — MCP 工具在管线中的位置
- Codex 工具循环 — MCP 工具调度机制
- Claude Code 多 Agent — Swarm 如何利用 MCP
- Codex 多 Agent 编排 — MCP Server 模式详解