mirror of
https://github.com/openai/codex.git
synced 2026-10-28 18:58:46 +00:00
Add opt-in protocol discovery for local stdio MCP servers (#57210)
## Why Stdio servers without `CODEX_MCP_PROTOCOL_VERSION` use the legacy handshake, even when they support MCP `2026-07-28`. ## What changed - Add the disabled-by-default `mcp_connection_sharing` feature to enable discovery for eligible local stdio servers. - Recover from failed or late discovery with a fresh handshake when needed, waiting for the previous helper to release resources before restarting. - Retain a working legacy connection when an upgrade attempt fails for the same account, except on authentication errors. - Keep tool catalogs separate by protocol and invalidate legacy catalogs when discovery negotiates the modern protocol. ## Testing Add regression coverage for failed and late discovery, legacy fallback, protocol-specific catalog reuse, message limits, and Windows descendant cleanup. GitOrigin-RevId: 36c675ef3b81d32fccf06ccbddda2312cfe602c9
This commit is contained in:
@@ -124,6 +124,7 @@ impl ManagedFeatures {
|
||||
let mut values = self.get().clone();
|
||||
for feature in [
|
||||
Feature::EnableMcpApps,
|
||||
Feature::McpConnectionSharing,
|
||||
Feature::SecretAuthStorage,
|
||||
Feature::McpOAuthRefreshCoordination,
|
||||
] {
|
||||
|
||||
@@ -1957,6 +1957,7 @@ impl Config {
|
||||
Vec::new()
|
||||
},
|
||||
protocol_mode: self.mcp_protocol_mode(),
|
||||
discover_local_stdio: self.features.enabled(Feature::McpConnectionSharing),
|
||||
host_owned_apps_protocol_mode: if self.features.enabled(Feature::CodexAppsMcp20260728) {
|
||||
McpProtocolMode::V20260728
|
||||
} else {
|
||||
|
||||
@@ -67,6 +67,7 @@ impl Config {
|
||||
// These operational controls accept host defaults beneath explicit layer values.
|
||||
// Enterprise opt-in always comes from trusted layers instead.
|
||||
for feature in [
|
||||
Feature::McpConnectionSharing,
|
||||
Feature::SecretAuthStorage,
|
||||
Feature::McpOAuthRefreshCoordination,
|
||||
] {
|
||||
|
||||
Reference in New Issue
Block a user