From 5b3fe94beb3e02bf84ca7efd4ac0a93e3ce179b3 Mon Sep 17 00:00:00 2001 From: Ahmed Ibrahim Date: Mon, 27 Apr 2026 01:20:22 +0300 Subject: [PATCH] Move MCP client constants Move default MCP startup/tool timeouts and the sandbox-state capability marker from mcp_connection.rs into client.rs. Keep the public capability export stable by re-exporting it from client.rs. Co-authored-by: Codex --- codex-rs/codex-mcp/src/client.rs | 9 ++++++--- codex-rs/codex-mcp/src/lib.rs | 2 +- codex-rs/codex-mcp/src/manager.rs | 2 +- codex-rs/codex-mcp/src/mcp_connection.rs | 10 ---------- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/codex-rs/codex-mcp/src/client.rs b/codex-rs/codex-mcp/src/client.rs index d25cdbf1de..3ea1d7ad5b 100644 --- a/codex-rs/codex-mcp/src/client.rs +++ b/codex-rs/codex-mcp/src/client.rs @@ -20,9 +20,6 @@ use crate::apps::write_cached_codex_apps_tools_if_needed; use crate::elicitation::ElicitationRequestManager; use crate::mcp::CODEX_APPS_MCP_SERVER_NAME; use crate::mcp::ToolPluginProvenance; -use crate::mcp_connection::DEFAULT_STARTUP_TIMEOUT; -use crate::mcp_connection::DEFAULT_TOOL_TIMEOUT; -use crate::mcp_connection::MCP_SANDBOX_STATE_META_CAPABILITY; use crate::mcp_connection::McpRuntimeEnvironment; use crate::mcp_connection::emit_duration; use crate::tools::ToolFilter; @@ -59,6 +56,12 @@ use tokio_util::sync::CancellationToken; pub(crate) const MCP_TOOLS_LIST_DURATION_METRIC: &str = "codex.mcp.tools.list.duration_ms"; pub(crate) const MCP_TOOLS_FETCH_UNCACHED_DURATION_METRIC: &str = "codex.mcp.tools.fetch_uncached.duration_ms"; +pub(crate) const DEFAULT_STARTUP_TIMEOUT: Duration = Duration::from_secs(30); +pub(crate) const DEFAULT_TOOL_TIMEOUT: Duration = Duration::from_secs(120); + +/// MCP server capability indicating that Codex should include [`SandboxState`] +/// in tool-call request `_meta` under this key. +pub const MCP_SANDBOX_STATE_META_CAPABILITY: &str = "codex/sandbox-state-meta"; #[derive(Clone)] pub(crate) struct ManagedClient { diff --git a/codex-rs/codex-mcp/src/lib.rs b/codex-rs/codex-mcp/src/lib.rs index 4cfa7cd7da..08d2ce2784 100644 --- a/codex-rs/codex-mcp/src/lib.rs +++ b/codex-rs/codex-mcp/src/lib.rs @@ -1,5 +1,5 @@ +pub use client::MCP_SANDBOX_STATE_META_CAPABILITY; pub use manager::McpConnectionManager; -pub use mcp_connection::MCP_SANDBOX_STATE_META_CAPABILITY; pub use mcp_connection::McpRuntimeEnvironment; pub use mcp_connection::SandboxState; pub use tools::ToolInfo; diff --git a/codex-rs/codex-mcp/src/manager.rs b/codex-rs/codex-mcp/src/manager.rs index 0fd071c0c8..d678ee3e31 100644 --- a/codex-rs/codex-mcp/src/manager.rs +++ b/codex-rs/codex-mcp/src/manager.rs @@ -9,6 +9,7 @@ use crate::apps::CodexAppsToolsCacheContext; use crate::apps::CodexAppsToolsCacheKey; use crate::apps::write_cached_codex_apps_tools_if_needed; use crate::client::AsyncManagedClient; +use crate::client::DEFAULT_STARTUP_TIMEOUT; use crate::client::MCP_TOOLS_FETCH_UNCACHED_DURATION_METRIC; use crate::client::MCP_TOOLS_LIST_DURATION_METRIC; use crate::client::ManagedClient; @@ -17,7 +18,6 @@ use crate::client::list_tools_for_client_uncached; use crate::elicitation::ElicitationRequestManager; use crate::mcp::CODEX_APPS_MCP_SERVER_NAME; use crate::mcp::ToolPluginProvenance; -use crate::mcp_connection::DEFAULT_STARTUP_TIMEOUT; use crate::mcp_connection::McpRuntimeEnvironment; use crate::mcp_connection::emit_duration; use crate::tools::ToolInfo; diff --git a/codex-rs/codex-mcp/src/mcp_connection.rs b/codex-rs/codex-mcp/src/mcp_connection.rs index 4c58ca12b9..663f2e076c 100644 --- a/codex-rs/codex-mcp/src/mcp_connection.rs +++ b/codex-rs/codex-mcp/src/mcp_connection.rs @@ -13,16 +13,6 @@ use codex_protocol::protocol::SandboxPolicy; use serde::Deserialize; use serde::Serialize; -/// Default timeout for initializing MCP server & initially listing tools. -pub(crate) const DEFAULT_STARTUP_TIMEOUT: Duration = Duration::from_secs(30); - -/// Default timeout for individual tool calls. -pub(crate) const DEFAULT_TOOL_TIMEOUT: Duration = Duration::from_secs(120); - -/// MCP server capability indicating that Codex should include [`SandboxState`] -/// in tool-call request `_meta` under this key. -pub const MCP_SANDBOX_STATE_META_CAPABILITY: &str = "codex/sandbox-state-meta"; - #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct SandboxState {