| { |
| "$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 (structure TBD).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "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 |
| } |
| }, |
| "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." |
| }, |
| "McpUiHostCapabilities": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "type": "object", |
| "properties": { |
| "experimental": { |
| "description": "Experimental features (structure TBD).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "openLinks": { |
| "description": "Host supports opening external URLs.", |
| "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 (Permission Policy `camera` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "microphone": { |
| "description": "Request microphone access (Permission Policy `microphone` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "geolocation": { |
| "description": "Request geolocation access (Permission Policy `geolocation` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "clipboardWrite": { |
| "description": "Request clipboard write access (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).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "resourceDomains": { |
| "description": "Origins for static resources (scripts, images, styles, fonts).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "frameDomains": { |
| "description": "Origins for nested iframes (frame-src directive).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "baseUriDomains": { |
| "description": "Allowed base URIs for the document (base-uri directive).", |
| "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 Guest UI.", |
| "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 |
| } |
| }, |
| "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-text-ghost" |
| }, |
| { |
| "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": { |
| "type": "string" |
| } |
| }, |
| "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-text-ghost" |
| }, |
| { |
| "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": { |
| "type": "string" |
| } |
| }, |
| "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-text-ghost" |
| }, |
| { |
| "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 (structure TBD).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "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 |
| } |
| }, |
| "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 (structure TBD).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "openLinks": { |
| "description": "Host supports opening external URLs.", |
| "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 (Permission Policy `camera` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "microphone": { |
| "description": "Request microphone access (Permission Policy `microphone` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "geolocation": { |
| "description": "Request geolocation access (Permission Policy `geolocation` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "clipboardWrite": { |
| "description": "Request clipboard write access (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).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "resourceDomains": { |
| "description": "Origins for static resources (scripts, images, styles, fonts).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "frameDomains": { |
| "description": "Origins for nested iframes (frame-src directive).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "baseUriDomains": { |
| "description": "Allowed base URIs for the document (base-uri directive).", |
| "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 Guest UI.", |
| "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 |
| } |
| }, |
| "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-text-ghost" |
| }, |
| { |
| "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": { |
| "type": "string" |
| } |
| }, |
| "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" |
| }, |
| "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": {} |
| }, |
| "McpUiResourceCsp": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "type": "object", |
| "properties": { |
| "connectDomains": { |
| "description": "Origins for network requests (fetch/XHR/WebSocket).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "resourceDomains": { |
| "description": "Origins for static resources (scripts, images, styles, fonts).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "frameDomains": { |
| "description": "Origins for nested iframes (frame-src directive).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "baseUriDomains": { |
| "description": "Allowed base URIs for the document (base-uri directive).", |
| "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.", |
| "type": "object", |
| "properties": { |
| "connectDomains": { |
| "description": "Origins for network requests (fetch/XHR/WebSocket).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "resourceDomains": { |
| "description": "Origins for static resources (scripts, images, styles, fonts).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "frameDomains": { |
| "description": "Origins for nested iframes (frame-src directive).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "baseUriDomains": { |
| "description": "Allowed base URIs for the document (base-uri directive).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| } |
| }, |
| "additionalProperties": false |
| }, |
| "permissions": { |
| "description": "Sandbox permissions requested by the UI.", |
| "type": "object", |
| "properties": { |
| "camera": { |
| "description": "Request camera access (Permission Policy `camera` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "microphone": { |
| "description": "Request microphone access (Permission Policy `microphone` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "geolocation": { |
| "description": "Request geolocation access (Permission Policy `geolocation` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "clipboardWrite": { |
| "description": "Request clipboard write access (Permission Policy `clipboard-write` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| } |
| }, |
| "additionalProperties": false |
| }, |
| "domain": { |
| "description": "Dedicated origin for widget sandbox.", |
| "type": "string" |
| }, |
| "prefersBorder": { |
| "description": "Visual boundary preference - true if UI prefers a visible border.", |
| "type": "boolean" |
| } |
| }, |
| "additionalProperties": false |
| }, |
| "McpUiResourcePermissions": { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "type": "object", |
| "properties": { |
| "camera": { |
| "description": "Request camera access (Permission Policy `camera` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "microphone": { |
| "description": "Request microphone access (Permission Policy `microphone` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "geolocation": { |
| "description": "Request geolocation access (Permission Policy `geolocation` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "clipboardWrite": { |
| "description": "Request clipboard write access (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).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "resourceDomains": { |
| "description": "Origins for static resources (scripts, images, styles, fonts).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "frameDomains": { |
| "description": "Origins for nested iframes (frame-src directive).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "baseUriDomains": { |
| "description": "Allowed base URIs for the document (base-uri directive).", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| } |
| }, |
| "additionalProperties": false |
| }, |
| "permissions": { |
| "description": "Sandbox permissions from resource metadata.", |
| "type": "object", |
| "properties": { |
| "camera": { |
| "description": "Request camera access (Permission Policy `camera` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "microphone": { |
| "description": "Request microphone access (Permission Policy `microphone` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "geolocation": { |
| "description": "Request geolocation access (Permission Policy `geolocation` feature).", |
| "type": "object", |
| "properties": {}, |
| "additionalProperties": false |
| }, |
| "clipboardWrite": { |
| "description": "Request clipboard write access (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-text-ghost" |
| }, |
| { |
| "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-text-ghost" |
| }, |
| { |
| "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." |
| } |
| } |
| }, |
| "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" |
| }, |
| "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" |
| }, |
| "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 |
| } |
| } |
| } |
|
|