Skip to content

MCP(Model Context Protocol)是一种标准化协议,允许 AI 模型与外部工具和数据源交互,Codex 通过 McpConnectionManager 管理服务器连接。

为什么需要 MCP

AI 代理的能力受限于其训练数据。MCP 协议让代理能够调用外部工具(数据库查询、API 调用、文件操作等),访问实时数据源,扩展其能力边界。Codex 实现了 MCP 协议,使得用户可以通过配置文件添加自定义工具服务器,而无需修改 Codex 核心代码。

核心原理

  1. JSON-RPC 通信:MCP 服务器通过 JSON-RPC 2.0 协议通信,Codex 的 rmcp-client 处理消息序列化和连接管理
  2. 三种传输:InProcess(进程内直接调用)、Stdio(子进程 stdin/stdout)、StreamableHttp(HTTP + SSE)
  3. 工具可见性tool_is_model_visible() 过滤工具列表,确保模型只看到应使用的工具
  4. 生命周期管理McpConnectionManager 管理连接的建立、运行时配置更新和优雅关闭

在源码中的实现

  • codex-rs/codex-mcp/src/connection_manager.rsMcpConnectionManager 核心实现
  • 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.rsread_mcp_resource()call_mcp_tool() API

相关概念