mirror of
https://github.com/openai/codex.git
synced 2026-05-22 20:14:17 +00:00
## DISCLAIMER This is experimental and no production service must rely on this ## Why Built-in MCPs are product-owned runtime capabilities, but they were previously flattened into the same config-backed stdio path as user-configured servers. That made them depend on a hidden `codex builtin-mcp` re-exec path, exposed them through config-oriented CLI flows, and erased distinctions the runtime needs to preserve—most notably whether an MCP call should count as external context for memory-mode pollution. ## What changed - Model product-owned built-ins separately from config-backed MCP servers via `BuiltinMcpServer` and `EffectiveMcpServer`. - Launch built-ins in process through a reusable async transport instead of the hidden `builtin-mcp` stdio subcommand. - Keep config-oriented CLI operations such as `codex mcp list/get/login/logout` scoped to configured servers, while merging built-ins only into the effective runtime server set. - Retain server metadata after launch so parallel-tool support and context classification come from the live server set; built-in `memories` is now classified as local Codex state rather than external context. ## Test plan - `cargo test -p codex-mcp` - `cargo test -p codex-core --test suite builtin_memories_mcp_call_does_not_mark_thread_memory_mode_polluted_when_configured` --------- Co-authored-by: Codex <noreply@openai.com>
40 lines
1.5 KiB
Rust
40 lines
1.5 KiB
Rust
mod auth_status;
|
|
mod elicitation_client_service;
|
|
mod executor_process_transport;
|
|
mod http_client_adapter;
|
|
mod in_process_transport;
|
|
mod logging_client_handler;
|
|
mod oauth;
|
|
mod perform_oauth_login;
|
|
mod program_resolver;
|
|
mod rmcp_client;
|
|
mod stdio_server_launcher;
|
|
mod utils;
|
|
|
|
pub use auth_status::StreamableHttpOAuthDiscovery;
|
|
pub use auth_status::determine_streamable_http_auth_status;
|
|
pub use auth_status::discover_streamable_http_oauth;
|
|
pub use auth_status::supports_oauth_login;
|
|
pub use codex_protocol::protocol::McpAuthStatus;
|
|
pub use in_process_transport::InProcessTransportFactory;
|
|
pub use oauth::StoredOAuthTokens;
|
|
pub use oauth::WrappedOAuthTokenResponse;
|
|
pub use oauth::delete_oauth_tokens;
|
|
pub(crate) use oauth::load_oauth_tokens;
|
|
pub use oauth::save_oauth_tokens;
|
|
pub use perform_oauth_login::OAuthProviderError;
|
|
pub use perform_oauth_login::OauthLoginHandle;
|
|
pub use perform_oauth_login::perform_oauth_login;
|
|
pub use perform_oauth_login::perform_oauth_login_return_url;
|
|
pub use perform_oauth_login::perform_oauth_login_silent;
|
|
pub use rmcp::model::ElicitationAction;
|
|
pub use rmcp_client::Elicitation;
|
|
pub use rmcp_client::ElicitationResponse;
|
|
pub use rmcp_client::ListToolsWithConnectorIdResult;
|
|
pub use rmcp_client::RmcpClient;
|
|
pub use rmcp_client::SendElicitation;
|
|
pub use rmcp_client::ToolWithConnectorId;
|
|
pub use stdio_server_launcher::ExecutorStdioServerLauncher;
|
|
pub use stdio_server_launcher::LocalStdioServerLauncher;
|
|
pub use stdio_server_launcher::StdioServerLauncher;
|