mirror of
https://github.com/openai/codex.git
synced 2026-08-23 13:09:46 +00:00
Report runtime MCP connection status (#40068)
## Why MCP inventory can be cached or collected separately from a thread's live connections, so tool availability alone does not describe the current runtime state. ## What changed - Add a nullable `runtimeStatus` to `mcpServerStatus/list` for thread-scoped requests, covering not-started, starting, connected, authentication-required, failed, cancelled, and disabled connections. - Observe published connection state without starting or reconnecting servers, and return an unknown status when no thread is supplied or the active configuration no longer matches the published registration. - Show connection state and tool counts in the compact `/mcp` view while retaining the detailed inventory in `/mcp verbose` and compatibility with servers that omit `runtimeStatus`. ## Testing - Cover runtime status transitions, deferred and disabled servers, closed transports, configuration changes, protocol compatibility, and TUI rendering. GitOrigin-RevId: e3bb6efe652f0fa8b3c97d5c53e4729b3a87cd91
This commit is contained in:
@@ -9,6 +9,20 @@ use serde::Serialize;
|
||||
use std::collections::HashMap;
|
||||
use ts_rs::TS;
|
||||
|
||||
/// Observed state of an MCP connection in a published thread runtime.
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(rename_all = "camelCase")]
|
||||
pub enum McpServerConnectionStatus {
|
||||
NotStarted,
|
||||
Starting,
|
||||
Connected,
|
||||
AuthenticationRequired,
|
||||
Failed,
|
||||
Cancelled,
|
||||
Disabled,
|
||||
}
|
||||
|
||||
/// Extension ID for OpenAI form elicitation.
|
||||
pub const OPENAI_FORM_EXTENSION_ID: &str = "openai/form";
|
||||
/// Extension ID for standard MCP form elicitations that require user-entered input.
|
||||
|
||||
Reference in New Issue
Block a user