{"ref":"content:ui5-has-entered-the-chat-building-interactive-mcp-apps-for-sap","page":"/content/ui5-has-entered-the-chat-building-interactive-mcp-apps-for-sap","json":"/content/ui5-has-entered-the-chat-building-interactive-mcp-apps-for-sap.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"ui5-has-entered-the-chat-building-interactive-mcp-apps-for-sap","title":"UI5 Has Entered the Chat: Building Interactive MCP Apps for SAP","url":"https://blog.zeis.de/posts/2026-07-13-ui5-mcp-apps/","content_type":"blog","explains":["capability:mcp-servers",{"ref":"capability:generative-ui","applies_to":{"ecosystems":["ui5"]}},"artifact:marianfoo-ui5con-2026-mcpapps"],"summary":"MCP Apps let an MCP tool point at a `ui://` resource that a compatible host renders in a sandboxed iframe, and the post walks through the five samples of [UI5con_2026_MCPApps](artifact:marianfoo-ui5con-2026-mcpapps), built with [Mike Zaschka](actor:mike-zaschka) for UI5con, from a plain HTML time tool through UI5 Web Components and UI Integration Cards to UI5 lint findings from [@ui5/mcp-server](artifact:ui5-mcp-server) and an [ARC-1](artifact:arc-mcp-arc-1) transport review. In the samples the model selects the tool and does not generate the interface, the prebuilt kind of [generative UI](capability:generative-ui), and the subject is the server side of [MCP servers](capability:mcp-servers): register the resource, link it from the tool's `_meta.ui.resourceUri`, return text `content` as a fallback beside `structuredContent`, call `callServerTool()` only for tools of the server that owns the app, and send a message to the host when another server such as ARC-1 has to act. It stops at the host, whose support differs by client and whose iframe sandbox is not a complete security model, and Joule support for MCP Apps could not be verified at the time of writing.","short":"Walkthrough of five UI5 MCP Apps samples from UI5con 2026","authors":["actor:marianfoo"],"published":"2026-07-13","offers":["concepts","tutorial","example"],"provenance":{"discovered_via":[{"source":"source:zeis"}],"first_seen":"2026-09-15"},"drafted_with_ai":true,"published_on":"source:zeis","history":[{"date":"2026-10-17","field":"explains","from":null,"to":"applies_to on capability:generative-ui","reason":"Door scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md)."}]},"readings":{"liveness":[{"label":"Checked against the source","tier":"unknown","evidence":"nobody has checked it"},{"label":"Source reachable","tier":"unknown","evidence":"not crawled"},{"label":"Age","tier":"good","evidence":"published 3 months ago"}],"compatibility":[{"label":"Version","tier":"unknown","evidence":"no version declared"},{"label":"Moved since?","tier":"good","evidence":"no recorded change after 2026-07-13"},{"label":"Findings","tier":"good","evidence":"none flagged"}],"reach":[{"value":null,"unit":"views"},{"value":null,"unit":"comments"},{"value":null,"unit":"likes"}]},"signals":null,"series":null,"edges":{"authors":[{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"}]}}