Free YouTube Transcribe

Video transcript

MCP UI: Extending the frontier — Liad Yosef and Ido Salomon, MCP Apps

AI Engineer · 3,972 words · 19 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

Introduction to MCP Apps

0:07[music]

0:14>> Okay, hi everyone.

0:17We built this talk well not really

0:18yesterday we built this talk this

0:19morning and it might already be out of

0:21date. I'm Eda Solomon. I'm the creator

0:25of MCPUI,

0:26co-creator of MCP apps and maintainer.

0:30Also creator of Agent Craft if you were

0:31on the previous session.

0:34I'm Liad. I work with Eda on MCPUI,

0:37co-created the MCP app spec with Eda and

0:40I'm also co-founder of Ergo Labs which

0:42is like human agentic interfaces a

0:44company.

0:46So MCP apps are all around us. You might

0:49not even realize it but the interactive

0:51applications you see today in ChatGPT,

0:53Claude and others are actually based on

0:55MCP and the MCP app spec.

Why we need MCP Apps: Moving beyond text-based chat

1:02But why do we need MCP apps and what's

1:04MCP apps? I mean you heard David this

1:05morning talk about it a little bit.

1:08We used to text, we used to

1:10MCP tools sending text to our chat

1:12agents.

1:13But that's not ideal, right? Because

1:15chat chat is really text is really bad

1:17and actually this was one of the main

1:19blockers of companies or

1:22tools not to send their data to ChatGPT

1:24because they didn't want to be reduced

1:26to like

1:27this thing, this wall of text where you

1:28don't have identity. You don't know if

1:30if this information came from Shopify,

1:32Booking, Expedia or any other company.

1:35But what if

1:37every tool or every company could just

1:38send its own UI to the chat? So instead

1:41of us looking at

1:42this thing we can just imagine that for

1:45the parts that are relevant

1:47we can have the relevant UI, the

1:48relevant UI for Shopify, from Hugging

1:51Face, from Monday and this can can be

1:54not only presentation as this can be

1:56interactive. So we want to be able to

1:58respond to a user click on this Hugging

2:01Face widget.

2:04So we don't have to imagine it anymore.

Evolution of the MCP UI standard and partnerships

2:06So back in May last year I released

2:08MCPUI. The concept was pretty simple.

2:11There were a bunch of stuff around it

2:13but the concept was pretty simple of how

2:16do we take UI and find some way to pass

2:19it over MCP. We need some general way to

2:22do that so we can both have MCP over

2:26sorry have UI over MCP and have the

2:29communication between the UI and the

2:31host. Obviously it also had community

2:33SDKs and the general motivation was

2:37we don't need to throw away everything

2:39we know about UI and UX just to get into

2:41this new world of agents.

2:44We can simply adapt and use that and

2:47preserve our branding and identity and

2:49still be practical.

2:51And

2:52just a few months back

2:54MCPUI we partnered with Anthropic and

2:57OpenAI to really put this into the MCP

3:00standard as the first official extension

3:03called MCP apps.

3:05And as you can see here it made kind of

3:08a big splash. We had support from a

3:09bunch of hosts. Now VS Code and Cursor

3:12and Claude and ChatGPT and like

3:15Microsoft Copilot and a bunch of others

3:17already adopted it and you have these

3:19really cool interfaces built in right to

3:22your your assistance.

Industry and community adoption

3:25And going back a little bit there were

3:27early adopters for MCPUI. So these are

3:29some of the companies

3:31shout out for Hugging Face Sean if

3:33you're here that adopted MCPUI. So even

3:36a year ago Shopify was already sending

3:38MCPUI chunks of all of millions stores

3:41of Shopify online stores send MCPUI

3:43chunks. Hugging Face all of Hugging Face

3:45spaces were MCPUI widgets.

3:49And now once it's standardized we have

3:51much bigger adoption.

3:53So we have a VS Code, we have a Cursor,

3:56we have Copilot,

3:58GitHub ChatGPT are supporting MCP apps.

4:01Not only that ChatGPT are recommending

4:03MCP apps as the way to build ChatGPT

4:06apps. So it's really standardized.

4:09Obviously shout out Postman and Goose

4:11and Claude

4:13the first one that released Claude apps

4:15that actually supported MCP apps. But

4:17it's not just support from the big

4:19companies or the big hosts. We also have

4:21huge community adoption.

4:23We have people that building plugins

4:26around MCP apps, building workshops

4:28around MCP apps

4:30building all all kind of support around

4:32MCP apps. Spy just announced support in

4:34MCP apps which is amazing. It's like a

4:36terminal, right? But we have UI in the

4:37terminal right now and we have all of

4:39these advocates that that are speaking

4:42about MCP apps. There are even companies

4:43that are built around MCP apps to help

4:46other businesses build those apps.

4:48We have an official MCP apps repo with

4:52with Anthropic and OpenAI. There's a an

4:54amazing community engagement. We

4:56recommend for you to check it out. We

4:57have a

4:58a work group public work group meetings

5:01and we're meeting tri-weekly once every

5:033 weeks just to push the standard

5:05forward because as we can see it's going

5:06to be the global standard for UI inside

5:09chat apps. And we're going to talk a

5:11little bit about the concepts behind

5:13MCPUI.

Core concepts: Passing UI over MCP

5:14Yeah, so let's talk about the core

5:15concept. So the first and obvious one is

5:18how do we even pass UI over MCP?

5:20Um

5:22so in the old world of a few months back

5:25when we wanted to do whatever let's say

5:27we wanted to create the best playlist

5:29ever we would type something into the

5:31chat and it would send out a tool call

5:34to our MCP server.

5:35So far so good. Um what we would get

5:38back in response

5:40would be text

5:42and as you know text is sub-optimal. But

5:45if we are using MCP apps what we can do

5:48is instead return a resource. So we can

5:51return this actual HTML back to the

5:54host. The host supports MCP apps so you

5:56can take that HTML and transform it into

5:59an interactive application.

6:01And when we say interactive we mean

6:03interactive. So this is not just

6:04presentational. MCP apps also

6:06standardize the way that this UI can

6:09talk to the user and to its back end

6:11because just imagine if the user wants

6:13to favorite this song then the

6:16sub-optimal thing that would happen is

6:18that for this UI to speak to Spotify's

6:20back end and and favorite this song and

6:23then later when the user asks Claude

6:25remind me which song I favorited Claude

6:27wouldn't know because the UI spoke

6:28directly to the back end. But MCP app

6:30standardizes this message passing so

6:33that every UI chunk sends message back

6:35to the host. The host gets this message

6:37message in this case like a tool call

6:39and the host decides what to do. In this

6:41case it decides to actually call the

6:42server tool but the control is in the

6:45hands of the host and everything stays

6:47in context.

6:48Okay, so seeing is believing. Let's see

Practical demonstration (PostHog and Claude)

6:51a quick example of what that looks like.

6:53So this is Claude like actual Claude.

6:56And let's say that I want to do

6:57something like analyze my funnel. So I

7:00type that in in the old world it would

7:03go out to let's say PostHog and I would

7:06get this textual response which is

7:08accurate

7:09but it doesn't really help me understand

7:10what's going on. I have to read this

7:11whole thing now and kind of try and see

7:14what's the deal.

7:15But with MCP apps instead of doing this

7:18I can just say show me.

7:20And now

7:23Okay, the clicker is not yet up to par

7:25but now what we'll have is this nice UI

7:29visualization actually created by

7:31PostHog. So they control the identity,

7:33the experience. It's actually their

7:35component that you would see in the

7:37website.

7:38And now I have like a really cool way to

7:41just see the funnel in one glance.

7:44That's not all. I mean the MCP app isn't

7:46just UI generated by the server.

7:49There are also really cool innovations

7:52from Anthropic and other companies

7:55to do generative UI on top of MCP apps

7:57or even first party UI in general.

8:00So for instance this Claude feature

8:02says

8:03let's say that I don't know what a

8:05funnel is which is

8:06reasonable.

8:07I can ask what a funnel is and instead

8:09again getting that long textual answer

8:12what would happen is that Claude would

8:14be able to generate this UI for me

8:17explain exactly what I need or create

8:19some UI that I need to do some action

8:22and present it to me in a way that is

8:24very digestible.

8:25This is obviously applicable to a bunch

8:27of other stuff and you'll see it in

8:28other hosts as well.

8:32So let's look at

8:33like another cool thing is here is that

8:35this is not just presentational. Like we

8:38said it's interactive so I can just

8:39click on it and it would give me a

8:42follow-up on the specific step of the

8:44funnel

8:45that I have a questions about. So you

8:46can imagine how this goes into into a

8:49bunch of other directions when you want

8:51to do interactive exploration.

Technical architecture: How it works

8:54So how does it work

8:56in general?

8:57So

8:59let's go over the stages.

9:01We went to the host and we prompted

9:04something. We asked for

9:06funnel data. What happened is that it

9:09sent out a tool call to our MCP server.

9:11And again instead of just returning text

9:14that tool was actually pointing to a

9:17resource.

9:18That resource was our UI.

9:21So if you look at the

9:24code for it then it's super simple like

9:26you just register a resource and you

9:28just have it. So return that resource

9:31back to the host.

9:32The host because it also supports MCP

9:35apps can take that

9:37transform it, put it if you see like

9:39look at just code wise if you want to

9:41build a host it just

9:42like

9:43react component that accepts that

9:45resource and also this callback which is

9:48the way that we handle messaging between

9:50the UI and the host.

9:52So you take that and you render it

9:53inside a sandbox so it's secure.

9:56Like we said it's not presentational, so

9:58we also click on it. And once you click,

10:01what happens is that there's a bunch of

10:03events going back from the UI, from this

10:05view,

10:07all the way back to the model.

10:09So, it can actually take out to do other

10:13tool calls or even follow up messages on

10:16your behalf or fetch additional

10:17resources,

10:19really completing this end-to-end

10:20bidirectional flow.

A new era of web interaction and user experience

10:23So, when we look at that, when we look

10:25at this flow, when we look at this

10:26architecture, it's not just technical

10:28change. It's not not just a technology

10:30that's changing. It's also how we

10:32perceive the web. Because this is

10:34ushering a new web, a web where

10:37we don't need websites. We don't need

10:40all of those tabs just to organize

10:43an anniversary. We don't need to

10:45familiarize familiarize ourselves with

10:48bunch of different UIs.

10:51We don't need to

10:52force ourselves to pass our intents to

10:55dashboards of companies where 90% of

10:57this UI is not relevant for an agent. If

11:00I have a personal assistant, I don't

11:01need most of it. I can just take this

11:04and I can just decompose it to atoms and

11:06let my agent build them for me, right?

11:10Because I I have my assistant I convey

11:11my intent to. So, for example, my agent,

11:14my proactive assistant can say, "Yeah, I

11:16see that you have an important

11:17anniversary coming." And instead of

11:18Google just sending the data, Google can

11:21actually send a chunk right of the

11:22Google calendar. And now, this is a

11:24win-win-win because for Google, it's

11:26amazing. It gets to keep its identity.

11:29For me, it's good because I know I know

11:30this interface. I I recognize that it's

11:32Google.

11:33But it's good for the host as well

11:35because the host doesn't need to render

11:36that.

11:37We have domain experts. We have

11:39companies that spend decades in

11:41perfecting user journeys and we can't

11:43expect Claude or ChatGPT or any host to

11:46automatically generate all those UIs.

11:48And if I continue and I ask something

11:50for Amazon, so instead of Amazon just

11:52sending me the data of the product and

11:54that's we reducing itself to be just a

11:56database, it can just send this chunk of

11:58Amazon. And I look at it and say, "Oh,

11:59it's Amazon. Okay, I know."

12:01And then, I can complete the entire

12:03planning of my anniversary,

12:07the entire planning in just one

12:09assistant chat, right? And you can see

12:11that it pulled just the relevant parts

12:13of it because it pulled

12:15the venue from Booking, but it knows me.

12:17It knows that I prefer something that's

12:18close to nature and not in the city. So,

12:20it also knew to pull the the map from

12:22Booking. That's because the assistant

12:23knew me. Booking doesn't know me that

12:25well, but Booking knows how to how to

12:27book a venue. So, this is real synergy

12:29between those. Um

12:31and we have to think about this new

Interaction mindset and message spectrums

12:33interaction mindset. Why? Because we

12:35have to remember that in this flow,

12:37the apps, the services, the tools, they

12:40no longer own my journey in the in the

12:42platform, right? If I click something in

12:44Booking, it doesn't go to Booking's

12:46backend. It goes to it goes to the host

12:48like we said. So,

12:51what we did with MCP apps is that every

12:53click, every interaction actually sends

12:55this kind of like message back to the

12:57host.

12:58Um and like we said, it this is breaking

13:01the model for for all of the for all the

13:04companies. So, this is like a new

13:05philosophy.

13:06But the messages can can be put on a

13:09spectrum.

13:10So, this spectrum represents how much

13:12control the UI wants for itself and how

13:15much control it gives to the host. So,

13:16for example, notification, that's the

13:19highest level of control the UI has. It

13:21just notifies the host that something

13:22happened. For example, if I increase the

13:24number of items in my cart, it doesn't

13:26need to to go to the host. It goes back

13:28to Shopify. But just notifies the host

13:29that something happened. A tool call is

13:32the UI telling the host call a tool. And

13:34prompt, that's like the the UI just

13:36releases all control and say tells to

13:38the host, "Just run this prompt and see

13:41what happens."

13:42Um so, MCP apps really standardizes this

13:45new software flow and that's something

13:47that we need to remember.

13:48Perhaps in 2 years, we won't have

13:50browsers as as we know them. We won't

13:52have websites as we know them. We'll

13:53have a personal assistant that accepts

13:56only small chunks of UI and this will

13:58replace our our web journey.

14:01Um 2026 is going to be the year that

14:04we're going to standardize

14:06MCP apps as a global standard for UI.

14:08And um

14:09Yeah, but the spec is still evolving. I

14:11mean, there are a bunch of stuff

14:12happening. Just in those last, I think 2

14:14months, we shipped all of those or

14:17almost all of those based on community

14:19feedback, based on community work done

14:21by the work group, which you can join.

14:23So, you're encouraged to do this.

14:25There's the official SDK, XApps. You can

14:28just use that to build your

14:29applications. It's very simple. There

14:31are built-in skills. So, you just let

14:33your coding agent do it for you. You

14:35don't actually need to code anything.

14:36God forbid.

14:37So, you have this and then,

14:40it's important to remember that the

14:41reason to use this SDK is that it's just

14:45always compliant with the spec. Like we

14:47always update both.

14:48So, feel free to use it.

14:51You can see that just the issues and

14:52stuff that people open on it. So, please

14:54feel free to do it.

14:55So, what's next for MCP apps? Obviously,

Future outlook: Reusable views and model-UI interaction

14:58there are a bunch of stuff in the

15:00pipeline. But just to give you like a

15:02taste.

15:03So, we have reusable views. The idea

15:05here is that today, for simplicity,

15:08whenever you render an app, we actually

15:10render a new one. So, let's say that

15:12you're working with the same app

15:14multiple times. If you keep re-rendering

15:17it and you have some heavy applications.

15:19So, for example, Autodesk had this

15:21problem.

15:22It just takes a really long time and

15:24your experience will be bad. So, we are

15:26working on ways to solve it. The first

15:29one is just why can't we just reference

15:31that same view and push data into it?

15:34But the second one is actually to take

15:37this and flip the script.

15:40So, another thing that we've been

15:42working on is interactions not for the

15:45user to interact with the with the app

15:47and then the app sends it to the model,

15:48which we just saw.

15:49But what if we want the model to be able

15:51to interact with the view? We want

15:53Claude to be able to click on buttons or

15:55to fill forms or do anything inside the

15:58UI. So, today we have solutions like

16:00WebMCP and things like that. We are

16:02working on a standardized way. So, when

16:04the user interacts with the model, the

16:05model the app can actually expose tools

16:07for the model to interact with it, thus

16:09closing this loop. Um and you can you

16:12can check out the PR. It's still an open

16:13PR, but that's something that we work on

16:15in the in the committee.

16:16And the most important thing is that MCP

Spectrum of UI generation: Predefined vs. Generative

16:19apps supports all ways of all the ways

16:23of generating UI. Because that's a

16:25question that we always get asked. What

16:27about generative UI? So, if we put it on

16:30a spectrum, then we have the predefined

16:31UI. That's like the classic MCP app.

16:33That's like Airbnb building its own UI,

16:35sending it to Claude or to ChatGPT.

16:36That's predefined. That's a black box.

16:38That's good for 8% of the cases. But we

16:41have things that are a little bit more

16:43structured like declarative UI. Like if

16:44you know JSON render or

16:47things like that where the app can just

16:50declare the the structure of the UI, but

16:52the components are being rendered by the

16:54host. So, the host and the app are

16:56sharing the UI functionality and

16:59visibility. That's good for hosts that

17:01want to control the look and feel of the

17:04apps. For example, just imagine Claude

17:06probably doesn't want to have a Booking

17:07UI then an Airbnb UI then an Expedia UI

17:10in the same chat flow, right? So, this

17:11is pretty pretty good middle ground. And

17:14in the other hand, you have the fully

17:15generative UI, which is what

17:18Claude Anthropic released a few weeks

17:20ago

17:21where the model just generates the UI

17:23out of thin air. Now,

17:25the nice thing is that MCP apps is

17:27really agnostic to how you generate the

17:29UI. MCP apps doesn't assume that Airbnb

17:32created created the UI.

17:34Any any part of this process can create

17:36the UI and the feature that Claude

17:38released, which is the generative UI on

17:40the fly, actually uses MCP apps under

17:42the hood, right? So, it's a generative

17:45UI that's being streamed into an MCP app

17:47and then MCP apps closes that closes

17:49that loop. So, it's good for third-party

17:52UI, which is the black box, but also

17:53first-party UI. So, that's

17:55that's something that we're working on

17:57standardizing. Um we're doing a lot of

18:00work to do interoperability with other

18:02UI protocols like A2UI, which is the

18:05generative UI protocol by Google, WebMCP

18:07like we said, and we just want to build

18:10a unified standard for UI in chat apps.

18:13Um yeah, and that's a like a cool

18:16summary about MCP apps. If you build an

18:18MCP app, it runs everywhere. LibreChat

18:19is an MCP MCP app client. ChatGPT is a

18:23ChatGPT app client, but the same

18:25application works for the same codebase

18:27works for every

18:29every host.

18:33Cool.

18:34So,

18:36if you think about it, this isn't just

18:38some tech, right? This isn't some

18:39protocol. This is a new way to

18:41distribute applications.

18:43>> [clears throat]

18:43>> So, if you look at just a few months

18:45back, Sam Altman said, I think it was

18:47October, that 800 million people are

18:49using ChatGPT on a weekly basis. That's

18:5210% of the world's population.

18:54It's insane. The internet took like 13

18:57years to get to that number of users.

18:59And

19:01now, it's not even 800 million. It's a

19:03billion. And it's not just ChatGPT. It's

19:05also Claude and VS Code.

19:07You have a potential audience that is at

19:09least 160 times the number of users that

19:12iPhone had when the App Store launched.

19:15So, how do you get started? There are

19:18two main ways. As a server, like if

19:20you're developing an app. So, like I

19:22said, you go to XApps repo. There's a

19:24key QR code if you want to do it

19:25quickly. You have the skills. Just use

19:28that.

19:29The other way is in details. The other

19:33way is that if you're a host, so if

19:35you're building an application that

19:36actually hosts application, you can just

19:40take MCP UIs SDK, which is the

19:42recommended client SDK. It's also just

19:44fully compliant with the spec. You just

19:46take that React component and you're

19:47done. It just supports apps out of the

19:49box and then get hundreds of apps from

19:52booking and other providers out of the

19:54box.

19:55Um so just just to emphasize

19:59there was a slide about skills. So it's

20:00really easy to create an MCP app. Just

20:02if you visit the site we just pass

20:04through it but it's just a skill. You

20:05just push it to cloud code and you

20:06generate an MCP app out of thin air. If

20:09you want to get involved in the spec

20:10itself in how MCP apps are going to

20:13operate and if you want to help build

20:15the future of UI in in agents

20:18then obviously visit the official MCP

20:20apps repo that's X apps. Open an issue,

20:23open a PR, participate in the

20:24discussion. We also have the official

20:27discord for the MCP apps committee where

20:30we do surveys and we interact with the

20:32with the community and with other hosts

20:34to to decide on things that relate to

20:36MCP apps. And there's the community

20:38discord which is I think the coolest

20:39place to be because you have all of the

20:40users of MCP apps be it

20:43people that build servers, companies

20:45that build hosts that just talk to each

20:47other, share tips,

20:49troubleshooting,

20:50asking for features.

20:52That's the place to be if you're

20:52interested in MCP apps.

20:55Uh so we said some scary stuff along the

20:57way

20:58like the web is dying and there's like

21:00all the websites are meaningless at the

21:02point at this point but

21:03I kind of hope that you don't look at

21:05this as a threat but more as an

21:07opportunity like basically a once in a

21:1020 years opportunity to think about your

21:12apps again and think what is the core

21:15user experience that we're looking to

21:17get and imagine it not as a monolithic

21:20single app where people go to but

21:21actually a part of a new web of

21:23applications, these chunks of UI that

21:26allow you to communicate between each

21:27other using a smart model in between.

21:30That's that's pretty insane.

21:32And with MCP apps even this early in the

21:35ecosystem in this early in how agentic

21:37apps work we already have

21:39standardization and they all work the

21:41same. You can write your app once and it

21:43will run everywhere.

21:45So what does the future look like?

21:48We're not yet at Jarvis

21:50but with MCP in general and MCP apps in

21:52particular you can bring experiences

21:54that were impossible just a few months

21:56ago to every host in the world including

21:59your own.

22:00So thank you. Thank you very much.

22:03>> [applause]

22:09[music]

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com: free, unlimited, no sign-up.