Appearance
MCP(Model Context Protocol)是一种标准化协议,允许 AI 模型与外部工具和数据源交互,Codex 通过 McpConnectionManager 管理服务器连接。
为什么需要 MCP
AI 代理的能力受限于其训练数据。MCP 协议让代理能够调用外部工具(数据库查询、API 调用、文件操作等),访问实时数据源,扩展其能力边界。Codex 实现了 MCP 协议,使得用户可以通过配置文件添加自定义工具服务器,而无需修改 Codex 核心代码。
核心原理
- JSON-RPC 通信:MCP 服务器通过 JSON-RPC 2.0 协议通信,Codex 的
rmcp-client处理消息序列化和连接管理 - 三种传输:InProcess(进程内直接调用)、Stdio(子进程 stdin/stdout)、StreamableHttp(HTTP + SSE)
- 工具可见性:
tool_is_model_visible()过滤工具列表,确保模型只看到应使用的工具 - 生命周期管理:
McpConnectionManager管理连接的建立、运行时配置更新和优雅关闭
在源码中的实现
codex-rs/codex-mcp/src/connection_manager.rs—McpConnectionManager核心实现codex-rs/rmcp-client/src/rmcp_client.rs— 底层 JSON-RPC MCP 客户端codex-rs/config/src/mcp_types.rs— MCP 服务器配置类型定义codex-rs/core/src/codex_thread.rs—read_mcp_resource()和call_mcp_tool()API