diff --git a/codex-rs/core/src/session/mcp.rs b/codex-rs/core/src/session/mcp.rs index d0b82ee031..012e27ca3c 100644 --- a/codex-rs/core/src/session/mcp.rs +++ b/codex-rs/core/src/session/mcp.rs @@ -77,6 +77,13 @@ impl Session { Arc::new(GuardianMcpElicitationReviewer::new(self)) } + pub(crate) fn start_mcp_connection_manager_initialization(self: &Arc) { + let session = Arc::clone(self); + drop(self.services.runtime_handle.spawn(async move { + session.ensure_mcp_connection_manager_initialized().await; + })); + } + fn session_mcp_runtime_environment( &self, session_configuration: &SessionConfiguration, diff --git a/codex-rs/core/src/session/session.rs b/codex-rs/core/src/session/session.rs index 54fe253dcf..148e2e2955 100644 --- a/codex-rs/core/src/session/session.rs +++ b/codex-rs/core/src/session/session.rs @@ -994,6 +994,7 @@ impl Session { for event in events { sess.send_event_raw(event).await; } + sess.start_mcp_connection_manager_initialization(); sess.schedule_startup_prewarm(session_configuration.base_instructions.clone()) .await; let session_start_source = match &initial_history {