mirror of
https://github.com/openai/codex.git
synced 2026-09-20 12:47:38 +00:00
## 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
272 lines
5.5 KiB
JSON
Generated
272 lines
5.5 KiB
JSON
Generated
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"McpAuthStatus": {
|
|
"enum": [
|
|
"unknown",
|
|
"unsupported",
|
|
"notLoggedIn",
|
|
"bearerToken",
|
|
"oAuth"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"McpServerConnectionStatus": {
|
|
"enum": [
|
|
"notStarted",
|
|
"starting",
|
|
"connected",
|
|
"authenticationRequired",
|
|
"failed",
|
|
"cancelled",
|
|
"disabled"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"McpServerInfo": {
|
|
"description": "Presentation metadata advertised by an initialized MCP server.",
|
|
"properties": {
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"icons": {
|
|
"items": true,
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
},
|
|
"websiteUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"version"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"McpServerStatus": {
|
|
"properties": {
|
|
"authStatus": {
|
|
"$ref": "#/definitions/McpAuthStatus"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"pluginId": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"resourceTemplates": {
|
|
"items": {
|
|
"$ref": "#/definitions/ResourceTemplate"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"resources": {
|
|
"items": {
|
|
"$ref": "#/definitions/Resource"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"runtimeStatus": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/McpServerConnectionStatus"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Current thread-runtime connection state; null when unavailable or the configuration changed."
|
|
},
|
|
"serverInfo": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/McpServerInfo"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"tools": {
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/Tool"
|
|
},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"authStatus",
|
|
"name",
|
|
"resourceTemplates",
|
|
"resources",
|
|
"tools"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"Resource": {
|
|
"description": "A known resource that the server is capable of reading.",
|
|
"properties": {
|
|
"_meta": true,
|
|
"annotations": true,
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"icons": {
|
|
"items": true,
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"mimeType": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"format": "int64",
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"uri": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"uri"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ResourceTemplate": {
|
|
"description": "A template description for resources available on the server.",
|
|
"properties": {
|
|
"annotations": true,
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"mimeType": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"uriTemplate": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"uriTemplate"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"Tool": {
|
|
"description": "Definition for a tool the client can call.",
|
|
"properties": {
|
|
"_meta": true,
|
|
"annotations": true,
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"icons": {
|
|
"items": true,
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"inputSchema": true,
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"outputSchema": true,
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"inputSchema",
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/definitions/McpServerStatus"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"nextCursor": {
|
|
"description": "Opaque cursor to pass to the next call to continue after the last item. If None, there are no more items to return.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"data"
|
|
],
|
|
"title": "ListMcpServerStatusResponse",
|
|
"type": "object"
|
|
} |