Full transcript
0:01Hello y'all. My name is Pedro. I'm the
0:04co-founder of Manufact. And uh today I
0:06want to talk to you about MCP apps.
0:09Specifically, we're going to talk about
0:10the primitives. So, how these apps are
0:13built, how they work, and what they
0:14allow you. How to distribute MCP apps.
0:17So, what is behind the discovery
0:19mechanisms
0:20of MCP servers and apps in general. And
0:23uh why I think you should care about
0:25this because this is how all software
0:27will be used.
0:31So, I'm sure most people here listening
0:33to this talk know what an MCP is.
0:36MCP has been around for quite some time
0:38since 2024.
0:41For a full year, it was a
0:44it became very uh say frequent talk
0:46amongst developers and companies that
0:48were rushing to build these MCP servers.
0:51MCP apps are less familiar concept.
0:53They've been around also for some quite
0:55some time uh more or less uh
0:59since the uh the end of 2025.
1:03But when I talk to companies and people
1:04in general, I see that many people don't
1:06understand what they are and don't
1:08understand they can build them. And uh
1:11specifically, they don't know how to
1:12distribute them.
1:15MCP apps, but also they don't know the
1:18new way to distribute MCP servers as
1:20well.
1:21So, I hope by the end of this talk you
1:22going to know about this and you're
1:24going to be ready to build your first or
1:26iterate on your MCP uh server and app
1:29and you're going to be able to share it
1:31with the world in a more efficient way
1:32brings you more customers and more
1:35users.
1:38A little words about me and the Manufact
1:40uh my company. Uh we build open source
1:43SDKs and the tools for MCP and MCP cloud
1:47uh of the Manufact.
1:50Open source SDKs uh by the name of MCPUs
1:54uh allow developers to build servers
1:57um
1:57>> [clears throat]
1:58>> clients and agents in an easier way. So,
2:00we provide an abstraction over the
2:02official SDKs that allows developers to
2:04ship faster without worrying about how
2:06the spec works beneath.
2:08We have 8 million plus downloads across
2:10our SDKs, and we have 10K stars on
2:13GitHub.
2:15Also open source, uh
2:17the
2:18other product is the inspector. Uh it's
2:20an open source inspector, again, uh
2:23something comparable to the official
2:24inspector from the model context
2:26protocol maintainers
2:28that allows you to test these MCP
2:30servers and apps specifically uh on your
2:32local machine.
2:34Once you build, once you test it,
2:37we have built the cloud for you to ship.
2:39The Manifold Cloud is a cloud vertical
2:41for MCP. We provide all the primitives
2:42for you to be able to ship MCP servers
2:45from your GitHub repo and test them
2:47immediately, share them with your team,
2:49run emails, run publishing checks to
2:52make sure that your app is ready to be
2:53put uh submitted, and many other
2:56features that are
2:57completely specific to MCP.
3:00Of course, we really believe in MCP.
3:03So, let's look uh a bit in the history
3:05of MCP and how did we get there.
3:07So, MCP was launched in 2024, and by the
3:10end of uh May 2025, Idel Solomon, the
3:13other co-founder, started working on
3:14MCPUI, which is this way to kind of MCP
3:18servers that return UI components.
3:21Then, uh
3:22this was like many many people started
3:25talking about MCPUI because this is like
3:27such a great opportunity to ship UI with
3:29your MCP servers to agents. So,
3:31it is interactive experiences where the
3:33agent is calling tools, but it's showing
3:36UIs to the user.
3:37This created a lot of movement. Many
3:39people enjoyed uh this proposal, and the
3:42ChatGPT at some point released the app
3:43SDK,
3:45which is a way to create these
3:47interactive
3:48MCP apps. So, basically MCP servers also
3:52return UI elements.
3:55Also, at the end of 2025, quite
3:58silently, both Character AI and Cloud
4:01released and opened their stores for
4:03MCP.
4:05These stores allow you to submit your
4:07MCP server
4:09and have [clears throat] a one-click
4:10install experience for your users.
4:12For the most time, these stores were
4:16closed in such that were
4:17um
4:19designed and
4:21only allowed for design partners.
4:24But things have changed, and I'm happy
4:26to talk about this later.
4:29In January 2026,
4:31MCP UI
4:33I say converted to MCP apps. MCP apps is
4:38now the official extension of the Model
4:40Context Protocol that allows to return
4:42UI elements within MCP servers.
4:46So this timeline is kind of an
4:47explanation of how the protocol evolved.
4:49And I think still I think two major
4:52things happened in this timeline.
4:54First, MCP apps.
4:56MCP servers are not only returning JSON.
4:59And that allows much richer experiences.
5:02And the second thing, maybe even bigger,
5:04is that the stores opened. This was a
5:06great uh a huge move by the model
5:08providers
5:10probably OpenAI, Perplexity, and
5:13basically every LLM client out there
5:16to say, "Oh, MCP is the way
5:19and we [clears throat] want to have a
5:20way for people to publish vetted and
5:23quality MCP servers so that people can
5:25use them with a one-click install
5:27experience."
5:31This is the situation right now with the
5:32stores.
5:34The uh
5:35that are now being submitted to
5:36Character AI and Cloud
5:39apps for Character AI and connectors for
5:41Cloud
5:42increasingly being accepted. As I was
5:44saying in the beginning, this was uh
5:47each one of them was gated behind design
5:49partnership because the ecosystem was
5:50very young, but now it's a GPT and
5:52called are both accepting more and more
5:54apps.
5:56So, this is a uh
5:57this is the moment to publish yours.
6:01So, let's see what MCP apps actually are
6:04and what you can do with them.
6:09So, an MCP app works in the in the
6:10following way. Uh much of this is very
6:12similar to MCP. The model
6:16is a
6:17in the host owns the tools.
6:20The tools are in a MCP server. But, the
6:23MCP server in this case doesn't return
6:26a JSON string again, but it returns a
6:28widget in a sandboxed iframe.
6:31So, the experience you see is your model
6:34is a streaming text. At some point, it
6:35decides to make a tool call, but the
6:37tool call is not just returning JSON, it
6:40returns a UI just underneath. And this
6:42UI is a sandboxed iframe, so you can as
6:45a company developing these apps, you can
6:48put almost whatever you want.
6:50But, it doesn't end there.
6:52Actually, there is a bidirectional
6:53communication that happens between the
6:55iframe and the host application. So,
6:57from the iframe, from the MCP app UI
6:59elements, you can send messages back to
7:02the host. You can interact in several
7:05ways. I'm going to talk uh more about
7:07that uh later.
7:09The way this works is that MCP uh
7:13declares UI resources
7:16at initialization time.
7:18When the model calls the tool and it
7:20populates the arguments of the tool,
7:22uh the tool can then populate the
7:24arguments of the UI resource, and that
7:26can be then displayed and rendered by
7:28the client.
7:32As you see here, this is the kind of
7:33experience that you can see in an MCP
7:35app.
7:36The MCP server returns tool returns uh
7:41UI resource that is populated with the
7:43tool arguments.
7:44And here you see. So, without UI you
7:46would see like a wall of text. The UI
7:48allows you to organize the information
7:50in a more human readable way.
7:53So, this is uh is a like the basics of
7:55MCP ops. Uh I think they're many many
7:58times uh they've been talked about.
8:01And today I wanted to show a bit more of
8:03what you can do because this is not
8:04often mentioned and I think it's very
8:06interesting to design new experiences
8:08which this new protocol allow.
8:17So, first of all, again, the UI is
8:20displayed in the chat and it exposes a
8:22communication channel
8:24between the UI element and the host
8:26application. So, the host application
8:28will listen for these messages going
8:30through these channels and will react
8:32accordingly.
8:34So, this is the first primitive that I'm
8:35going to talk about. So, model context.
8:38In the UI you can show whatever
8:39information you want. For instance, in
8:41this case we're showing three articles,
8:44but the model doesn't really know it
8:45doesn't really cannot really uh
8:47introspect in real time what is going on
8:49in the UI.
8:50But the protocol
8:52mandates this state uh or this set state
8:56primitive where you can update the state
8:58of the model with respect to the UI
9:00components. So, from the widget itself
9:02you can call this is an MCP use syntax
9:05that makes this a bit easier, the set
9:08state primitive,
9:09and you can update what the model knows
9:12about what's being displayed. So, here
9:14we have a little demo that shows this.
9:17Of course, uh the the the message uh
9:21prompts the tool
9:23and the tool shows the UI.
9:26The state uh of the of this UI element
9:29is that nothing is selected and the
9:30model knows about this.
9:33But if you
9:34modify the UI state, you can
9:37communicate this state change into the
9:39model itself. So, then basically, if for
9:42example, here I send another message,
9:44the model will be aware of what happened
9:46in the UI element.
9:48And you can do this by simply setting
9:51this
9:51using this uh
9:53um this primitive set state and update
9:56the state that the model knows about.
10:01UI message. So, this is another very
10:03cool feature
10:04where from the UI element the UI widget
10:07that your tool returns, you can send
10:10messages back to the model.
10:12So, not only the interaction is I am a
10:15user, I have my chat interface, I see
10:17the UI, and I want to send another
10:19message. Or maybe there is some
10:20contextual message that you can you want
10:22to send. For instance, here we have the
10:24same shoe example, and you might want to
10:28learn more about Trey Blazer Pro.
10:30And uh you can
10:32of course link the click of this button
10:33learn more to the primitive send
10:35follow-up message, and this will send a
10:37message to the chat itself, and the
10:39model can start giving you more
10:41information about the Trey Blazer Pro
10:43shoe in this case.
10:45Um clients have different behavior
10:47regarding this, and this is true for
10:49many of the MCP features.
10:51For instance, Cloud will display the
10:53message in the chat input
10:55and tell the user like the user has the
10:58choice to send it or not.
11:00While OpenAI is a bit more integrated in
11:02this sense, it directly sends the model
11:05the message to the model
11:07and uh and starts streaming immediately
11:09the answer to that message.
11:17This is a very cool feature. Uh so,
11:19again, we have the tool, uh and uh we
11:22have a UI element that's populated from
11:24the tool itself, right?
11:26If the model streams the input tokens
11:30into the tool arguments, you can uh in
11:33live
11:34take those partial input
11:37and update the UI incrementally.
11:39So, as you see in this case, we see that
11:41the
11:42the
11:43the the the tool inputs are being
11:45populated uh dynamically or gradually,
11:48and the
11:49the UI reacts accordingly. I have a very
11:52cool demo about this just later in a
11:53video where in one of the coolest demos
11:56of MCP apps uh
11:58in the uses exactly this pattern.
12:02So, you can, for example, imagine like
12:04uh you could have a UI component that
12:06renders something like an SVG, and there
12:08is MCP uh MCP apps doing that.
12:12We also seen uh we actually created a
12:14Remotion MCP app where uh we use
12:16Remotion to create a video with React,
12:19and uh we render the Remotion video
12:20inside the widget in real time as the
12:24tokens are streaming in.
12:27Another thing you can do is from the
12:30from the widget itself, you can call
12:32other tools.
12:33So, first of all, you can call the tool,
12:34of course, uh in the
12:37in the
12:38in the tool that was originally called
12:40to gather other data, but from the UI,
12:43for example, you can have a button that
12:45triggers another tool call to gather
12:48additional data about what
12:49what is there in the MCP server.
12:53Again, the primitive is very simple.
12:55This is code on the left here is always
12:58um from MCP use.
13:03This is another very interesting thing
13:05that you can do with MCP apps.
13:07So, sometimes uh what happens is uh for
13:09instance, you uh want your MCP server to
13:12return certain informations,
13:14but you want to um
13:17not show the full information because
13:18maybe is uh
13:20there's private information that you
13:21don't want to give to the to the model
13:23providers,
13:25and therefore, [clears throat] you might
13:26want to redact that
13:28right? This is like a known privacy
13:30issue with MCP servers that you don't
13:32want to return and put into the uh
13:34>> [clears throat]
13:36>> your private information. And MCP uh
13:39also allow you to do that. So, when you
13:41call a tool,
13:43you return a widget, which is populated
13:44with some arguments. You can return
13:47other
13:48outputs as well. As in normal MCP
13:51servers, the the return of a of an MCP
13:54tool is
13:56list of outputs of different types. You
13:58can imagine in this case, there is a
14:00structured output, which is sent into
14:03the widget itself. And there is an
14:05additional output that can be sent
14:07directly to the model. So, something
14:08common that you do is you show a very
14:10rich UI, like in this case, and uh
14:14and this is what the [clears throat] UI
14:15will show. So, this is a card showing
14:16the information private information of
14:18of this person, but the model
14:21will only see the information you want.
14:23So, there's two types of output, the
14:25ones that are shown in the UI, to put it
14:28simply, and the ones that are sent to
14:29the model.
14:31Like a common to maybe understand this
14:32better, a common pattern that you see is
14:37you show the full information in the UI,
14:39and then you instruct the model with a
14:41text output of what the user is seeing.
14:45For instance,
14:47we return a uh this this UI card, and we
14:50can even return
14:52um nothing to the model.
14:57But just say, the user is seeing his
15:00private information in the widget above.
15:03So, this is a pattern that allows you
15:05to, you know, give uh allow it like uh
15:08experiences in in fields where maybe
15:10sharing data to the LLM is not possible
15:13because of privacy issues. In this case,
15:15you can show the UI to the user, but the
15:18model won't see the data that you
15:19display in the UI, unless you choose so.
15:23There's uh another set of
15:25functionalities which I think are minor
15:27or let's say less
15:30>> [clears throat]
15:32>> intuitive or less advanced. Uh
15:35Here we show the request display mode
15:37which basically your MCP app widget
15:40is displayed in uh
15:42in line with the tool call.
15:44But it can even put the full screen. So
15:47the full chat is going to be
15:49your MCP widget
15:51and uh input box is going to be overlaid
15:53on top of the widget. And for instance,
15:55this is very cool for video editing. You
15:57can imagine a a widget showing some uh
15:59graphical interface and uh you can chat
16:02that we improve the the what's the shown
16:04inside the widget and the model can
16:06directly stream into the widget you're
16:08looking at.
16:09It can also be put in a
16:10picture-in-picture or in line which is
16:12the normal case.
16:14Um
16:14>> [clears throat]
16:14>> there's a
16:15other primitives that allow you to open
16:17external links from the MCP widget
16:19itself.
16:21>> [clears throat]
16:22>> You can listen to the theme of the OS so
16:24that you know your MCP app is
16:26synchronized in theme with the host your
16:28users are using.
16:30And there are many other things.
16:36So I wanted to show you here a few
16:37videos of MCP apps because so far I've
16:40just been showing uh uh
16:42uh some mock-up that I created for this
16:44presentation. Uh but this is for example
16:47in Cursor we're using the MCP app. Uh
16:49Cursor is one of the clients uh that
16:52supports MCP apps. And as you see here
16:55uh our MCP app returns the analytics of
16:57the remote MCP server app that I was uh
16:59talking to you about just before. And
17:02for instance, this is very uh useful in
17:04in analytics. Uh for instance, we use
17:07Pulsar MCP a lot and then the Pulsar MCP
17:10will show you a UI element with your
17:12with your analytics.
17:13So that you as a human can understand
17:15what's going on, but the model itself
17:17can read those analytics and go do its
17:19job on the code you're you're writing.
17:22Um
17:24on Claude,
17:25so this is the demo I was telling you
17:26about. So, here we're using the
17:28Excalidraw MCP server, and here you will
17:30see the streaming functionality that I
17:32that I mentioned as before.
17:34So,
17:35you can see here that Claude is first
17:38reading the
17:39some instructions that are returned as
17:41tool by the Excalidraw MCP server. And
17:45uh at some point it will call the tool
17:46which is showing the canvas, and it will
17:49stream tokens into the canvas, and I
17:51think we motion it's one of the coolest
17:53animation around how those tokens are
17:55shown.
17:56As you see here, this is like a mermaid
17:58syntax that is sent into the tool, and
18:01the the UI updates as the tokens are
18:03streamed in.
18:05There's some of the some of the coolest
18:08demos here. By the way, very very useful
18:10to draw diagrams as well.
18:13Um and this is again ChatGPT um
18:17uh using the Manifold uh MCP app uh
18:20showing the same analytics that I was
18:22telling you above.
18:24And as you see here, the rendering is uh
18:26is is a bit better in ChatGPT uh
18:29it's better.
18:31Basically, this is very similar to how
18:33it uses.
18:35Maybe uh this is a good time to talk
18:37about the client support. There's many
18:38clients that support MCP app. Some do
18:41more, some do less uh and uh
18:45these three I think are the main uh that
18:47people are using.
18:49And uh of of course, all the different
18:51versions of Claude and ChatGPT uh so
18:54both
18:55Claude Co-work,
18:56Claude Desktop support MCP app, ChatGPT
18:59and Codex support MCP app. Uh and Cursor
19:03uh both in the
19:04>> [clears throat]
19:05>> agent mode and in the normal side chat
19:07supports MCP app, but there is uh many
19:09more that support MCP app such as VS
19:11code and and and comes as others.
19:15And I think it's actually interesting to
19:16to mention here uh that another thing
19:19you can do you might be developing your
19:21MC server and uh you don't know if the
19:24host where your users are using the MC
19:26server supports or not MC
19:28[clears throat] apps.
19:29What you can do is uh since
19:31we know what the client is from the
19:33metadata that is exchanged uh
19:35uh the MC app
19:36uh you can um return a UI element only
19:41for those um host that actually accepts
19:45and can render those um
19:47those uh widgets.
19:49And then this is not really a big deal
19:51because most uh non-MC app clients so uh
19:54MC client that don't support MC app will
19:57not will simply not show the widget. But
19:59I found developing these servers many
20:01times that if you don't show the widget,
20:03you need to return a different output
20:05because um
20:08it
20:08some of the information was returning
20:10the widget but maybe you want to give it
20:12to the model if the widget is not shown.
20:14Uh so this is something also MC user
20:16helps you with with some primitives that
20:19um
20:20that allow you to to know if the client
20:22uh your MC server is connected to
20:24actually supports MC apps or not.
20:30Again, um
20:31a little
20:33uh idea of how you can build these MC
20:35apps with MC users. We are one of the
20:37most popular SDKs to build these uh MC
20:40apps. The way we design our SDKs that
20:43basically you design your MC server uh
20:46as you always did. So you have your MC
20:48server constructor and then you define
20:50tools.
20:51And from the tools, you can simply
20:54return widgets
20:56which are automatically registered from
20:59this widget file in the resources
21:01folder. So whatever you put as a widget
21:04file in the resources folder will be
21:06registered as a UI resource that you can
21:08return from a tool.
21:10And the widget um
21:13the widget file is just a React uh
21:15component uh and you can also use your
21:18existing uh UI components.
21:20And uh it will be compiled
21:23into HTML and CSS.
21:25>> [clears throat]
21:26>> And then um returned and linked it to
21:28the tool.
21:31We have a scale uh
21:32we have a template. Uh you can just run
21:34NPX create MCP app and uh it will give
21:37you a template that you can serve.
21:41So, let's talk about distribution and
21:42discovery, which I think uh it's uh of
21:45course a very important topic. Uh maybe
21:48uh even less known than how MCP apps
21:50work. I'm talking to many people and
21:52they don't know there's a store for MCP
21:53and they don't know how to submit, so
21:56I wanted to talk about a bit about this
21:57as well.
22:01So, the store is like a huge new
22:03distribution channels. Again, you're um
22:05bringing the three most popular clients,
22:07ChatGPT, Claude, and Cursor,
22:10which
22:11the three of them, they all support a
22:13self-serve submission process.
22:15ChatGPT was one of the first supporting
22:17this. Claude, uh since a couple weeks
22:18they have um self-serve submission form
22:21for team and enterprise uh
22:23accounts. [clears throat]
22:25And also Cursor
22:27allows you to submit their MCP server
22:29set uh
22:35The way you submit is different for all
22:36three, but basically what happens is
22:38that you need to make sure that your MCP
22:39app is compliant. MCP apps or servers
22:42can be both uh submitted in all these
22:44three stores, so you it doesn't need to
22:46return a UI your your server to be
22:47eligible for submission.
22:49Um and the three processes to get your
22:51app submitted is different and they have
22:53different speed. So, it's going to take
22:55maybe a bit more on on Claude uh for now
22:58uh and uh ChatGPT instead is it's up a
23:00lot the acceptance of these uh of these
23:02apps.
23:04And
23:05again, the process is you link your
23:07remote MCP server.
23:09They will scan the tool. And they will
23:11make sure that all the tools are
23:13correctly annotated.
23:15And have the correct arguments and
23:18um
23:19And once this is done, they're going to
23:20scan the the authentication as well. So,
23:23if your server requires authentication,
23:24you have to declare it and you need to
23:26make sure that it works.
23:28There's a few more different steps which
23:30are details for all the all the
23:32providers.
23:33Uh but it's important to say that once
23:35your app is submitted, it's going to be
23:37partially manually or partially
23:39automatically tested. So, you will have
23:41to provide some test cases and some test
23:43prompts. And then
23:45it will be either accepted or rejected.
23:49And
23:50if accepted, you're going to be able to
23:52publish it and make it available on the
23:54stores that you can find on
23:55chadigpt.com/apps
23:58on the connectors directory on
24:01uh cloud or on the
24:03>> [clears throat]
24:03>> the cursor directory.
24:06Again, we we we did the many submissions
24:09and we we try to make this process
24:12easier. So, if you want to submit your
24:14app, I think you should go to
24:15manifester.com where we vet your app to
24:18make sure that it's um
24:20ready to be submitted. So, we check and
24:22we try to do all the checks that those
24:24clients will do in the submission
24:25process. And also, we run
24:28we generate some of the submission
24:30artifacts that you need to submit like
24:32screenshots and test cases for you in in
24:35our cloud directory if connected to your
24:37MCP server.
24:40Something very very cool about this is
24:42that once your app is in the store, not
24:44only can people find it by searching on
24:47the store, not only
24:48>> [clears throat]
24:48>> you can send a URL to your customers and
24:51they're going to be able to install your
24:52application in one click. So, you don't
24:54have to share that ugly JSON file
24:56anymore with your MCP configuration.
24:59But it's very important that dynamic
25:01discovery of MCP server is happening.
25:04Today Cloud is the only client that
25:06actually does this, but for all apps in
25:09the stores, when Cloud needs is like
25:12assigned a task that doesn't have a
25:14specific tool to do,
25:16it will actually search in the MCP
25:18registry for the right connector to do
25:21the task.
25:22So imagine what this means for your
25:24particular product. All the people
25:26There's many of course active users on
25:28those applications or more than billion
25:31active users,
25:33which will manifest an intent directly
25:35in the chat and through the intelligence
25:37of the model, the model will choose what
25:39is the best connector.
25:42And if you're there,
25:45and you do your work to be the connector
25:48that is selected,
25:49this is going to be like a a huge wave
25:52of uh
25:53high intent individuals
25:56that want to need your product and will
25:59find it uh
26:00dynamically and organically on those on
26:02those platforms.
26:04So this is very important.
26:07Cloud does this today
26:09and [clears throat] ChatGPT is expected
26:11to do this pretty soon.
26:15So that was my discrete descriptive part
26:18of the talk.
26:19I just want to uh
26:21uh
26:22I think it should be
26:25clear by now how important it is to be
26:27on the stores.
26:29I can bring my experience. Being on the
26:31store brought us a lot of traffic.
26:34Personally, as a user of MCP,
26:37today I'm checking if a product has an
26:38MCP server and that's for me is like the
26:41most basic buying decision.
26:43I run most of my day-to-day work on
26:46Cloud Co-work or Cloud Code because I
26:50love the the the possibility to share
26:52the context between my code base and my
26:54different connectors. And this to me is
26:57so important. For instance, one workflow
26:59that I that I often run is I have my
27:02Granola MCP where I have my meeting
27:04notes. I have Linear where I track my
27:06tickets. Of course, I'm in my code base
27:08if I'm using this from Cloud Code. And I
27:11can basically pull the meeting notes
27:13with some customer feedback and feed it
27:14back in the in Linear maybe I create
27:17tickets for the rest of the team. And
27:18then I have the agent that pulls the
27:20Linear ticket through the Linear MCP and
27:21just starts doing it. Opens the PR.
27:24And uh
27:26and uh and closes the Linear ticket. And
27:29uh I mean, in an ideal world, it would
27:31even send an email back through MCP to
27:33the customer saying, "Oh, this is
27:34fixed." But
27:35maybe we're not there yet. Um
27:37but uh but this is definitely true. And
27:40in fact, just a few days ago, Paul
27:42Graham, uh the founder of Y Combinator,
27:44said, "Uh AI apps are the new browsers."
27:47And in this case, uh the AI apps are
27:50Cloud Code, Codex, Cloud Code Work. And
27:53I fully agree with this.
27:55If you think about it, Google Search in
27:57a way has been
27:59substituted by looking on ChatGPT.
28:02So, now that we have connectors where
28:04you cannot only search, but you can also
28:06do stuff in the real world,
28:09>> [clears throat]
28:10>> all those all those um operations are
28:12going to be moved to the chat as well.
28:15So, in a way, I think uh that if AI apps
28:18are the new browsers, the ChatGPTs are
28:20the new websites. And uh as a website,
28:23they can return a UI with MCP apps.
28:28So, again, uh I don't want to look at
28:31your dashboard anymore. I want to use it
28:33in Cloud.
28:34And if any dashboard, I want to see it
28:36in the Cloud Code application. So, ship
28:38an MCP app. Thank you very much. I hope
28:41you enjoyed the talk and I'm uh hope
28:43there is any questions about this and
28:44super happy to help.
28:46Um by now, have
28:48a very uh expert on the topic.
28:50So, thank you very much. Have a good
28:52one.