A2UI as MCP Extension #1676
Replies: 5 comments 7 replies
-
|
There is a real debate to open on terminology with MCP apps. What do we actually want to deliver, is Apps dealing with UI only or more …. A large field for discussions. |
Beta Was this translation helpful? Give feedback.
-
|
Would it make sense to add this to the MCP Apps extension instead or creating a new one? |
Beta Was this translation helpful? Give feedback.
-
|
Whether we're talking about MCP Apps in A2UI or A2UI in MCP Apps, combining the two will inevitably put more load on LLMs, resulting in slower response times and a greater risk of errors. But I haven't seen any clear advantages this integration offers over MCP Apps on its own. So what's the point of integrating them in the first place? |
Beta Was this translation helpful? Give feedback.
-
|
We think this is a great idea! One question on the output contract between Agent and end-user:
|
Beta Was this translation helpful? Give feedback.
-
I see two paths, each with trade-offs:
In Path 1, the client agent is a dumb pipe. It speaks to the 3p server over MCP, which returns A2UI resources directly via When user interactions generate As far as I can tell, this is the flow: sequenceDiagram
autonumber
actor User
participant UI as 🎨 Client UI / Renderer
participant Host as 🤖 Host AI Agent
box rgb(30, 41, 59) Third-Party Stack
participant 3PSrv as 🌐 3P MCP Server
participant 3PAgent as 🧠 3P Specialist Agent
end
User->>UI: Interacts with Widget (e.g., Clicks Button)
UI->>Host: userAction Payload (Pure A2UI JSON)
Host->>3PSrv: tools/call (arguments: { raw_a2ui_payload })
3PSrv->>3PAgent: Forward userAction to Agent Engine
Note over 3PAgent: 3P Agent processes logic & updates state.<br/>Generates a brand new UI state layout.
3PAgent-->>3PSrv: Returns new UI layout (Pure A2UI JSON)
3PSrv-->>Host: response (EmbeddedResource: application/a2ui+json)
Host-->>UI: updateComponents Payload (Pure A2UI JSON)
UI->>User: Renders freshly mutated UI view
Assuming I have this right, initially I found it pretty odd. I want to walk through why, and then describe a few things that changed my mind. Why if feels wrongFirst, the two things that "speak A2UI" aren't talking to each other. They're mediated by an MCP middle-man which is just a "transport" for opaque A2UI payloads. I found myself wondering if the MCP protocol is adding any value to A2UI here, if it's not integrating semantically with it any more than, say, REST would? Second, the two agents aren't talking to each other either, which is exactly what A2A is designed for! It smells wrong that the two agents which can talk over A2A, especially since A2UI officially supports A2A as a transport, are bypassing that and using MCP as a REST middle-man basically. There's nothing inherently bad here, but it felt inelegant. I wasn't sure what making MCP an official "transport" of A2UI, or making MCP be A2UI-aware, buys us besides another way to shuttle opaque A2UI payloads. It seemed to miss the opportunity to make MCP Apps and A2UI—two major agentic UI paradigms—to play well together. What does A2UI 🤝 MCP Apps integration actually look like?As mentioned, I was expecting to find a meaningful semantic integration between MCP Apps and A2UI that I felt Path 1 precluded, and that we could achieve with Path 2. We've talked about this in the MCP Apps WG calls, and I've spoken with @liady about this offline a bunch too, but the more I think about it the more skeptical I am:
Benefits of A2UI-over-MCP AppsWith all of that said, I think the difference between Path 1 and Path 2 is pretty minimal. If MCP doesn't semantically engage with A2UI content, then what's up for grabs is basically a namespace question, a little reuse, and some insurance:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
We are considering working on a MCP Extension for A2UI.
Would this be of interest to you? Give us an emoji 👍 if this matters to you.
Beta Was this translation helpful? Give feedback.
All reactions