From 8d766088e6374e2a2db015958a0259e6bbd1b9d5 Mon Sep 17 00:00:00 2001 From: Gabriel Peal Date: Wed, 10 Sep 2025 14:15:02 -0700 Subject: [PATCH] Make user_agent optional (#3436) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # External (non-OpenAI) Pull Request Requirements Currently, mcp server fail to start with: ``` 🖐  MCP client for `` failed to start: missing field `user_agent` ```` It isn't clear to me yet why this is happening. My understanding is that this struct is simply added as a new field to the response but this should fix it until I figure out the full story here. CleanShot 2025-09-10 at 13 58 59 --- codex-rs/mcp-server/src/message_processor.rs | 2 +- codex-rs/mcp-types/src/lib.rs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/codex-rs/mcp-server/src/message_processor.rs b/codex-rs/mcp-server/src/message_processor.rs index 8018095d..6e63dee5 100644 --- a/codex-rs/mcp-server/src/message_processor.rs +++ b/codex-rs/mcp-server/src/message_processor.rs @@ -238,7 +238,7 @@ impl MessageProcessor { name: "codex-mcp-server".to_string(), version: env!("CARGO_PKG_VERSION").to_string(), title: Some("Codex".to_string()), - user_agent: get_codex_user_agent(), + user_agent: Some(get_codex_user_agent()), }, }; diff --git a/codex-rs/mcp-types/src/lib.rs b/codex-rs/mcp-types/src/lib.rs index 2f862be8..75778cb2 100644 --- a/codex-rs/mcp-types/src/lib.rs +++ b/codex-rs/mcp-types/src/lib.rs @@ -496,7 +496,8 @@ pub struct McpServerInfo { #[serde(default, skip_serializing_if = "Option::is_none")] pub title: Option, pub version: String, - pub user_agent: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user_agent: Option, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize, TS)]