You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In catalogs/mcp/v1/catalog.json, the McpApp component schema sets "unevaluatedProperties": false and defines resourceUri, htmlContent, serverConfig, title, allowedTools, allowedFunctions, and data (lines 23–87), but omits height.
Meanwhile, SandboxedFrameElement in typescript/catalogs/shared/sandbox/sandboxed_frame_element.ts (line 29, frameHeightFromProp) and the Lit/Angular McpApp implementations expect an optional height property on the component to set the initial iframe height before dynamic ui/notifications/size-changed notifications arrive.
Strict JSON Schema validation against catalogs/mcp/v1/catalog.json fails because height is an unevaluated property.
Expected Behavior
catalogs/mcp/v1/catalog.json should declare an optional height property (number or string) on McpApp.properties matching SandboxedFrameElement.frameHeightFromProp.
Actual Behavior
height is rejected by catalogs/mcp/v1/catalog.json due to "unevaluatedProperties": false.
Suggested Fix
Add "height" ({ "type": ["number", "string"], "description": "Optional initial height of the sandboxed iframe in pixels." }) to components.McpApp.properties in catalogs/mcp/v1/catalog.json.
Closing as by design: SandboxedFrameElement is shared between @a2ui/catalog-iframe (WebAppFrameSrcdoc / WebAppFrameUrl, which accept a height property and use frameHeightFromProp) and @a2ui/catalog-mcp (McpApp). Per the MCP Apps specification and catalogs/mcp/v1/mcp_app_specification.md, McpApp intentionally has no height property because MCP apps dynamically negotiate their dimensions via ui/notifications/size-changed (with the initial default height controlled by the --a2ui-sandboxed-frame-height CSS custom property, as documented in PR #2799 and PR #2803).
Activity
josemontespg commentedon Oct 23, 2026
Closing as by design:
SandboxedFrameElementis shared between@a2ui/catalog-iframe(WebAppFrameSrcdoc/WebAppFrameUrl, which accept aheightproperty and useframeHeightFromProp) and@a2ui/catalog-mcp(McpApp). Per the MCP Apps specification andcatalogs/mcp/v1/mcp_app_specification.md,McpAppintentionally has noheightproperty because MCP apps dynamically negotiate their dimensions viaui/notifications/size-changed(with the initial default height controlled by the--a2ui-sandboxed-frame-heightCSS custom property, as documented in PR #2799 and PR #2803).