6090 lines
215 KiB
JSON
Generated
6090 lines
215 KiB
JSON
Generated
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://modelcontextprotocol.io/ext-apps/schema.json",
|
|
"title": "MCP Apps Protocol",
|
|
"description": "JSON Schema for MCP Apps UI protocol messages",
|
|
"$defs": {
|
|
"McpUiAppCapabilities": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"experimental": {
|
|
"description": "Experimental features keyed by identifier.",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {},
|
|
"description": "Experimental features keyed by identifier."
|
|
}
|
|
},
|
|
"tools": {
|
|
"description": "App exposes MCP-style tools that the host can call.",
|
|
"type": "object",
|
|
"properties": {
|
|
"listChanged": {
|
|
"description": "App supports tools/list_changed notifications.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"availableDisplayModes": {
|
|
"description": "Display modes the app supports.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
],
|
|
"description": "Display mode for UI presentation."
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiClientCapabilities": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"mimeTypes": {
|
|
"description": "Array of supported MIME types for UI resources.\nMust include `\"text/html;profile=mcp-app\"` for MCP Apps support.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiDisplayMode": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
],
|
|
"description": "Display mode for UI presentation."
|
|
},
|
|
"McpUiDownloadFileRequest": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/download-file"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"contents": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "resource"
|
|
},
|
|
"resource": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["uri", "text"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"blob": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["uri", "blob"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "resource"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"icons": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"src": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"sizes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"enum": ["light", "dark"]
|
|
}
|
|
},
|
|
"required": ["src"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"type": "number"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": {}
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "resource_link"
|
|
}
|
|
},
|
|
"required": ["name", "uri", "type"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"description": "Resource contents to download — embedded (inline data) or linked (host fetches). Uses standard MCP resource types."
|
|
}
|
|
},
|
|
"required": ["contents"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiDownloadFileResult": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"isError": {
|
|
"description": "True if the download failed (e.g., user cancelled or host denied).",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"McpUiHostCapabilities": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"experimental": {
|
|
"description": "Experimental features keyed by identifier.",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {},
|
|
"description": "Experimental features keyed by identifier."
|
|
}
|
|
},
|
|
"openLinks": {
|
|
"description": "Host supports opening external URLs.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"downloadFile": {
|
|
"description": "Host supports file downloads via ui/download-file.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"serverTools": {
|
|
"description": "Host can proxy tool calls to the MCP server.",
|
|
"type": "object",
|
|
"properties": {
|
|
"listChanged": {
|
|
"description": "Host supports tools/list_changed notifications.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"serverResources": {
|
|
"description": "Host can proxy resource reads to the MCP server.",
|
|
"type": "object",
|
|
"properties": {
|
|
"listChanged": {
|
|
"description": "Host supports resources/list_changed notifications.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"logging": {
|
|
"description": "Host accepts log messages.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"sandbox": {
|
|
"description": "Sandbox configuration applied by the host.",
|
|
"type": "object",
|
|
"properties": {
|
|
"permissions": {
|
|
"description": "Permissions granted by the host (camera, microphone, geolocation).",
|
|
"type": "object",
|
|
"properties": {
|
|
"camera": {
|
|
"description": "Request camera access.\n\nMaps to Permission Policy `camera` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"microphone": {
|
|
"description": "Request microphone access.\n\nMaps to Permission Policy `microphone` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"geolocation": {
|
|
"description": "Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"clipboardWrite": {
|
|
"description": "Request clipboard write access.\n\nMaps to Permission Policy `clipboard-write` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"csp": {
|
|
"description": "CSP domains approved by the host.",
|
|
"type": "object",
|
|
"properties": {
|
|
"connectDomains": {
|
|
"description": "Origins for network requests (fetch/XHR/WebSocket).\n\n- Maps to CSP `connect-src` directive\n- Empty or omitted → no network connections (secure default)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"resourceDomains": {
|
|
"description": "Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"frameDomains": {
|
|
"description": "Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"baseUriDomains": {
|
|
"description": "Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"updateModelContext": {
|
|
"description": "Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns.",
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"description": "Host supports text content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"image": {
|
|
"description": "Host supports image content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"audio": {
|
|
"description": "Host supports audio content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"resource": {
|
|
"description": "Host supports resource content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"resourceLink": {
|
|
"description": "Host supports resource link content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"structuredContent": {
|
|
"description": "Host supports structured content.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"message": {
|
|
"description": "Host supports receiving content messages (ui/message) from the view.",
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"description": "Host supports text content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"image": {
|
|
"description": "Host supports image content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"audio": {
|
|
"description": "Host supports audio content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"resource": {
|
|
"description": "Host supports resource content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"resourceLink": {
|
|
"description": "Host supports resource link content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"structuredContent": {
|
|
"description": "Host supports structured content.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"sampling": {
|
|
"description": "Host supports LLM sampling (sampling/createMessage) from the view.\nMirrors the MCP `ClientCapabilities.sampling` shape so hosts can pass it through.",
|
|
"type": "object",
|
|
"properties": {
|
|
"tools": {
|
|
"description": "Host supports tool use via `tools` and `toolChoice` parameters.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiHostContextChangedNotification": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/notifications/host-context-changed"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"toolInfo": {
|
|
"description": "Metadata of the tool call that instantiated this App.",
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"description": "JSON-RPC id of the tools/call request.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": -9007199254740991,
|
|
"maximum": 9007199254740991
|
|
}
|
|
]
|
|
},
|
|
"tool": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"icons": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"src": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"sizes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"enum": ["light", "dark"]
|
|
}
|
|
},
|
|
"required": ["src"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "object"
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"required": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": ["type"],
|
|
"additionalProperties": {}
|
|
},
|
|
"outputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "object"
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"required": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": ["type"],
|
|
"additionalProperties": {}
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"readOnlyHint": {
|
|
"type": "boolean"
|
|
},
|
|
"destructiveHint": {
|
|
"type": "boolean"
|
|
},
|
|
"idempotentHint": {
|
|
"type": "boolean"
|
|
},
|
|
"openWorldHint": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"execution": {
|
|
"type": "object",
|
|
"properties": {
|
|
"taskSupport": {
|
|
"type": "string",
|
|
"enum": ["required", "optional", "forbidden"]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["name", "inputSchema"],
|
|
"additionalProperties": false,
|
|
"description": "Tool definition including name, inputSchema, etc."
|
|
}
|
|
},
|
|
"required": ["tool"],
|
|
"additionalProperties": false
|
|
},
|
|
"theme": {
|
|
"description": "Current color theme preference.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "light"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "dark"
|
|
}
|
|
]
|
|
},
|
|
"styles": {
|
|
"description": "Style configuration for theming the app.",
|
|
"type": "object",
|
|
"properties": {
|
|
"variables": {
|
|
"description": "CSS variables for theming the app.",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-sans"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-mono"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-normal"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-medium"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-semibold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-bold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xs"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-lg"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xl"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-full"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-width-regular"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-hairline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-lg"
|
|
}
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{}
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"required": [
|
|
"--color-background-primary",
|
|
"--color-background-secondary",
|
|
"--color-background-tertiary",
|
|
"--color-background-inverse",
|
|
"--color-background-ghost",
|
|
"--color-background-info",
|
|
"--color-background-danger",
|
|
"--color-background-success",
|
|
"--color-background-warning",
|
|
"--color-background-disabled",
|
|
"--color-text-primary",
|
|
"--color-text-secondary",
|
|
"--color-text-tertiary",
|
|
"--color-text-inverse",
|
|
"--color-text-ghost",
|
|
"--color-text-info",
|
|
"--color-text-danger",
|
|
"--color-text-success",
|
|
"--color-text-warning",
|
|
"--color-text-disabled",
|
|
"--color-border-primary",
|
|
"--color-border-secondary",
|
|
"--color-border-tertiary",
|
|
"--color-border-inverse",
|
|
"--color-border-ghost",
|
|
"--color-border-info",
|
|
"--color-border-danger",
|
|
"--color-border-success",
|
|
"--color-border-warning",
|
|
"--color-border-disabled",
|
|
"--color-ring-primary",
|
|
"--color-ring-secondary",
|
|
"--color-ring-inverse",
|
|
"--color-ring-info",
|
|
"--color-ring-danger",
|
|
"--color-ring-success",
|
|
"--color-ring-warning",
|
|
"--font-sans",
|
|
"--font-mono",
|
|
"--font-weight-normal",
|
|
"--font-weight-medium",
|
|
"--font-weight-semibold",
|
|
"--font-weight-bold",
|
|
"--font-text-xs-size",
|
|
"--font-text-sm-size",
|
|
"--font-text-md-size",
|
|
"--font-text-lg-size",
|
|
"--font-heading-xs-size",
|
|
"--font-heading-sm-size",
|
|
"--font-heading-md-size",
|
|
"--font-heading-lg-size",
|
|
"--font-heading-xl-size",
|
|
"--font-heading-2xl-size",
|
|
"--font-heading-3xl-size",
|
|
"--font-text-xs-line-height",
|
|
"--font-text-sm-line-height",
|
|
"--font-text-md-line-height",
|
|
"--font-text-lg-line-height",
|
|
"--font-heading-xs-line-height",
|
|
"--font-heading-sm-line-height",
|
|
"--font-heading-md-line-height",
|
|
"--font-heading-lg-line-height",
|
|
"--font-heading-xl-line-height",
|
|
"--font-heading-2xl-line-height",
|
|
"--font-heading-3xl-line-height",
|
|
"--border-radius-xs",
|
|
"--border-radius-sm",
|
|
"--border-radius-md",
|
|
"--border-radius-lg",
|
|
"--border-radius-xl",
|
|
"--border-radius-full",
|
|
"--border-width-regular",
|
|
"--shadow-hairline",
|
|
"--shadow-sm",
|
|
"--shadow-md",
|
|
"--shadow-lg"
|
|
]
|
|
},
|
|
"css": {
|
|
"description": "CSS blocks that apps can inject.",
|
|
"type": "object",
|
|
"properties": {
|
|
"fonts": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"displayMode": {
|
|
"description": "How the UI is currently displayed.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
]
|
|
},
|
|
"availableDisplayModes": {
|
|
"description": "Display modes the host supports.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
],
|
|
"description": "Display mode for UI presentation."
|
|
}
|
|
},
|
|
"containerDimensions": {
|
|
"description": "Container dimensions. Represents the dimensions of the iframe or other\ncontainer holding the app. Specify either width or maxWidth, and either height or maxHeight.",
|
|
"allOf": [
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"height": {
|
|
"type": "number",
|
|
"description": "Fixed container height in pixels."
|
|
}
|
|
},
|
|
"required": ["height"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"maxHeight": {
|
|
"description": "Maximum container height in pixels.",
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"width": {
|
|
"type": "number",
|
|
"description": "Fixed container width in pixels."
|
|
}
|
|
},
|
|
"required": ["width"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"maxWidth": {
|
|
"description": "Maximum container width in pixels.",
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"locale": {
|
|
"description": "User's language and region preference in BCP 47 format.",
|
|
"type": "string"
|
|
},
|
|
"timeZone": {
|
|
"description": "User's timezone in IANA format.",
|
|
"type": "string"
|
|
},
|
|
"userAgent": {
|
|
"description": "Host application identifier.",
|
|
"type": "string"
|
|
},
|
|
"platform": {
|
|
"description": "Platform type for responsive design decisions.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "web"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "desktop"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "mobile"
|
|
}
|
|
]
|
|
},
|
|
"deviceCapabilities": {
|
|
"description": "Device input capabilities.",
|
|
"type": "object",
|
|
"properties": {
|
|
"touch": {
|
|
"description": "Whether the device supports touch input.",
|
|
"type": "boolean"
|
|
},
|
|
"hover": {
|
|
"description": "Whether the device supports hover interactions.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"safeAreaInsets": {
|
|
"description": "Mobile safe area boundaries in pixels.",
|
|
"type": "object",
|
|
"properties": {
|
|
"top": {
|
|
"type": "number",
|
|
"description": "Top safe area inset in pixels."
|
|
},
|
|
"right": {
|
|
"type": "number",
|
|
"description": "Right safe area inset in pixels."
|
|
},
|
|
"bottom": {
|
|
"type": "number",
|
|
"description": "Bottom safe area inset in pixels."
|
|
},
|
|
"left": {
|
|
"type": "number",
|
|
"description": "Left safe area inset in pixels."
|
|
}
|
|
},
|
|
"required": ["top", "right", "bottom", "left"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": {},
|
|
"description": "Partial context update containing only changed fields."
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiHostContext": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"toolInfo": {
|
|
"description": "Metadata of the tool call that instantiated this App.",
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"description": "JSON-RPC id of the tools/call request.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": -9007199254740991,
|
|
"maximum": 9007199254740991
|
|
}
|
|
]
|
|
},
|
|
"tool": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"icons": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"src": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"sizes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"enum": ["light", "dark"]
|
|
}
|
|
},
|
|
"required": ["src"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "object"
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"required": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": ["type"],
|
|
"additionalProperties": {}
|
|
},
|
|
"outputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "object"
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"required": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": ["type"],
|
|
"additionalProperties": {}
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"readOnlyHint": {
|
|
"type": "boolean"
|
|
},
|
|
"destructiveHint": {
|
|
"type": "boolean"
|
|
},
|
|
"idempotentHint": {
|
|
"type": "boolean"
|
|
},
|
|
"openWorldHint": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"execution": {
|
|
"type": "object",
|
|
"properties": {
|
|
"taskSupport": {
|
|
"type": "string",
|
|
"enum": ["required", "optional", "forbidden"]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["name", "inputSchema"],
|
|
"additionalProperties": false,
|
|
"description": "Tool definition including name, inputSchema, etc."
|
|
}
|
|
},
|
|
"required": ["tool"],
|
|
"additionalProperties": false
|
|
},
|
|
"theme": {
|
|
"description": "Current color theme preference.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "light"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "dark"
|
|
}
|
|
]
|
|
},
|
|
"styles": {
|
|
"description": "Style configuration for theming the app.",
|
|
"type": "object",
|
|
"properties": {
|
|
"variables": {
|
|
"description": "CSS variables for theming the app.",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-sans"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-mono"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-normal"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-medium"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-semibold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-bold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xs"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-lg"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xl"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-full"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-width-regular"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-hairline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-lg"
|
|
}
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{}
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"required": [
|
|
"--color-background-primary",
|
|
"--color-background-secondary",
|
|
"--color-background-tertiary",
|
|
"--color-background-inverse",
|
|
"--color-background-ghost",
|
|
"--color-background-info",
|
|
"--color-background-danger",
|
|
"--color-background-success",
|
|
"--color-background-warning",
|
|
"--color-background-disabled",
|
|
"--color-text-primary",
|
|
"--color-text-secondary",
|
|
"--color-text-tertiary",
|
|
"--color-text-inverse",
|
|
"--color-text-ghost",
|
|
"--color-text-info",
|
|
"--color-text-danger",
|
|
"--color-text-success",
|
|
"--color-text-warning",
|
|
"--color-text-disabled",
|
|
"--color-border-primary",
|
|
"--color-border-secondary",
|
|
"--color-border-tertiary",
|
|
"--color-border-inverse",
|
|
"--color-border-ghost",
|
|
"--color-border-info",
|
|
"--color-border-danger",
|
|
"--color-border-success",
|
|
"--color-border-warning",
|
|
"--color-border-disabled",
|
|
"--color-ring-primary",
|
|
"--color-ring-secondary",
|
|
"--color-ring-inverse",
|
|
"--color-ring-info",
|
|
"--color-ring-danger",
|
|
"--color-ring-success",
|
|
"--color-ring-warning",
|
|
"--font-sans",
|
|
"--font-mono",
|
|
"--font-weight-normal",
|
|
"--font-weight-medium",
|
|
"--font-weight-semibold",
|
|
"--font-weight-bold",
|
|
"--font-text-xs-size",
|
|
"--font-text-sm-size",
|
|
"--font-text-md-size",
|
|
"--font-text-lg-size",
|
|
"--font-heading-xs-size",
|
|
"--font-heading-sm-size",
|
|
"--font-heading-md-size",
|
|
"--font-heading-lg-size",
|
|
"--font-heading-xl-size",
|
|
"--font-heading-2xl-size",
|
|
"--font-heading-3xl-size",
|
|
"--font-text-xs-line-height",
|
|
"--font-text-sm-line-height",
|
|
"--font-text-md-line-height",
|
|
"--font-text-lg-line-height",
|
|
"--font-heading-xs-line-height",
|
|
"--font-heading-sm-line-height",
|
|
"--font-heading-md-line-height",
|
|
"--font-heading-lg-line-height",
|
|
"--font-heading-xl-line-height",
|
|
"--font-heading-2xl-line-height",
|
|
"--font-heading-3xl-line-height",
|
|
"--border-radius-xs",
|
|
"--border-radius-sm",
|
|
"--border-radius-md",
|
|
"--border-radius-lg",
|
|
"--border-radius-xl",
|
|
"--border-radius-full",
|
|
"--border-width-regular",
|
|
"--shadow-hairline",
|
|
"--shadow-sm",
|
|
"--shadow-md",
|
|
"--shadow-lg"
|
|
]
|
|
},
|
|
"css": {
|
|
"description": "CSS blocks that apps can inject.",
|
|
"type": "object",
|
|
"properties": {
|
|
"fonts": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"displayMode": {
|
|
"description": "How the UI is currently displayed.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
]
|
|
},
|
|
"availableDisplayModes": {
|
|
"description": "Display modes the host supports.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
],
|
|
"description": "Display mode for UI presentation."
|
|
}
|
|
},
|
|
"containerDimensions": {
|
|
"description": "Container dimensions. Represents the dimensions of the iframe or other\ncontainer holding the app. Specify either width or maxWidth, and either height or maxHeight.",
|
|
"allOf": [
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"height": {
|
|
"type": "number",
|
|
"description": "Fixed container height in pixels."
|
|
}
|
|
},
|
|
"required": ["height"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"maxHeight": {
|
|
"description": "Maximum container height in pixels.",
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"width": {
|
|
"type": "number",
|
|
"description": "Fixed container width in pixels."
|
|
}
|
|
},
|
|
"required": ["width"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"maxWidth": {
|
|
"description": "Maximum container width in pixels.",
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"locale": {
|
|
"description": "User's language and region preference in BCP 47 format.",
|
|
"type": "string"
|
|
},
|
|
"timeZone": {
|
|
"description": "User's timezone in IANA format.",
|
|
"type": "string"
|
|
},
|
|
"userAgent": {
|
|
"description": "Host application identifier.",
|
|
"type": "string"
|
|
},
|
|
"platform": {
|
|
"description": "Platform type for responsive design decisions.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "web"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "desktop"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "mobile"
|
|
}
|
|
]
|
|
},
|
|
"deviceCapabilities": {
|
|
"description": "Device input capabilities.",
|
|
"type": "object",
|
|
"properties": {
|
|
"touch": {
|
|
"description": "Whether the device supports touch input.",
|
|
"type": "boolean"
|
|
},
|
|
"hover": {
|
|
"description": "Whether the device supports hover interactions.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"safeAreaInsets": {
|
|
"description": "Mobile safe area boundaries in pixels.",
|
|
"type": "object",
|
|
"properties": {
|
|
"top": {
|
|
"type": "number",
|
|
"description": "Top safe area inset in pixels."
|
|
},
|
|
"right": {
|
|
"type": "number",
|
|
"description": "Right safe area inset in pixels."
|
|
},
|
|
"bottom": {
|
|
"type": "number",
|
|
"description": "Bottom safe area inset in pixels."
|
|
},
|
|
"left": {
|
|
"type": "number",
|
|
"description": "Left safe area inset in pixels."
|
|
}
|
|
},
|
|
"required": ["top", "right", "bottom", "left"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"McpUiHostCss": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"fonts": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiHostStyles": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"variables": {
|
|
"description": "CSS variables for theming the app.",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-sans"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-mono"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-normal"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-medium"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-semibold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-bold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xs"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-lg"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xl"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-full"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-width-regular"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-hairline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-lg"
|
|
}
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{}
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"required": [
|
|
"--color-background-primary",
|
|
"--color-background-secondary",
|
|
"--color-background-tertiary",
|
|
"--color-background-inverse",
|
|
"--color-background-ghost",
|
|
"--color-background-info",
|
|
"--color-background-danger",
|
|
"--color-background-success",
|
|
"--color-background-warning",
|
|
"--color-background-disabled",
|
|
"--color-text-primary",
|
|
"--color-text-secondary",
|
|
"--color-text-tertiary",
|
|
"--color-text-inverse",
|
|
"--color-text-ghost",
|
|
"--color-text-info",
|
|
"--color-text-danger",
|
|
"--color-text-success",
|
|
"--color-text-warning",
|
|
"--color-text-disabled",
|
|
"--color-border-primary",
|
|
"--color-border-secondary",
|
|
"--color-border-tertiary",
|
|
"--color-border-inverse",
|
|
"--color-border-ghost",
|
|
"--color-border-info",
|
|
"--color-border-danger",
|
|
"--color-border-success",
|
|
"--color-border-warning",
|
|
"--color-border-disabled",
|
|
"--color-ring-primary",
|
|
"--color-ring-secondary",
|
|
"--color-ring-inverse",
|
|
"--color-ring-info",
|
|
"--color-ring-danger",
|
|
"--color-ring-success",
|
|
"--color-ring-warning",
|
|
"--font-sans",
|
|
"--font-mono",
|
|
"--font-weight-normal",
|
|
"--font-weight-medium",
|
|
"--font-weight-semibold",
|
|
"--font-weight-bold",
|
|
"--font-text-xs-size",
|
|
"--font-text-sm-size",
|
|
"--font-text-md-size",
|
|
"--font-text-lg-size",
|
|
"--font-heading-xs-size",
|
|
"--font-heading-sm-size",
|
|
"--font-heading-md-size",
|
|
"--font-heading-lg-size",
|
|
"--font-heading-xl-size",
|
|
"--font-heading-2xl-size",
|
|
"--font-heading-3xl-size",
|
|
"--font-text-xs-line-height",
|
|
"--font-text-sm-line-height",
|
|
"--font-text-md-line-height",
|
|
"--font-text-lg-line-height",
|
|
"--font-heading-xs-line-height",
|
|
"--font-heading-sm-line-height",
|
|
"--font-heading-md-line-height",
|
|
"--font-heading-lg-line-height",
|
|
"--font-heading-xl-line-height",
|
|
"--font-heading-2xl-line-height",
|
|
"--font-heading-3xl-line-height",
|
|
"--border-radius-xs",
|
|
"--border-radius-sm",
|
|
"--border-radius-md",
|
|
"--border-radius-lg",
|
|
"--border-radius-xl",
|
|
"--border-radius-full",
|
|
"--border-width-regular",
|
|
"--shadow-hairline",
|
|
"--shadow-sm",
|
|
"--shadow-md",
|
|
"--shadow-lg"
|
|
]
|
|
},
|
|
"css": {
|
|
"description": "CSS blocks that apps can inject.",
|
|
"type": "object",
|
|
"properties": {
|
|
"fonts": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiInitializeRequest": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/initialize"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"appInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"icons": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"src": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"sizes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"enum": ["light", "dark"]
|
|
}
|
|
},
|
|
"required": ["src"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
},
|
|
"websiteUrl": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["name", "version"],
|
|
"additionalProperties": false,
|
|
"description": "App identification (name and version)."
|
|
},
|
|
"appCapabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"experimental": {
|
|
"description": "Experimental features keyed by identifier.",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {},
|
|
"description": "Experimental features keyed by identifier."
|
|
}
|
|
},
|
|
"tools": {
|
|
"description": "App exposes MCP-style tools that the host can call.",
|
|
"type": "object",
|
|
"properties": {
|
|
"listChanged": {
|
|
"description": "App supports tools/list_changed notifications.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"availableDisplayModes": {
|
|
"description": "Display modes the app supports.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
],
|
|
"description": "Display mode for UI presentation."
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "Features and capabilities this app provides."
|
|
},
|
|
"protocolVersion": {
|
|
"type": "string",
|
|
"description": "Protocol version this app supports."
|
|
}
|
|
},
|
|
"required": ["appInfo", "appCapabilities", "protocolVersion"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiInitializeResult": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"protocolVersion": {
|
|
"type": "string",
|
|
"description": "Negotiated protocol version string (e.g., \"2025-11-21\")."
|
|
},
|
|
"hostInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"icons": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"src": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"sizes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"enum": ["light", "dark"]
|
|
}
|
|
},
|
|
"required": ["src"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
},
|
|
"websiteUrl": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["name", "version"],
|
|
"additionalProperties": false,
|
|
"description": "Host application identification and version."
|
|
},
|
|
"hostCapabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"experimental": {
|
|
"description": "Experimental features keyed by identifier.",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {},
|
|
"description": "Experimental features keyed by identifier."
|
|
}
|
|
},
|
|
"openLinks": {
|
|
"description": "Host supports opening external URLs.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"downloadFile": {
|
|
"description": "Host supports file downloads via ui/download-file.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"serverTools": {
|
|
"description": "Host can proxy tool calls to the MCP server.",
|
|
"type": "object",
|
|
"properties": {
|
|
"listChanged": {
|
|
"description": "Host supports tools/list_changed notifications.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"serverResources": {
|
|
"description": "Host can proxy resource reads to the MCP server.",
|
|
"type": "object",
|
|
"properties": {
|
|
"listChanged": {
|
|
"description": "Host supports resources/list_changed notifications.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"logging": {
|
|
"description": "Host accepts log messages.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"sandbox": {
|
|
"description": "Sandbox configuration applied by the host.",
|
|
"type": "object",
|
|
"properties": {
|
|
"permissions": {
|
|
"description": "Permissions granted by the host (camera, microphone, geolocation).",
|
|
"type": "object",
|
|
"properties": {
|
|
"camera": {
|
|
"description": "Request camera access.\n\nMaps to Permission Policy `camera` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"microphone": {
|
|
"description": "Request microphone access.\n\nMaps to Permission Policy `microphone` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"geolocation": {
|
|
"description": "Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"clipboardWrite": {
|
|
"description": "Request clipboard write access.\n\nMaps to Permission Policy `clipboard-write` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"csp": {
|
|
"description": "CSP domains approved by the host.",
|
|
"type": "object",
|
|
"properties": {
|
|
"connectDomains": {
|
|
"description": "Origins for network requests (fetch/XHR/WebSocket).\n\n- Maps to CSP `connect-src` directive\n- Empty or omitted → no network connections (secure default)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"resourceDomains": {
|
|
"description": "Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"frameDomains": {
|
|
"description": "Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"baseUriDomains": {
|
|
"description": "Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"updateModelContext": {
|
|
"description": "Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns.",
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"description": "Host supports text content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"image": {
|
|
"description": "Host supports image content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"audio": {
|
|
"description": "Host supports audio content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"resource": {
|
|
"description": "Host supports resource content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"resourceLink": {
|
|
"description": "Host supports resource link content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"structuredContent": {
|
|
"description": "Host supports structured content.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"message": {
|
|
"description": "Host supports receiving content messages (ui/message) from the view.",
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"description": "Host supports text content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"image": {
|
|
"description": "Host supports image content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"audio": {
|
|
"description": "Host supports audio content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"resource": {
|
|
"description": "Host supports resource content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"resourceLink": {
|
|
"description": "Host supports resource link content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"structuredContent": {
|
|
"description": "Host supports structured content.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"sampling": {
|
|
"description": "Host supports LLM sampling (sampling/createMessage) from the view.\nMirrors the MCP `ClientCapabilities.sampling` shape so hosts can pass it through.",
|
|
"type": "object",
|
|
"properties": {
|
|
"tools": {
|
|
"description": "Host supports tool use via `tools` and `toolChoice` parameters.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"description": "Features and capabilities provided by the host."
|
|
},
|
|
"hostContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"toolInfo": {
|
|
"description": "Metadata of the tool call that instantiated this App.",
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"description": "JSON-RPC id of the tools/call request.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": -9007199254740991,
|
|
"maximum": 9007199254740991
|
|
}
|
|
]
|
|
},
|
|
"tool": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"icons": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"src": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"sizes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"enum": ["light", "dark"]
|
|
}
|
|
},
|
|
"required": ["src"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "object"
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"required": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": ["type"],
|
|
"additionalProperties": {}
|
|
},
|
|
"outputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "object"
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"required": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": ["type"],
|
|
"additionalProperties": {}
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"readOnlyHint": {
|
|
"type": "boolean"
|
|
},
|
|
"destructiveHint": {
|
|
"type": "boolean"
|
|
},
|
|
"idempotentHint": {
|
|
"type": "boolean"
|
|
},
|
|
"openWorldHint": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"execution": {
|
|
"type": "object",
|
|
"properties": {
|
|
"taskSupport": {
|
|
"type": "string",
|
|
"enum": ["required", "optional", "forbidden"]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["name", "inputSchema"],
|
|
"additionalProperties": false,
|
|
"description": "Tool definition including name, inputSchema, etc."
|
|
}
|
|
},
|
|
"required": ["tool"],
|
|
"additionalProperties": false
|
|
},
|
|
"theme": {
|
|
"description": "Current color theme preference.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "light"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "dark"
|
|
}
|
|
]
|
|
},
|
|
"styles": {
|
|
"description": "Style configuration for theming the app.",
|
|
"type": "object",
|
|
"properties": {
|
|
"variables": {
|
|
"description": "CSS variables for theming the app.",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-sans"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-mono"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-normal"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-medium"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-semibold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-bold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xs"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-lg"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xl"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-full"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-width-regular"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-hairline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-lg"
|
|
}
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{}
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"required": [
|
|
"--color-background-primary",
|
|
"--color-background-secondary",
|
|
"--color-background-tertiary",
|
|
"--color-background-inverse",
|
|
"--color-background-ghost",
|
|
"--color-background-info",
|
|
"--color-background-danger",
|
|
"--color-background-success",
|
|
"--color-background-warning",
|
|
"--color-background-disabled",
|
|
"--color-text-primary",
|
|
"--color-text-secondary",
|
|
"--color-text-tertiary",
|
|
"--color-text-inverse",
|
|
"--color-text-ghost",
|
|
"--color-text-info",
|
|
"--color-text-danger",
|
|
"--color-text-success",
|
|
"--color-text-warning",
|
|
"--color-text-disabled",
|
|
"--color-border-primary",
|
|
"--color-border-secondary",
|
|
"--color-border-tertiary",
|
|
"--color-border-inverse",
|
|
"--color-border-ghost",
|
|
"--color-border-info",
|
|
"--color-border-danger",
|
|
"--color-border-success",
|
|
"--color-border-warning",
|
|
"--color-border-disabled",
|
|
"--color-ring-primary",
|
|
"--color-ring-secondary",
|
|
"--color-ring-inverse",
|
|
"--color-ring-info",
|
|
"--color-ring-danger",
|
|
"--color-ring-success",
|
|
"--color-ring-warning",
|
|
"--font-sans",
|
|
"--font-mono",
|
|
"--font-weight-normal",
|
|
"--font-weight-medium",
|
|
"--font-weight-semibold",
|
|
"--font-weight-bold",
|
|
"--font-text-xs-size",
|
|
"--font-text-sm-size",
|
|
"--font-text-md-size",
|
|
"--font-text-lg-size",
|
|
"--font-heading-xs-size",
|
|
"--font-heading-sm-size",
|
|
"--font-heading-md-size",
|
|
"--font-heading-lg-size",
|
|
"--font-heading-xl-size",
|
|
"--font-heading-2xl-size",
|
|
"--font-heading-3xl-size",
|
|
"--font-text-xs-line-height",
|
|
"--font-text-sm-line-height",
|
|
"--font-text-md-line-height",
|
|
"--font-text-lg-line-height",
|
|
"--font-heading-xs-line-height",
|
|
"--font-heading-sm-line-height",
|
|
"--font-heading-md-line-height",
|
|
"--font-heading-lg-line-height",
|
|
"--font-heading-xl-line-height",
|
|
"--font-heading-2xl-line-height",
|
|
"--font-heading-3xl-line-height",
|
|
"--border-radius-xs",
|
|
"--border-radius-sm",
|
|
"--border-radius-md",
|
|
"--border-radius-lg",
|
|
"--border-radius-xl",
|
|
"--border-radius-full",
|
|
"--border-width-regular",
|
|
"--shadow-hairline",
|
|
"--shadow-sm",
|
|
"--shadow-md",
|
|
"--shadow-lg"
|
|
]
|
|
},
|
|
"css": {
|
|
"description": "CSS blocks that apps can inject.",
|
|
"type": "object",
|
|
"properties": {
|
|
"fonts": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"displayMode": {
|
|
"description": "How the UI is currently displayed.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
]
|
|
},
|
|
"availableDisplayModes": {
|
|
"description": "Display modes the host supports.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
],
|
|
"description": "Display mode for UI presentation."
|
|
}
|
|
},
|
|
"containerDimensions": {
|
|
"description": "Container dimensions. Represents the dimensions of the iframe or other\ncontainer holding the app. Specify either width or maxWidth, and either height or maxHeight.",
|
|
"allOf": [
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"height": {
|
|
"type": "number",
|
|
"description": "Fixed container height in pixels."
|
|
}
|
|
},
|
|
"required": ["height"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"maxHeight": {
|
|
"description": "Maximum container height in pixels.",
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"width": {
|
|
"type": "number",
|
|
"description": "Fixed container width in pixels."
|
|
}
|
|
},
|
|
"required": ["width"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"maxWidth": {
|
|
"description": "Maximum container width in pixels.",
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"locale": {
|
|
"description": "User's language and region preference in BCP 47 format.",
|
|
"type": "string"
|
|
},
|
|
"timeZone": {
|
|
"description": "User's timezone in IANA format.",
|
|
"type": "string"
|
|
},
|
|
"userAgent": {
|
|
"description": "Host application identifier.",
|
|
"type": "string"
|
|
},
|
|
"platform": {
|
|
"description": "Platform type for responsive design decisions.",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "web"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "desktop"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "mobile"
|
|
}
|
|
]
|
|
},
|
|
"deviceCapabilities": {
|
|
"description": "Device input capabilities.",
|
|
"type": "object",
|
|
"properties": {
|
|
"touch": {
|
|
"description": "Whether the device supports touch input.",
|
|
"type": "boolean"
|
|
},
|
|
"hover": {
|
|
"description": "Whether the device supports hover interactions.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"safeAreaInsets": {
|
|
"description": "Mobile safe area boundaries in pixels.",
|
|
"type": "object",
|
|
"properties": {
|
|
"top": {
|
|
"type": "number",
|
|
"description": "Top safe area inset in pixels."
|
|
},
|
|
"right": {
|
|
"type": "number",
|
|
"description": "Right safe area inset in pixels."
|
|
},
|
|
"bottom": {
|
|
"type": "number",
|
|
"description": "Bottom safe area inset in pixels."
|
|
},
|
|
"left": {
|
|
"type": "number",
|
|
"description": "Left safe area inset in pixels."
|
|
}
|
|
},
|
|
"required": ["top", "right", "bottom", "left"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": {},
|
|
"description": "Rich context about the host environment."
|
|
}
|
|
},
|
|
"required": [
|
|
"protocolVersion",
|
|
"hostInfo",
|
|
"hostCapabilities",
|
|
"hostContext"
|
|
],
|
|
"additionalProperties": {}
|
|
},
|
|
"McpUiInitializedNotification": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/notifications/initialized"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiMessageRequest": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/message"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"role": {
|
|
"type": "string",
|
|
"const": "user",
|
|
"description": "Message role, currently only \"user\" is supported."
|
|
},
|
|
"content": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "text"
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "text"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "image"
|
|
},
|
|
"data": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "data", "mimeType"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "audio"
|
|
},
|
|
"data": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "data", "mimeType"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"icons": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"src": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"sizes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"enum": ["light", "dark"]
|
|
}
|
|
},
|
|
"required": ["src"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"type": "number"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": {}
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "resource_link"
|
|
}
|
|
},
|
|
"required": ["name", "uri", "type"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "resource"
|
|
},
|
|
"resource": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["uri", "text"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"blob": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["uri", "blob"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "resource"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"description": "Message content blocks (text, image, etc.)."
|
|
}
|
|
},
|
|
"required": ["role", "content"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiMessageResult": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"isError": {
|
|
"description": "True if the host rejected or failed to deliver the message.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"McpUiOpenLinkRequest": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/open-link"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"url": {
|
|
"type": "string",
|
|
"description": "URL to open in the host's browser"
|
|
}
|
|
},
|
|
"required": ["url"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiOpenLinkResult": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"isError": {
|
|
"description": "True if the host failed to open the URL (e.g., due to security policy).",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"McpUiRequestDisplayModeRequest": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/request-display-mode"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mode": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
],
|
|
"description": "The display mode being requested."
|
|
}
|
|
},
|
|
"required": ["mode"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiRequestDisplayModeResult": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"mode": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "inline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "fullscreen"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "pip"
|
|
}
|
|
],
|
|
"description": "The display mode that was actually set. May differ from requested if not supported."
|
|
}
|
|
},
|
|
"required": ["mode"],
|
|
"additionalProperties": {}
|
|
},
|
|
"McpUiRequestTeardownNotification": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/notifications/request-teardown"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiResourceCsp": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"connectDomains": {
|
|
"description": "Origins for network requests (fetch/XHR/WebSocket).\n\n- Maps to CSP `connect-src` directive\n- Empty or omitted → no network connections (secure default)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"resourceDomains": {
|
|
"description": "Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"frameDomains": {
|
|
"description": "Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"baseUriDomains": {
|
|
"description": "Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiResourceMeta": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"csp": {
|
|
"description": "Content Security Policy configuration for UI resources.",
|
|
"type": "object",
|
|
"properties": {
|
|
"connectDomains": {
|
|
"description": "Origins for network requests (fetch/XHR/WebSocket).\n\n- Maps to CSP `connect-src` directive\n- Empty or omitted → no network connections (secure default)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"resourceDomains": {
|
|
"description": "Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"frameDomains": {
|
|
"description": "Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"baseUriDomains": {
|
|
"description": "Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"permissions": {
|
|
"description": "Sandbox permissions requested by the UI resource.",
|
|
"type": "object",
|
|
"properties": {
|
|
"camera": {
|
|
"description": "Request camera access.\n\nMaps to Permission Policy `camera` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"microphone": {
|
|
"description": "Request microphone access.\n\nMaps to Permission Policy `microphone` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"geolocation": {
|
|
"description": "Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"clipboardWrite": {
|
|
"description": "Request clipboard write access.\n\nMaps to Permission Policy `clipboard-write` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"domain": {
|
|
"description": "Dedicated origin for view sandbox.\n\nUseful when views need stable, dedicated origins for OAuth callbacks, CORS policies, or API key allowlists.\n\n**Host-dependent:** The format and validation rules for this field are determined by each host. Servers MUST consult host-specific documentation for the expected domain format. Common patterns include:\n- Hash-based subdomains (e.g., `{hash}.claudemcpcontent.com`)\n- URL-derived subdomains (e.g., `www-example-com.oaiusercontent.com`)\n\nIf omitted, host uses default sandbox origin (typically per-conversation).",
|
|
"type": "string"
|
|
},
|
|
"prefersBorder": {
|
|
"description": "Visual boundary preference - true if view prefers a visible border.\n\nBoolean requesting whether a visible border and background is provided by the host. Specifying an explicit value for this is recommended because hosts' defaults may vary.\n\n- `true`: request visible border + background\n- `false`: request no visible border + background\n- omitted: host decides border",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiResourcePermissions": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"camera": {
|
|
"description": "Request camera access.\n\nMaps to Permission Policy `camera` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"microphone": {
|
|
"description": "Request microphone access.\n\nMaps to Permission Policy `microphone` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"geolocation": {
|
|
"description": "Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"clipboardWrite": {
|
|
"description": "Request clipboard write access.\n\nMaps to Permission Policy `clipboard-write` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiResourceTeardownRequest": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/resource-teardown"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiResourceTeardownResult": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"McpUiSandboxProxyReadyNotification": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/notifications/sandbox-proxy-ready"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiSandboxResourceReadyNotification": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/notifications/sandbox-resource-ready"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"html": {
|
|
"type": "string",
|
|
"description": "HTML content to load into the inner iframe."
|
|
},
|
|
"sandbox": {
|
|
"description": "Optional override for the inner iframe's sandbox attribute.",
|
|
"type": "string"
|
|
},
|
|
"csp": {
|
|
"description": "CSP configuration from resource metadata.",
|
|
"type": "object",
|
|
"properties": {
|
|
"connectDomains": {
|
|
"description": "Origins for network requests (fetch/XHR/WebSocket).\n\n- Maps to CSP `connect-src` directive\n- Empty or omitted → no network connections (secure default)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"resourceDomains": {
|
|
"description": "Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"frameDomains": {
|
|
"description": "Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"baseUriDomains": {
|
|
"description": "Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"permissions": {
|
|
"description": "Sandbox permissions from resource metadata.",
|
|
"type": "object",
|
|
"properties": {
|
|
"camera": {
|
|
"description": "Request camera access.\n\nMaps to Permission Policy `camera` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"microphone": {
|
|
"description": "Request microphone access.\n\nMaps to Permission Policy `microphone` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"geolocation": {
|
|
"description": "Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"clipboardWrite": {
|
|
"description": "Request clipboard write access.\n\nMaps to Permission Policy `clipboard-write` feature.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["html"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiSizeChangedNotification": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/notifications/size-changed"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"width": {
|
|
"description": "New width in pixels.",
|
|
"type": "number"
|
|
},
|
|
"height": {
|
|
"description": "New height in pixels.",
|
|
"type": "number"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiStyleVariableKey": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-sans"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-mono"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-normal"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-medium"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-semibold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-bold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xs"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-lg"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xl"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-full"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-width-regular"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-hairline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-lg"
|
|
}
|
|
],
|
|
"description": "CSS variable keys available to MCP apps for theming."
|
|
},
|
|
"McpUiStyles": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-background-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-text-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-tertiary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-ghost"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-border-disabled"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-primary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-secondary"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-inverse"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-info"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-danger"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-success"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--color-ring-warning"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-sans"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-mono"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-normal"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-medium"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-semibold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-weight-bold"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-size"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-text-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xs-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-sm-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-md-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-lg-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-2xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--font-heading-3xl-line-height"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xs"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-lg"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-xl"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-radius-full"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--border-width-regular"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-hairline"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-sm"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-md"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "--shadow-lg"
|
|
}
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{}
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"required": [
|
|
"--color-background-primary",
|
|
"--color-background-secondary",
|
|
"--color-background-tertiary",
|
|
"--color-background-inverse",
|
|
"--color-background-ghost",
|
|
"--color-background-info",
|
|
"--color-background-danger",
|
|
"--color-background-success",
|
|
"--color-background-warning",
|
|
"--color-background-disabled",
|
|
"--color-text-primary",
|
|
"--color-text-secondary",
|
|
"--color-text-tertiary",
|
|
"--color-text-inverse",
|
|
"--color-text-ghost",
|
|
"--color-text-info",
|
|
"--color-text-danger",
|
|
"--color-text-success",
|
|
"--color-text-warning",
|
|
"--color-text-disabled",
|
|
"--color-border-primary",
|
|
"--color-border-secondary",
|
|
"--color-border-tertiary",
|
|
"--color-border-inverse",
|
|
"--color-border-ghost",
|
|
"--color-border-info",
|
|
"--color-border-danger",
|
|
"--color-border-success",
|
|
"--color-border-warning",
|
|
"--color-border-disabled",
|
|
"--color-ring-primary",
|
|
"--color-ring-secondary",
|
|
"--color-ring-inverse",
|
|
"--color-ring-info",
|
|
"--color-ring-danger",
|
|
"--color-ring-success",
|
|
"--color-ring-warning",
|
|
"--font-sans",
|
|
"--font-mono",
|
|
"--font-weight-normal",
|
|
"--font-weight-medium",
|
|
"--font-weight-semibold",
|
|
"--font-weight-bold",
|
|
"--font-text-xs-size",
|
|
"--font-text-sm-size",
|
|
"--font-text-md-size",
|
|
"--font-text-lg-size",
|
|
"--font-heading-xs-size",
|
|
"--font-heading-sm-size",
|
|
"--font-heading-md-size",
|
|
"--font-heading-lg-size",
|
|
"--font-heading-xl-size",
|
|
"--font-heading-2xl-size",
|
|
"--font-heading-3xl-size",
|
|
"--font-text-xs-line-height",
|
|
"--font-text-sm-line-height",
|
|
"--font-text-md-line-height",
|
|
"--font-text-lg-line-height",
|
|
"--font-heading-xs-line-height",
|
|
"--font-heading-sm-line-height",
|
|
"--font-heading-md-line-height",
|
|
"--font-heading-lg-line-height",
|
|
"--font-heading-xl-line-height",
|
|
"--font-heading-2xl-line-height",
|
|
"--font-heading-3xl-line-height",
|
|
"--border-radius-xs",
|
|
"--border-radius-sm",
|
|
"--border-radius-md",
|
|
"--border-radius-lg",
|
|
"--border-radius-xl",
|
|
"--border-radius-full",
|
|
"--border-width-regular",
|
|
"--shadow-hairline",
|
|
"--shadow-sm",
|
|
"--shadow-md",
|
|
"--shadow-lg"
|
|
],
|
|
"description": "Style variables for theming MCP apps.\n\nIndividual style keys are optional - hosts may provide any subset of these values.\nValues are strings containing CSS values (colors, sizes, font stacks, etc.).\n\nNote: This type uses `Record<K, string | undefined>` rather than `Partial<Record<K, string>>`\nfor compatibility with Zod schema generation. Both are functionally equivalent for validation."
|
|
},
|
|
"McpUiSupportedContentBlockModalities": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"description": "Host supports text content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"image": {
|
|
"description": "Host supports image content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"audio": {
|
|
"description": "Host supports audio content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"resource": {
|
|
"description": "Host supports resource content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"resourceLink": {
|
|
"description": "Host supports resource link content blocks.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"structuredContent": {
|
|
"description": "Host supports structured content.",
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiTheme": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "light"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "dark"
|
|
}
|
|
],
|
|
"description": "Color theme preference for the host environment."
|
|
},
|
|
"McpUiToolCancelledNotification": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/notifications/tool-cancelled"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"reason": {
|
|
"description": "Optional reason for the cancellation (e.g., \"user action\", \"timeout\").",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiToolInputNotification": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/notifications/tool-input"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"arguments": {
|
|
"description": "Complete tool call arguments as key-value pairs.",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {
|
|
"description": "Complete tool call arguments as key-value pairs."
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiToolInputPartialNotification": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/notifications/tool-input-partial"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"arguments": {
|
|
"description": "Partial tool call arguments (incomplete, may change).",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {
|
|
"description": "Partial tool call arguments (incomplete, may change)."
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiToolMeta": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"resourceUri": {
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"description": "Who can access this tool. Default: [\"model\", \"app\"]\n- \"model\": Tool visible to and callable by the agent\n- \"app\": Tool callable by the app from this server only",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "model"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "app"
|
|
}
|
|
],
|
|
"description": "Tool visibility scope - who can access the tool."
|
|
}
|
|
},
|
|
"csp": {
|
|
"not": {}
|
|
},
|
|
"permissions": {
|
|
"not": {}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiToolResultNotification": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/notifications/tool-result"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"_meta": {
|
|
"type": "object",
|
|
"properties": {
|
|
"progressToken": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": -9007199254740991,
|
|
"maximum": 9007199254740991
|
|
}
|
|
]
|
|
},
|
|
"io.modelcontextprotocol/related-task": {
|
|
"type": "object",
|
|
"properties": {
|
|
"taskId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["taskId"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"content": {
|
|
"default": [],
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "text"
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "text"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "image"
|
|
},
|
|
"data": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "data", "mimeType"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "audio"
|
|
},
|
|
"data": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "data", "mimeType"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"icons": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"src": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"sizes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"enum": ["light", "dark"]
|
|
}
|
|
},
|
|
"required": ["src"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"type": "number"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": {}
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "resource_link"
|
|
}
|
|
},
|
|
"required": ["name", "uri", "type"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "resource"
|
|
},
|
|
"resource": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["uri", "text"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"blob": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["uri", "blob"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "resource"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"structuredContent": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"isError": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": ["content"],
|
|
"additionalProperties": {},
|
|
"description": "Standard MCP tool execution result."
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
},
|
|
"McpUiToolVisibility": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"const": "model"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"const": "app"
|
|
}
|
|
],
|
|
"description": "Tool visibility scope - who can access the tool."
|
|
},
|
|
"McpUiUpdateModelContextRequest": {
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"const": "ui/update-model-context"
|
|
},
|
|
"params": {
|
|
"type": "object",
|
|
"properties": {
|
|
"content": {
|
|
"description": "Context content blocks (text, image, etc.).",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "text"
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "text"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "image"
|
|
},
|
|
"data": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "data", "mimeType"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "audio"
|
|
},
|
|
"data": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "data", "mimeType"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"icons": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"src": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"sizes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"theme": {
|
|
"type": "string",
|
|
"enum": ["light", "dark"]
|
|
}
|
|
},
|
|
"required": ["src"],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"type": "number"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": {}
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"const": "resource_link"
|
|
}
|
|
},
|
|
"required": ["name", "uri", "type"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "resource"
|
|
},
|
|
"resource": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["uri", "text"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"blob": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["uri", "blob"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"properties": {
|
|
"audience": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["user", "assistant"]
|
|
}
|
|
},
|
|
"priority": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"lastModified": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["type", "resource"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"structuredContent": {
|
|
"description": "Structured content for machine-readable context data.",
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": {
|
|
"description": "Structured content for machine-readable context data."
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": ["method", "params"],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|