AI Engineer World's Fair 2026
MCP Apps: Extending the Frontier — Ido Salomon & Liad Yosef
About this talk
MCP Apps specification authors Ido Salomon and Liad Yosef explain how MCP-UI evolved into an open Model Context Protocol extension that lets services deliver branded, interactive application interfaces inside AI assistants instead of text-only responses. They outline host-to-application communication, ecosystem adoption, community governance, an interactive funnel example, and the need to avoid repeatedly rendering demanding interfaces such as 3D applications.
Chapters
- 0:00Introductions and the case for interfaces beyond text
- 2:22MCP-UI origins, MCP Apps standardization, and ecosystem adoption
- 4:58Core concepts and an interactive application example
- 14:27Avoiding repeated rendering of demanding application interfaces
- 18:18Closing remarks
Talk transcript
- 0:00
[upbeat music] Hi. Uh, so hi, everyone. Uh, we did this talk yesterday, so it might be out of date. [laughs]
- 0:18
I'm Ido Salomon. I am the creator of MCP-UI, and co-creator and maintainer of MCP Apps in the MCP steering committee. I also created AtomCraft, if you were in the talk yesterday.
- 0:30
I'm Liad. I work with Ido on MCP-UI. I'm also the co-creator and maintainer of the MCP Apps, uh, spec, and recently co-founded AURA, which is a research lab for the agentic web, and we're gonna talk a little bit more about it later.
- 0:45
So MCP apps are all around us. You might not even realize it, but all the fancy apps you have today in ChatGPT, in VS Code, in Slack are actually all based on MCP and the MCP apps spec.
- 1:01
And if we take a step back and we ask, "Why do we need MCP Apps? What's the idea behind MCP-UI or MCP Apps?" So when we work with chats, with chat clien- clients, we use the text because that's the natural interface, but text is really the worst way to convey a lot of information, right?
- 1:18
Because we don't want walls of text, and actually, this is the main blocker from companies to, uh, build an MCP server. They don't want to be reduced to a textual database.
- 1:27
They don't want to lose their brand identity in the process. They don't want their data that they worked so hard on, uh, um, building the UX for to look something like this.
- 1:38
So instead of this, what if the apps could just send their UI to the chat, right? What if every service and every brand could just send their user interface to the chat?
- 1:51
So instead of us looking at something like this, we could just have the apps send their own identity, their own UI chunks into the chat, and then we take a look, and we say, "Okay.
- 2:02
Yeah, I know this is Shopify in the middle. I know this is Hugging Face. I know this is Monday." And what if we don't want to do it only as a, a visualization?
- 2:10
We also want to do it interactive. So we want the users to be able to actually interact with Hugging Face, for example,
- 2:18
and for Hugging Face to actually do something with it.
- 2:22
So we don't have to imagine the future, as we said, uh, with MCP-UI, uh, which I created in May last year, uh, and took that, which is essentially like an open protocol for interactive applications over MCP.
- 2:38
So it's not only how you transmit UI, but also how that UI, that application, uh, connect, connect, communicates with the host. And just a few months ago, we partnered with Anthropic and OpenAI to create the official extension to MCP, uh, which we call MCP Apps based on MCP-UI, MCP SDK, uh, and other, uh, solutions in the field.
- 3:01
Uh, the launch was, uh, pretty cool with Claude and VS Code supporting it to begin with. But now, uh, uh, obviously, also OpenAI and others have adopted it.
- 3:13
Yeah, and, uh, there are a lot of early adopters to MCP-UI. Um, uh, ElevenLabs, Shopify, Postman, that was one of the, uh, first, first companies to support it back, like, a year ago.
- 3:24
They were the one believing in this spec, in this vision. Um, and, uh, uh, Goose, uh, also supported it, and it's a, it's a funny anecdote because today Block released their agentic commerce solution that is based on MCP Apps.
- 3:36
So a year ago, Goose was the first client to support MCP-UI, and now it is part of Block's, uh, um, uh, product, uh, product. Um, and today we have a lot more clients supporting MCP-UI.
- 3:49
Uh, we have, uh, uh, Cursor, and we have, um, yeah, Copilot, and, uh, uh, GitHub. ChatGPT support MCP Apps. ChatGPT apps that you know are actually based on MCP Apps, and OpenAI actually recommend using, um, MCP Apps as a protocol to build ChatGPT apps.
- 4:07
Um, Postman, um, and a lot more, and obviously, Claude supports MCP Apps. But you also have a lot, uh, uh, large community around it, right? So people start to, to build plugins to MCP Apps, uh, and, uh, um, uh, integrations to different agents and also courses on how to build MCP Apps.
- 4:24
This is Py integration for MCP Apps. Um, so, uh, we have a large community around it. Um, there's a repo, ext-app, which is the repo for MCP Apps, uh, where everyone can just come and propose PRs and ideas of how to, how to extend this, uh, spec.
- 4:39
And we have a work group in the MCP committee, and we're convening every three weeks. We have a tri-weekly meeting on the future of the protocol and how to make the spec not just, uh, serve the big labs, but also the community.
- 4:51
So it's an open working group with Anthropic, OpenAI, and all the, uh, partners in, in the MCP Apps protocol.
- 4:58
Okay, so let's look at a few of the core concepts of MCP Apps. Uh, the first and most obvious one is, how do we even transmit UI over MCP?
- 5:08
So if we look at this example of Claude, like, uh, you know, agent times, like a few months ago, uh, and I would ask something, uh, best case scenario, it would reach out to my MCP server, and it would get back a textual response, which is obviously suboptimal.
- 5:26
So let's say I do want to get, uh, some- something better. Uh, so now ins- I can use existing MCP primitives, uh, like a resource, and now return HTML.
- 5:38
And I can take that HTML, and since Claude supports MCP Apps, it can turn it into an interactive application of the best soundtrack in the world.
- 5:50
And what if you want it to be really interactive, right? This is nice because it shows the best soundtrack in the world. What if I want to favorite one of the songs there?
- 5:58
I want interaction. I want communication between the app- And the host. So when a user clicks on the favorite button, MCP Apps actually standardizes this flow. So instead of the app sending a message to, to the backend, to Spotify's backend, it's actually sending a message to the host saying, "Hey, user clicked a button.
- 6:19
Do something with it. I recommend you to call a tool in Spotify's MCP server." And the host decides what to do. The host keeps this control of the flow.
- 6:27
In this case, the host can decide to actually call the favor- favorite tool, and MCP Apps standardizes this flow.
- 6:35
Okay. So seeing is believing, so let's see an example from Claude.
- 6:42
Yeah. Uh, so let's say that I'm a product manager and I want to understand the status of my funnel. So I would go to Claude and I would ask, "What's the status?"
- 6:51
In the, again, old world of a few months ago, uh, I would get back this sexual response. Let's say that it's PostHog. So it reached out to the PostHog server, got back a textual response.
- 7:01
It's factually correct, but it's useless. I mean, how do I even take that and understand quickly what's going on? I have to read, which I don't wanna do, uh, and it's pretty challenging.
- 7:12
Uh, but luckily, because both Po- PostHog server and Claude as a host support MCP Apps, I can just say, "Show me." And now instead of getting that block of text, I can actually get something useful, uh, which is this interactive, um, widget that you would get, you know, on the PostHog, uh, uh, server.
- 7:33
And when you have that, you can at a glance see what's going on, and as you can see, it's branded PostHog. So you're actually getting the PostHog experience within ChatGPT or Claude, et cetera.
- 7:45
Uh, but it doesn't really end there. Uh, as we said, MCP Apps is also like an interactive protocol. So not only can I see and, and interact with it, I can also do stuff like, uh, ask them to explain what a funnel is.
- 7:58
I might not even know that. So again, instead of getting that huge wall of text explaining what a funnel is, I can just get this generative UI answer from Claude, which uses MCP Apps.
- 8:09
It streams, like, the HTML inside, and now I can get this nice interactive, uh, experience of learning. And not only is it, uh, visually nice and helps me understand, but it's also fully interactive.
- 8:22
And when we say interactive, it actually means that clicking it would help me communicate with the host. So let's say that I want to understand, like, a particular step in the funnel.
- 8:33
Uh, I just go and I click on it, and since it's an MCP App, it can send a prompt back to the, uh, model and say, "Okay, explain this specific step to me," and I can advance the flow.
- 8:46
Uh, so this is, uh, like the example of, of how that, uh, looks. So how does it actually work if you look at the architecture of it? Uh, so we started by prompting, so we typed something in.
- 8:58
Uh, we asked for, uh, the funnel information. A tool call went out. Since our server supports MCP Apps, that tool call is actually linked to a resource. And if you look at the code here, then, you know, it's, it's a re- so just a resource with, uh, uh, some prefix.
- 9:15
Uh, we take that. It's pretty simple code. We can just add, register the, the resource with the HTML and you're done. Uh, that resource is then, um, consumed by the host.
- 9:27
In practice, it's usually consumed beforehand, like it's preloaded, uh, but imagine that it's just consumed in real time. That same HTML then passed to the host that also supports MCP Apps.
- 9:37
MCP Apps is basically, if you look at the MCP UI SDK, just a React component or a web component that just accepts that resource, plus, uh, a callback, which is how we implement that, uh, communication protocol you saw earlier, and renders it in a sandbox.
- 9:54
So like we said, not only is it presentational, I can click. So what happens when I click? So we click on it. It sends back through that callback, uh, the event all the way up.
- 10:04
The model takes that event, and then it can send out a tool call, uh, or, uh, uh, call a resource or anything else, thus completing the agentic flow.
- 10:14
And this architecture actually brings a new philosophy or a new vision to the web. So instead of, uh, us thinking of the web as tabs or, um, services that we need to consume using a browser, we're now consuming it using our own personal assistants, right?
- 10:30
What does it mean? It means that if I want to co- uh, accomplish a task, for example, plan a, um, anniversary. So up until now, I had to open 20 tabs in the browser, and I had to try to convey my intent to each of those services.
- 10:43
And by saying, "Conveying my intent," it means that I have to interact with the dashboards of the UIs of those companies. So just to plan anniversary, I need to convey my intent to Google Calendar and Amazon and Booking and Booking again and Amazon again, and all...
- 10:59
And I don't need 99% of the UI that is shown there because this UI doesn't know me. It doesn't have the context on me. What if we could just take these UIs and just break them into atoms, and those atoms can be composed by my own personal assistant, right?
- 11:14
Because I don't need the, the UI. I need those atoms. So if we can take these atoms and have my Claude or ChatGPT or OpenClaude just use them using MCP UI, we can have this flow.
- 11:28
So my proactive assistant can say, uh, "Yeah, I know. I see that you have, uh, an anniversary coming," and instead of just showing me data from Google Calendar, it can display Google Calendar chunk.
- 11:37
Now, for me, it's good because I know Google Calendar. I trust Google. For Google, it's good because it maintains their brand and identity, and for the host, it's good because they don't need to develop this capability themselves.
- 11:48
And it goes even deeper because if I'm interacting with Amazon, instead of Amazon being reduced to just a list of items or, uh, or text- I can see Amazon.
- 11:57
I can, I can know that this is, uh, this is Amazon, and I can complete my entire flow without even leaving my assistant, and this is the agentic web.
- 12:07
This is how we are going to consume the web, because my assistant will have the context on me. It n- it will know to pull the, the map from booking.com.
- 12:15
I don't need to know that, right? So this is going to be the shift that we're gonna see very soon, where websites are going to shift into small chunks of UIs inside, uh, inside personal assistants.
- 12:25
Um, and with that come new interaction mindset because, um, if I click on something in the Shopify's MCP app, then Shopify doesn't control my journey anymore, the host does.
- 12:37
Um, and no application will control the user journey anymore, so Amazon want to be able to know to see my flow. It- everything will go through the chat for auditability.
- 12:46
Um, and MCP apps actually standardizes it by defining these three level of control over the user journey. So an app can notify the chat that something happened, or an app can actually ask the chat to run a prompt and s- and releasing all responsibility to the chat.
- 13:02
So MCP apps actually standardize it, and this is the new software flow, the new flow of interaction that we're gonna see between applications, the chats, and the users.
- 13:13
Um, in 2026, we had, we had an amazing year of standardizing MCP-UI, and 2026 is going to be the year where it's going to be a global standard for UI.
- 13:23
Yeah.
- 13:23
But it's still evolving. Uh, there's a lot of stuff going on. Uh, even in these past few months, these are some of the things that are already in or already contributed or proposed, uh, by the community.
- 13:34
Uh, so you still have a lot of time and a lot of room to influence how this future will look like. Uh, so you can go to Ext Apps, uh, that's the official SDK, and spec is also hosted there.
- 13:45
It's under the official Model Context Protocol, uh, repository. There will be a QR code later, uh, so you don't have to, uh, to, uh, uh, photograph it. Uh, and also, um, the, the cool thing about using Ext Apps in particular is that because it's maintained by us directly, uh, all changes to the spec are immediately, uh, reflected
- 14:05
in the SDK. So if you use that SDK, then you automatically get all the new stuff out of the bag. Uh, these are some of the issues that we have, so please feel free to come and, uh, contribute.
- 14:16
So what's next? Um, there's a bunch of stuff coming up. Uh, the first thing, uh, that we get a lot of, uh, uh, of asks for is kind of reusable views.
- 14:27
So if you have, uh, um, companies like Autodesk that have really heavy apps, like they have, you know, the entire 3D renderer there, they don't want to keep re-rendering that over and over again because it just, it takes time, it's inefficient.
- 14:42
Uh, that's just the way that we had to do it, uh, for, uh, the MVP. But we are working on thinking of maybe we can pass some identifier from the server, uh, in a way that would help the model actually keep updating the same view.
- 14:56
Uh, the other way to do this is...
- 15:00
Um, App Tools, which is something, uh, if you've heard of WebMCP, which is Google standard of how agents will interact in, with web views. So in MCP apps, we actually standardized it into App Tools.
- 15:10
So up until now, we saw the flow where users do- does something in the app and the app talks to the host. But what if the host or the chat wants to speak to the app?
- 15:20
If the user writes something, uh, "Fill out this form for me," and the chat will fill out the form for the user. So MCP apps actually standardizes this, this flow, which we call View Tools.
- 15:29
That's actually, that's in the spec right now. It's also, uh, it's gonna be released, uh, very soon. Um, and we're working on this generative UI spectrum, where you have predefined UIs, that's MCP apps.
- 15:39
That's like the black box, uh, iframe that renders, uh, um, Altara's UI in that example. But you also have other things on this spectrum like, like declarative UI, like JSON Render or A2UI.
- 15:51
These specs that say, uh, yeah, the, the app just returns an instructions on how to build the UI, but the chat will actually build the UI. And you have fully generative UI on the other end of the spectrum.
- 16:01
And if you know Claude Apps, uh, yeah, MCP apps is agnostic to the way the UI is generated. And if you know Claude Apps' Imagine feature, uh, where you can just ask Claude to generate a UI for you, that's actually based on MCP apps.
- 16:14
So this is an MCP app behind the scenes, but it supports generative UI. Um, so we're working on interoperability with those other, uh, um, standards. And actually just a few days ago, we, uh, re- released a guide on how to do A2UI, which is a generative UI standard, and MCP apps, which is this standard, how to do
- 16:33
interoper- interoperability. How can a server can write A2UI and ship it to Gemini, but also wrap it as an MCP app to ship to ChatGPT, and vice versa.
- 16:43
Um, an MCP app is support everywhere, so it can run everywhere. If you build it once, it runs in LibreChat, which is an open source, uh, uh, MCP app supported client, but also in ChatGPT.
- 16:51
That's the same app that you're seeing, the same code base that runs in, in both, which is, uh, pretty cool. Yeah. Uh, yeah.
- 17:01
So this isn't just a technology, uh, or a cool feature. This is an entirely new way to distribute applications. So, uh, if you look just a few months back, then Sam Altman said that ChatGPT in particular has eight hundred million weekly users, which is ten percent of the entire world population.
- 17:20
That's insane. So if you think about the web in general, it took around thirteen years to get to that number of users. So if you look at that and you think that in the last few months, uh, we actually had, uh, a growth of o- over one billion just for that, we have like one hundred and seventy
- 17:36
times the total addressable market of the Apple App Store when it launched. So MCP apps are everywhere. Uh, Slack just released it, VS Code, Claude, OpenAI, uh, et cetera.
- 17:48
It's already there. Uh, so how do you get started? Uh, you can clone those. You can, uh, uh, go to, like, Ext Apps. Um, as a host, also, go to Ext Apps or the MCP-UI website.
- 17:59
Um-
- 17:59
Please visit the official repo, [laughs] the Ext Apps repo to get involved. Um, and yeah.
- 18:05
So embrace the new web. Uh, it's awesome. Uh, with MCP apps, you can write once and run it everywhere. Uh, and the future is looking bright, not quite Jarvis, but with MCP and MCP apps, we're close.
- 18:17
And come talk to us afterwards about it.
- 18:18
Thank you.
- 18:19
Yeah, thank you. [audience claps] [outro music]