Iframes & Server-Driven UI vs MCP Apps, AG-UI & A2UI
Raw HTML <iframe> embeds & bespoke frontend widget SDKs is the classic web primitive built for human browsers and pre-integrated services (Embed third-party web pages or payment widgets inside a host web application), whereas MCP Apps and its step 8 (Present) peers provide the machine-native agentic surface (ui://<resource-id> (declared per-tool, not a fixed site-wide path)) so autonomous agents can answer: "How does an MCP tool deliver an interactive UI (chart, form, dashboard) that renders inline in a chat client?" Across the agenticweb.wiki conformance panel, MCP Apps is multi-implementation (multi-implementation in production).
How Iframes & Server-Driven UI compares to MCP Apps, AG-UI & A2UI at step 8 (Present): why the classic primitive breaks for software agents, and how sites deploy both together.
| Dimension | Raw HTML <iframe> embeds & bespoke frontend widget SDKs Classic web | MCP Apps MCP Apps Agentic web |
|---|---|---|
| Primary consumer | Human driving a web browser or pre-integrated developer code | Autonomous software agent, coding harness, or AI search/RAG crawler |
| Lifecycle step | Classic web baseline for step 8 (Present) | 8 Present: Show a human the result |
| Core question answered | Embed third-party web pages or payment widgets inside a host web application. | How does an MCP tool deliver an interactive UI (chart, form, dashboard) that renders inline in a chat client? |
| Wire format & entrypoint | <iframe src='...'> + custom window.postMessage scripts | endpoint at ui://<resource-id> (declared per-tool, not a fixed site-wide path) |
| Failure mode for agents | Plain text chat streams cannot safely render interactive forms, approval cards, or live state synchronization without either risking XSS injection or writing custom UI components for every tool. | Solved natively: MCP Apps is an extension to the Model Context Protocol (MCP) that lets an MCP server's tools declare an interactive UI — a chart, form, dashboard, or design canvas — that a compliant chat client renders inline, in the conversation, rather than as plain text or structured JSON. |
| Governance & status | Established IETF / W3C / industry baseline | modelcontextprotocol GitHub org (ext-apps sub-project); same umbrella as core MCP, which is now stewarded by the Agentic AI Foundation / Linux Foundation per this site's existing 'mcp' record — Active extension to MCP; own repo describes it as extending 'the Model Context Protocol by letting tools declare UI resources' |
| Live adoption (/check/ census) | Universal across the classic web | multi-implementation — multi-implementation in production |
| Primary specification | https://html.spec.whatwg.org/multipage/iframe-embed-object.html | https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx |
Why Iframes & Server-Driven UI breaks when the caller is an agent
Plain text chat streams cannot safely render interactive forms, approval cards, or live state synchronization without either risking XSS injection or writing custom UI components for every tool.
When to use which (and how they work together)
- Keep Raw HTML <iframe> embeds & bespoke frontend widget SDKs: You are embedding a static video player, map, or legacy payment frame inside a traditional website.
- Add MCP Apps (MCP Apps): An MCP server or backend agent needs to render sandboxed interactive UI surfaces inside Claude, Cursor, ChatGPT, or a CopilotKit frontend using MCP Apps (ui:// resources), AG-UI event streams, or declarative A2UI JSON.
All agentic web standards replacing or extending Iframes & Server-Driven UI
- MCP Apps — multi-implementation: How does an MCP tool deliver an interactive UI (chart, form, dashboard) that renders inline in a chat client?
- Agent-User Interaction Protocol (AG-UI) — multi-implementation: How does an agent stream state, generative UI, messages, and tool activity into a user-facing application in real time?
- A2UI (Agent to UI) Protocol — multi-implementation: How can an agent describe and stream a framework-neutral, declarative UI to a renderer?
- Agent-to-Wallet Protocol for Digital Credentials (A2WP) — none found: How can an AI agent hand a credential offer or presentation request to a wallet unchanged, so that credentials and keys never reach the agent, and still resume its task from the outcome and continuation?