Beyond Components: Designing Generative UI for MCP Apps —…
Conference talk by Ruben Casas (Postman) on designing user interfaces for AI agent and MCP apps. It lays out a spectrum of three UI generation approaches: static components passing props to predefined React elements (e.g., AG UI, Goose), declarative UI where the LLM emits JSON/YAML mapped to components at runtime (his preferred balance today), and fully generative UI where the model writes HTML, CSS, and JavaScript on demand. The talk covers why most agent UIs remain static despite capable models, the trust and containment problem of LLM-generated code and the need for sandboxing, why MCP apps' double-iframe design suits generative UI delivery, and a "TV/radio" analogy for the early state of human-agent interfaces.
# Channel Identity Observations — Video: "Beyond Components: Designing Generative UI for MCP Apps — Ruben Casas, Postman"
## Speaker / Channel Presentation Evidence
### Explicit Self-Description
- **Speaker identity and role**: Ruben Casas states directly: *"my name is Ruben Casas. I am a staff engineer at Postman."*
- **Stated area of focus**: *"I've been looking at UI and generative UI for the past year, and I've been working with MCP apps as well."*
- **Stated agenda**: *"today I want to show you what we're doing today and where we're going in the future."*
### Institutional Affiliation (Demonstrated)
- The talk includes first-hand employer project evidence: *"I work at Postman on this experiment where I created this weather agent."*
- The video title attributes the talk to **Ruben Casas, Postman**, consistent with in-transcript affiliation.
## Intended Audience
- **Developer / technical audience**: The talk presumes familiarity with React, MCP (Model Context Protocol), agents, tool calls, JSON/YAML descriptors, and sandboxing concepts (e.g., *"register a client tool that maps to a React component"*).
- **Conference-style setting**: Evidence of a live audience — *"I know I am the person standing between you and your lunch"* and closing *"Thank you so much for listening"* with **[applause]**.
- **Practitioners tracking AI/UI trends**: References to specific current tools (AGUI protocol, Goose, JSON Render by Vercel, Excalidraw MCP app, Claude/Gemini/ChatGPT) assume an audience following the AI tooling ecosystem.
## Claimed Scope of Content
- **Topic scope**: The evolution of UI paradigms for agentic/AI applications — **static components**, **declarative UI**, and **generative components** — with MCP apps positioned as a delivery mechanism: *"MCP apps are the best delivery mechanism for generative UI."*
- **Positioning between adjacent talks**: *"this is going to be a very interesting talk that combines the previous two talks into the future"* — indicating the video is part of a multi-talk event.
- **Speculative forward-looking framing**: The speaker explicitly flags speculation: *"of course this is speculative, but what do I think is actually going to happen is we are going to be moving beyond components and more towards a collaboration."*
## Demonstrated Presentation Patterns
- **Personal anecdote as evidence**: Uses a first-person experiment — *"a single prompt, rewrite my blog... It created a nice search box with a blur animation, with accessibility out of the box."*
- **Named-tool walkthroughs**: Cites concrete examples with commentary (Netflix server-driven UI, Goose Auto Visualizer, JSON Render, Excalidraw MCP app) to structure the technical narrative.
- **Historical analogy rhetoric**: TV/radio analogy — *"the first TV shows were radio shows with cameras"* — to argue the field is in an early paradigm.
- **Honest uncertainty stance**: Repeatedly disclaims conclusions: *"I don't know which one is going to be the final one. Consumers will tell us."* and *"We are still early. We don't have the answer."*
## Notes on Source Limits
- **No curated metadata was supplied**; identity observations rest solely on title and transcript.
- The transcript demonstrates a **single conference talk**; no direct evidence is present about the channel's broader catalog, upload cadence, or channel-level self-description.
# Delivery Observations — Ruben Casas, "Beyond Components: Designing Generative UI for MCP Apps"
## Tone
- **Conversational, self-deprecating humor**: opens with a joke about lunch — *"I know I am the person standing between you and your lunch."*
- **Candid humility about skills and knowledge**: *"I'm sure that was not going to write better code than me, right?"* → *"now it can write better front-end code than me. And you know, I I don't mind. No no ego. It's just reality."* Also: *"to be honest, I don't know which one is going to be the the final one."*
## Vocabulary & Terminology
- Consistent technical vocabulary: **"generative UI," "MCP apps," "static components," "declarative UI," "generative components," "design system," "tool call," "sandbox."**
- Frames the field as a **three-stage progression**: static → declarative → generative components, and repeats this scaffold throughout ("So, that's the static way... But I have seen an evolution recently where we call now declarative UI... I think the next level will be uh, generative components").
## Recurring Phrases
- **"And this is what I want to talk about today"** — used at least twice as a re-anchoring phrase ([26], [337]).
- **Repeated rhetorical questioning** as a structuring device:
- *"why are we still stuck in this mainly old paradigm of mostly static UI?"*
- *"And where is where is that Jarvis moment that we've been talking about earlier? Where are my floating UI windows?"*
- *"What could possibly go wrong with that, right?"*
- *"Does this become the standard?"*
- Frequent restatement for emphasis: *"things changed very fast all at once,"* *"very very rapidly, very very fast,"* *"very very strong protocol,"* *"very very powerful."*
## Teaching Habits
- **Historical analogies** to explain new paradigms:
- Karpathy's terminal/GUI analogy: *"interacting with this new computer is like talking to the terminal... The GUI has not been invented yet."*
- TV/radio analogy: *"the first uh, TV shows were radio shows with cameras because they could not imagine what you could do with this new technology."*
- **Concrete named examples** after each conceptual stage: AGUI protocol, Goose Auto Visualizer (static); JSON Render by Vercel, Netflix personalization (declarative); his own Postman weather-agent experiment (generative).
- **First-person experiments as evidence**: *"I did this experiment um, I work at Postman on this experiment where I created uh, this weather agent."*
- **Balanced assessment habit** — notes trade-offs rather than pure advocacy: *"declarative generative UI is probably the perfect balance today in terms of flexibility and consistency."*
## Communication Patterns
- **Self-corrections and mid-sentence repairs** are frequent: *"which were 5.2 ChatGPT, sorry. It was yeah, a GPT 5.2 and Opus 4.5"*; *"the the first um, sorry, the the TV came out."*
- **Fillers ("uh," "um," "you know")** appear heavily but do not disrupt the conceptual structure.
- **Direct recommendations to the audience** at the close: *"If you haven't heard about the Excalidraw MCP app, uh, definitely check it out."*
- Closes with an open, humble framing rather than a definitive claim: *"we are still early. Um, we don't have the answer... But we can shape that future."*
## Stability vs. Isolated Moments
- **Stable patterns** (repeated across the talk): rhetorical questions, the static→declarative→generative taxonomy, named-tool examples, humor and humility.
- **Isolated moments**: the lunch joke appears only once; the throat-clearing and the "5.2 ChatGPT, sorry" correction are one-off disfluencies, not patterns.
- **Uncertainty note**: the transcript lacks timestamps for pacing, pauses, or audience reaction beyond one applause marker, so delivery qualities like energy, gesture, and slide usage cannot be assessed here.
# Position Record: "Beyond Components: Designing Generative UI for MCP Apps" — Ruben Casas, Postman
## Speaker Identification
- **Ruben Casas**, self-identified as **staff engineer at Postman**, sole substantive speaker.
## Core Claims and Positions
### 1. Rapid Evolution of AI UI Generation
- **Claim:** In roughly 3 years (since ChatGPT, November 2022), models went from "poor man's vibe coding" (copy-paste code blocks) to writing better front-end code than the speaker.
- > "It can write better front-end code than me. And you know, I don't mind. No no ego. It's just reality."
- **Claim:** An "incredible inflection point" occurred in late months of 2025, attributed to the release of **GPT 5.2** and **Opus 4.5**, which he says were strong at long-horizon tasks and high-fidelity UI generation.
- **Anecdotal evidence:** A single prompt to rewrite his blog produced an unrequested search box with blur animation and accessibility features.
### 2. Central Question
- If models write UI code well, why are we stuck in **mostly static UI**? "Where is that Jarvis moment?"
### 3. The "New Computer" Framing
- Cites **Andrej Karpathy**: interacting with this new computer is like talking to a terminal — GUI not yet invented; we're in a "'70s" text-only era with "super intelligence" but no mature interface language.
### 4. Two Competing Deployment Models (both possibly valid)
- **Chat everywhere:** SaaS companies adding chat to homepages; speaker: "It's not the final UI. It's okay for now."
- **Super app (MCP apps):** one app (ChatGPT, Claude, Gemini) rendering third-party UI in a single agent environment.
- **Position:** These are two different questions — **where the UI runs** vs. **what the model is generating**. He focuses on the latter.
- **Hedging:** "To be honest, I don't know which one is going to be the final one. Consumers will tell us."
### 5. Three-Tier Taxonomy of Generative UI
#### Tier 1: Static Components
- Agent is an orchestrator making tool calls; data/props passed to **developer-predefined components**; client renders.
- Analogous to 20 years of server-sent data rendering.
- **Examples cited:** **AGUI protocol** (SDK mapping client tools to React components); **Goose** with "Goose Auto Visualizer" matching arbitrary data to predefined components.
#### Tier 2: Declarative UI
- Agent emits a **descriptor** (JSON, YAML, or Python via FastMCP) mapped via a translation/rendering engine to static components.
- More dynamic and personalized, **but not new**: Netflix has done personalized server-driven UI mapped to its own components for years.
- **Example:** **JSON Render** by Vercel (JSON, recently YAML) — still constrained to static components; the LLM generates the JSON, not the components.
- **Assessment:** "Probably the perfect balance today in terms of flexibility and consistency" — preserves design system, predictability, speed, lower token cost.
#### Tier 3: Generative Components
- Model writes HTML/CSS/JS **on demand at runtime** ("What could possibly go wrong with that, right?" — rhetorical irony).
- **Experiment:** a Postman weather agent fetching a weather API, generating a joke plus HTML/CSS/JS in one tool call — "random but very imaginative UI," no components or translation layer.
- **Stated problem:** If we don't trust third-party code, we shouldn't trust LLM-generated code presented directly to users. This tier requires a **distribution model** with **boundary, containment, and sandbox**.
### 6. Position: MCP Apps as Delivery Mechanism
- **Claim:** MCP apps are the **best delivery mechanism for generative UI** — providing authentication, tool calling, message passing, and default sandboxing via a **double iFrame**.
- **Strategic argument:** Anthropic chose MCP apps for its first-party **visualizer** feature rather than building proprietary rendering — evidence of the protocol's strength; if Anthropic can do this for first-party UI, others can too.
- **Qualification:** "Today is probably not the final form."
### 7. Future Direction (explicitly speculative)
- The "obvious future" (Jarvis, floating windows) is "too obvious"; "we don't have enough imagination yet."
- **Analogy:** early TV shows were radio shows with cameras because the new medium wasn't yet understood — we are in the "radio era" of this new computer. (He notes this is "speculative.")
- **Predicted direction:** movement **beyond components** toward **human-agent collaboration** on shared artifacts.
- **Example:** **Excalidraw MCP app** — a shared canvas where human and agent collaborate back and forth, blending agent modification with direct user editing.
## Closing Position
- "We are still early... We don't know yet. But we can shape that future and create this new computer."
- Generative UI's future, in his view: **super personalized and collaborative**, with agents used for more than orchestration and visualization delivery.
## Qualifications and Tensions Preserved
- Speaker repeatedly flags uncertainty: he does not know the final interface (chat vs. MCP apps), calls his future prediction "speculative," and concedes today's declarative approach is "probably the perfect balance today" — a tension with his push toward generative components.
- Security concern about LLM-generated code is stated but unresolved within the talk.
# Speaker Attribution Record
## Video
- **Title:** Beyond Components: Designing Generative UI for MCP Apps — Ruben Casas, Postman
- **ID:** `01a15ca9-13f7-7920-9fde-eae73b4621e5`
## Speakers
| Speaker | Role | Evidence |
|---|---|---|
| **Ruben Casas** | Sole presenter / creator of talk; **Staff Engineer at Postman** (self-identified) | "my name is Ruben Casas. I am a staff engineer at Postman" |
- **No other speakers** are present (no guest, narrator, Q&A host, or audience questions in transcript).
- Audience indicated only via **[applause]**; no speaking role.
## Roles & Provenance Facts
### Self-attributed claims by speaker
- Has worked on UI/generative UI "for the past year" and with MCP apps.
- Built a **weather agent experiment at Postman** generating HTML/CSS/JS in one tool call via a weather API.
### Third-party claims / references (as cited by speaker)
- **Andrej Karpathy** — analogy that interacting with the "new computer" is like talking to a terminal; GUI not yet invented.
- **GPT 5.2 and Opus 4.5** — cited as recent models skilled at high-fidelity UI generation.
- **AGUI protocol** — SDK registering client tools mapped to React components.
- **Goose / Goose Auto Visualizer** — MCP client feature matching data to predefined components.
- **Netflix** — cited as long-standing example of declarative, personalized server-driven UI.
- **JSON Render (built by Vercel)** — maps components via JSON/YAML.
- **Excalidraw MCP app** — recommended; described as enabling shared human-agent collaboration canvas.
- **Anthropic** — cited for choosing MCP apps for its "visualizer" first-party UI feature (speaker's characterization).
- Unattributed anecdote: a "recent tweet" complaining SaaS companies are adding chat everywhere (no named source).
## Segments
- **Promotional segments:** None identified. Mentions of Postman, Anthropic, Vercel, Goose, Excalidraw, and AGUI are technical references within the talk, not flagged promotions.
- **Closing segment:** Speaker invites audience to find him and ask questions.
## Availability Limits
- No curated metadata was supplied.
- **Comment availability:** Not specified.
- Talk venue/date not stated in transcript (references "November 2022," "last year," and "last months of 2025" internally).
\>\> Hello everybody. So, I know I am the person standing between you and your lunch. And but this is going to be a very interesting talk that combines the the previous two talks into the future.
And that's what I want to talk about today. So, back in November 2022, what we used to do was we used to go to ChatGPT and ask ChatGPT to create a component. And we would just copy paste. You have to ask reply in code blocks. Then, you know, again, fix it, repeat. And this is what I call the poor man's by coding. And we have come a long way. It kind of worked. It was very exciting. You could get models to could actually build some UI for you. And I'm sure that was not going to write better code than me, right? And then things improved very very rapidly, very very fast. What happened last year, and if you are aware of what happened in the the the last months of 2025 was this acceleration, an incredible inflection point where things changed. And it will go down in the history books as things changed very fast all at once. And this is in part because of the release of two very important models, which were 5.2 ChatGPT, sorry. It was yeah, a GPT 5.2 and Opus 4.5. And they were not just very good at uh most of the task, long horizon tasks. They were also very good at high fidelity UI generation. And they were producing very good working UI. Sometimes thoughtful, sometimes really really good. And also very fast. Now, I experienced this when I tried one of these models, tried to rewrite my my blog. I know people have used this in a more creative ways, but I just tried, you know, a single prompt, rewrite my blog. And then it did this, which I didn't ask for. It created a nice nice search box with a blur animation, with accessibility out of the box. And then that's when I realized that in the space of of 3 years from when ChatGPT was released to today, we went from you know, few lines of code is great. It can it runs. Oh. And now it can write better front-end code than me. And you know, I I don't mind. No no ego. Uh It's just reality. So, here's the question. If these models are so good at writing UI code, why are we still stuck in this mainly
old paradigm of mostly static UI? And where is where is that Jarvis moment that we've been talking about earlier? Where are my floating UI windows that
appear and disappear? And why we not there yet? So, my name is Ruben Casas. I am a staff engineer at Postman. And I've been looking at UI and generative UI for the past year, and I've been working with MCP apps as well. And today I want to show you what we're doing today and where we're going in the future. So, the news are we have a new computer.
And as Andrej Karpathy put it, interacting with this new computer is like talking to the terminal. You have direct access to this operating system. And the GUI has not been invented yet.
It's like we are in the '70s, where everything was just text. And we have a super intelligence, but we don't have a mature interface language. And today we are still trying to figure out what is this new interface for for this computer. And people ask, is it chat? I'll show you what we're what we're doing today. And actually this was a very recent tweet last week, where people were complaining that most SaaS companies have been adding chat to their their homepages, and everybody's just putting chat everywhere. And and that's that's fine. I don't have a problem with chat. It's not the final UI. It's okay for now. But the question is, if it's not chat, then then what is the interface for this computer? On the other hand, as we have seen with MCP apps, is there \[clears throat\] is another thought, which is we will have one app or super app to rule them all. And this is where MCP apps comes in, where instead of putting all of these chat windows into your homepages and and to
every single app that you use, we will have a super app like ChatGPT or Claude or Gemini, where you will be interfacing with most of the the UI and the websites that we have today.
And this is good. This is the way we using MCP apps today to to render third-party UI inside one agent environment. Now, these two options both could be valid. And and I believe these are part of the evolution towards finding out what is that new interface for that computer. And to be honest, I don't know which one is going to be the the final one. Consumers will tell us. But one thing is that these are two different questions. The question is where does the UI runs? In this case, is it third-party UI, a super app, or in this case, chat everywhere? But most interesting is what is the model generating. And this is what I want to talk about today in terms of how are we generating this UI? And we have seen this. We have mostly static, declarative, and generative UI. And I'm going to describe briefly this
one. So, we have um to start with the the static components way of running running UI, which is what most agents do today. The agent is just an orchestrator. The
agent makes a tool call via MCP apps or direct agent tool call. Then we will have some parameters and data passed to predefined static
components that have been created by developers. And this is very similar to what what we have been doing for the past 20 years with with UI. And then the client renders the component. And if you see here, it's very similar to just getting a server to send some data, and then the UI will be rendered by the client. But in this case, the agent will be generating that data and the props to to do this. And some examples that we have today are the AGUI protocol. They have an SDK when you can register a client tool that maps to a React component. The tool call will receive some props. Those props will be mapped to a static component that then will be rendered to to the user. Another example is Goose. Goose is a an MCP client where you can try most of the MCP features. And Goose has this really interesting feature called Goose Auto Visualizer, where you can just pass any type of data to Goose, and Goose will try to match that data, organize it, and then pass it to a set of predefined components that the Goose team have created. In this case, we have a few interesting components that you can use to visualize your data. So, that's the static way. That's the most common way of generating UI today. But I have seen an evolution recently where we call now declarative UI. And declarative UI takes it to the next level. So, we will still have some
predefined static components that developers build, and it contains your design system and all these components that you have. But instead of the agent just passing the props and the data, the agent uses
a descriptor that could be either JSON or YAML. Or I've seen Python as well with with fast MCPs, where they have a a descriptor in Python that maps to these predefined static components. And then you have this translation rendering engine that takes those descriptors and converts them into the final UI. How is this different? Well, in this case, it is more dynamic. They are still static components, but it's more personalized. And you if you look at this and you think that this might look familiar as well, it's because it is not new. Netflix has been doing this for a long time since the the personalization and server during UI era, where when you go to the Netflix homepage, you will get a UI that is completely personalized to you. But that's still mapped to the Netflix components and UI elements. Another very good um tool that I've seen recently is JSON Render. JSON Render is being built by Vercel. And it is a way to map your components using JSON and also YAML. They released the YAML support recently. And create all of these very dynamic, very good UI interactions that you can use today. But now JSON Render still, they say, is constrained to your static components. And yes, they're still static components. The LLM is not generating these components. The LLM is generating the JSON. However, I think in at this point in time, declarative generative UI is probably the perfect balance today in terms of flexibility and consistency. Because you would still want your design system. You still want to have uh, predictability of what the UI is going to be generated, also faster and also potentially cheaper at this point. Uh, so you don't create and use a lot of tokens to create the UI. But as I mentioned at the beginning, why why are we still stuck here? And what's the next level? I think the next level will be uh, generative components.
And generative components uh, goes into like the the premise I I put at the beginning where the models are good at writing front-end code. They are good at writing React. They're good at React creating in JavaScript, CSS.
And the question is why we don't let them just write that on demand at runtime. What could possibly go wrong with that, right? This model um, of generating the UI uses the agent capabilities. And in this case, you can also use a tool call, but instead of calling this uh, layout rendering engine, you can call the same model with reverse sampling or you can call another model that will generate the HTML, CSS, JavaScript on demand and then it will be passed to the client. I did this experiment um, I work at Postman on this experiment where I created uh, this weather agent that goes to the API, the weather API. It creates a joke. It creates the HTML, CSS, JavaScript, all in one tool call. And you get presented with this random but very uh, imaginative UI where everything is created by the agent. There is no component. There is no translation. So there is of course a problem with this approach. Uh, and the problem with this approach is uh, if we don't trust third-party code,
well, we should not trust um, code that has been generated by LLMs and then just present it to the user. Uh, generative UI and and this level of
generative UI needs a distribution model. And this distribution model requires a boundary, requires containment and requires a sandbox, which is what we were talking about earlier. This is what I think MCP apps matter a lot because MCP apps are the best uh, delivery mechanism uh, for generative UI. We have the features provided by MCP, including authentication and tool calling and message passing between the UI and the agent. Uh, it's sandboxed by default with that double iFrame. Is the default for third-party UI delivery today. Does this become the standard? And one interesting thing is it's not just for for third-party UI. It can also be used
for first-party UI. And this is why I think what Anthropic is doing with the the visualizer feature is very interesting strategically speaking because
they could have just created their own rendering um, and an architecture mechanism for delivering this in interaction in in cloud, but they decided to go with MCP apps because MCP apps provide most of those um, features that I mentioned earlier uh, out of the box. So if Anthropic decided to use MCP apps for their first-party UI, uh, you can ask yourselves why cannot we do the same? It is um, a very very strong protocol. And especially when the UI is being generated on the fly by the agents, by the the code uh, coding models, then is the best um, mechanism for delivery. Now, today is probably not the final form.
And people keep saying is chat the final form? Is MCP apps the final form? We're still we're still trying to figure this out.
And the obvious future is probably too obvious. And we said about where is my Jarvis? Where is my floating windows? And if you think about it, that's the obvious things thing that people would think how we would look like if we were generating or creating a new uh, user interaction. But what I think is we don't have enough imagination yet. And and this analogy I heard recently is very interesting when when uh, radio came out in the 30s, um, the the the first um, sorry, the the TV came out, the first uh, TV shows were radio shows with cameras because they could not imagine what you could do with this new technology. So this new technology that we have today is very similar when television came out and we are still in the radio era where we don't know all the amazing things that we will do in the future with this new media, with this new power that we have with the with the new computer. And we can see that we cannot even imagine what it's going to look like. Uh, of course this is a speculative, but what do I think is actually going to happen is we are going to be moving uh, beyond components and more towards a
collaboration uh, through human agent collaboration. If you haven't heard about the Excalidraw MCP app, uh, definitely check it out because the Excalidraw MCP app
is not just for um, output and visualization of diagrams. The Excalidraw MCP app does something very interesting, which it creates a a shared artifact. It creates a canvas where a human and an agent can collaborate together into a shared space where you can go back and forth with the agent and ask, you know, change this, but you can also click around, modify the UI the way that you are used to. And that becomes the new way of interacting, the new way of experiencing the the agent um, powers. And and at the moment again, we are very constrained to our imagination. And and I believe these agents are very very powerful for just to just use them as a orchestrator and a delivery mechanism to show me some visualizations. So I believe beyond components, it will be the future of generative UI will be more a collaborative experience where yes, we will have some generative UI, but that UI is going to be super personalized and it's going to be collaborative. So we we are still early. Um, we don't have the answer. People say,
you know, what is what is the future of the user interaction, the user interfaces? We don't know yet. But we can shape that future uh, and create this uh, new computer. And that's me. Thank you so much uh, for listening to this. \>\> \[applause\] \>\> You can find me and ask any questions. Thank you.
