mirror of
https://github.com/openai/codex.git
synced 2026-10-21 17:48:44 +00:00
## Why MCP tool discovery discarded response-level `_meta`, leaving server-status clients unable to inspect metadata associated with the tool catalog. ## What changed - Preserve opaque `_meta` from the first `tools/list` page through catalog refreshes and caches. - Expose it as `toolListMeta` in `McpServerStatus`, with `null` when unavailable, and update generated schemas and bindings. - Scope cached Apps catalog metadata to discovery settings, including client capabilities and extensions, while retaining tools from older caches without metadata. - Restrict server capabilities in status snapshots to the selected servers. ## Testing Add regression coverage for listing legacy cached Apps tools during failed startup, and update protocol serialization expectations for nullable `toolListMeta`. GitOrigin-RevId: 62335e2fd8c482067a7a78a7612b58c3eaa9fb55
292 lines
6.3 KiB
JSON
Generated
292 lines
6.3 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"
|
|
},
|
|
"httpOrigin": {
|
|
"description": "HTTP origin of the effective configured endpoint, including plugin servers. Excludes credentials, path, query, and fragment; null for non-HTTP transports.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"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."
|
|
},
|
|
"serverCapabilities": {
|
|
"description": "Capabilities advertised by the initialized MCP server; null when unavailable."
|
|
},
|
|
"serverInfo": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/McpServerInfo"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"toolListMeta": {
|
|
"description": "Opaque `_meta` from the first page of the corresponding MCP tool catalog. Null when unavailable."
|
|
},
|
|
"tools": {
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/Tool"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"toolsError": {
|
|
"description": "Tool discovery failed and no catalog was returned. Null when a catalog is returned, including cached or empty catalogs.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"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"
|
|
} |