From d2470098d4ca7bc0bcc74f1f4d4c3fb0e78b4867 Mon Sep 17 00:00:00 2001 From: miaolin Date: Fri, 22 May 2026 10:53:23 -0700 Subject: [PATCH] Limit turn metadata forwarding to Codex Apps MCP --- codex-rs/app-server/src/request_processors.rs | 1 + .../src/request_processors/mcp_processor.rs | 31 ++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/codex-rs/app-server/src/request_processors.rs b/codex-rs/app-server/src/request_processors.rs index d0958e80ab..08e5be18d2 100644 --- a/codex-rs/app-server/src/request_processors.rs +++ b/codex-rs/app-server/src/request_processors.rs @@ -343,6 +343,7 @@ use codex_login::complete_device_code_login; use codex_login::login_with_api_key; use codex_login::request_device_code; use codex_login::run_login_server; +use codex_mcp::CODEX_APPS_MCP_SERVER_NAME; use codex_mcp::McpRuntimeContext; use codex_mcp::McpServerStatusSnapshot; use codex_mcp::McpSnapshotDetail; diff --git a/codex-rs/app-server/src/request_processors/mcp_processor.rs b/codex-rs/app-server/src/request_processors/mcp_processor.rs index 4aa323c40a..93e75ba19d 100644 --- a/codex-rs/app-server/src/request_processors/mcp_processor.rs +++ b/codex-rs/app-server/src/request_processors/mcp_processor.rs @@ -402,10 +402,14 @@ impl McpRequestProcessor { let thread_id = params.thread_id.clone(); let (_, thread) = self.load_thread(&thread_id).await?; let meta = with_mcp_tool_call_thread_id_meta(params.meta, &thread_id); - let meta = with_mcp_tool_call_turn_metadata_meta( - meta, - thread.current_mcp_request_turn_metadata().await, - ); + let meta = if should_forward_turn_metadata_to_mcp_server(¶ms.server) { + with_mcp_tool_call_turn_metadata_meta( + meta, + thread.current_mcp_request_turn_metadata().await, + ) + } else { + meta + }; let request_id = request_id.clone(); tokio::spawn(async move { @@ -420,6 +424,10 @@ impl McpRequestProcessor { } } +fn should_forward_turn_metadata_to_mcp_server(server: &str) -> bool { + server == CODEX_APPS_MCP_SERVER_NAME +} + fn with_mcp_tool_call_turn_metadata_meta( meta: Option, turn_metadata: Option, @@ -448,6 +456,21 @@ fn with_mcp_tool_call_turn_metadata_meta( } } +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn turn_metadata_is_forwarded_only_to_codex_apps_mcp_server() { + assert!(should_forward_turn_metadata_to_mcp_server( + CODEX_APPS_MCP_SERVER_NAME + )); + assert!(!should_forward_turn_metadata_to_mcp_server( + "custom_mcp_server" + )); + } +} + fn with_mcp_tool_call_thread_id_meta( meta: Option, thread_id: &str,