Skip to content

Commit 53f1800

Browse files
committed
Revise MCP Apps extension proposal blog post
Updated the blog post to clarify the MCP Apps Extension proposal, add links to relevant resources, improve examples, and refine explanations of design decisions and community involvement. The changes enhance readability, provide more context on standardization efforts, and acknowledge key contributors.
1 parent d0581a9 commit 53f1800

File tree

1 file changed

+32
-27
lines changed

1 file changed

+32
-27
lines changed
Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,46 @@
11
+++
22
date = '2025-11-21T22:00:00+00:00'
33
publishDate = '2025-11-21T22:00:00+00:00'
4-
draft = false
54
title = 'MCP Apps: Extending servers with interactive user interfaces'
65
author = 'Anton Pidkuiko (Maintainer), Olivier Chafik (Maintainer), Ido Salomon (MCP-UI), Liad Yosef (MCP-UI), Nick Cooper (Core Maintainer), Sean Strong (Anthropic), Jerome Swannack (Anthropic), Alexi Christakis (OpenAI), Bryan Ashley (OpenAI)'
76
tags = ['apps', 'ui', 'user interfaces']
87
+++
98

10-
Today we're proposing an MCP extension to standardize support for interactive user interfaces in the Model Context Protocol. This addresses one of the most requested features from the MCP community and builds on proven work from [MCP-UI](https://github.com/idosal/mcp-ui) and [OpenAI Apps SDK](https://developers.openai.com/apps-sdk/).
9+
Today we're introducing the proposal for the [MCP Apps Extension](https://github.com/modelcontextprotocol/ext-apps) ([SEP-1865](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1865)) to standardize support for interactive user interfaces in the Model Context Protocol.
1110

12-
MCP Apps is an optional extension that enables servers to deliver interactive user interfaces to hosts. It introduces a standardized pattern for declaring UI resources, linking them to tools, and enabling bidirectional communication between embedded interfaces and the host application.
11+
This extension addresses one of the most requested features from the MCP community and builds on proven work from [MCP-UI](https://github.com/idosal/mcp-ui) and [OpenAI Apps SDK](https://developers.openai.com/apps-sdk/) - the **ability for MCP servers to deliver interactive user interfaces to hosts**.
12+
13+
MCP Apps Extension introduces a standardized pattern for declaring UI resources, linking them to tools, and enabling bidirectional communication between embedded interfaces and the host application.
1314

1415
![Example of an inline chat app with interactive UI for permission management](/posts/images/inline-chat-app.png)
1516

16-
The SEP was authored by MCP core maintainers at OpenAI and Anthropic, together with the MCP-UI creators and lead maintainers of the MCP UI Community Working Group.
17+
The SEP was authored by MCP Core Maintainers at OpenAI and Anthropic, together with the MCP-UI creators and lead maintainers of the MCP UI Community Working Group.
1718

1819
## Standardization for interactive interfaces
1920

2021
Currently, MCP servers are limited to exchanging text and structured data with hosts. While this works well for many use cases, it creates friction when tools need to present visual information or gather complex user input.
2122

22-
Consider a data visualization server that returns chart data as JSON. The host application must interpret that data and render it, a burden that falls on every client implementation. Or imagine a configuration tool that needs to collect multiple related settings from users. Without UI support, these interactions become awkward exchanges of text prompts and responses.
23+
For example, consider a data visualization MCP server that returns chart data as JSON. The host application must interpret that data and render it. Handling all kinds of specialized data in this scenario translates to a significant burden for client developers, who would need to build their own logic to render the UI. As more UI requirements come up, like the need to collect multiple related settings from users, the complexity balloons. Alternatively, without UI support, these interactions become awkward exchanges of text prompts and responses.
2324

24-
The community has been creative in working around these limitations, but different implementations use different approaches, making it harder for servers to work consistently across hosts. With lack of standardization, there’s a real risk of fragmentation in the ecosystem.
25+
The MCP community has been creative in working around these limitations, but different implementations using varying conventions and architectures make it harder for servers to work consistently across clients. This lack of standardization creates a real risk of ecosystem fragmentation - something we're working to proactively prevent.
2526

2627
## Building together
2728

28-
The [MCP-UI project](https://github.com/idosal/mcp-ui), created by Ido Salomon and Liad Yosef and maintained by a dedicated community, spearheaded the vision of agentic apps with interactive interfaces. The project developed patterns for delivering rich user interfaces as first-class MCP resources, proving that agentic apps fit naturally within MCP’s architecture. Backed by a large community and providing rich SDKs, it drove adoption at leading companies and projects such as Postman, Shopify, HuggingFace, Goose, and ElevenLabs.
29+
The [MCP-UI project](https://github.com/MCP-UI-Org/mcp-ui), created by [Ido Salomon](https://github.com/idosal) and [Liad Yosef](https://github.com/liady) and maintained by a dedicated community, spearheaded the vision of agentic apps with interactive interfaces. The project developed patterns for delivering rich user interfaces as first-class MCP resources, proving that agentic apps fit naturally within the MCP architecture. The project is backed by a large community and provides [rich SDKs](https://mcpui.dev/guide/client/overview), adopted at leading companies and projects such as Postman, Shopify, Hugging Face, Goose, and ElevenLabs.
2930

30-
The [OpenAI Apps SDK](https://developers.openai.com/apps-sdk/) further validated the demand for rich UI experiences within conversational AI interfaces. The Apps SDK enables developers to build rich, interactive applications inside ChatGPT using MCP as its backbone. To ensure interoperability and establish consistent security and usage patterns across the ecosystem, we (Anthropic, OpenAI and MCP-UI) are collaborating to create an official MCP extension for interactive interfaces.
31+
The [OpenAI Apps SDK](https://developers.openai.com/apps-sdk/) further validated the demand for rich UI experiences within conversational AI interfaces. The SDK enables developers to build rich, interactive applications inside ChatGPT using MCP as its backbone. To ensure interoperability and establish consistent security and usage patterns across the ecosystem, Anthropic, OpenAI, and MCP-UI are collaborating to create an official MCP extension for interactive interfaces.
3132

3233
![Example of a fullscreen app with a rich data table interface](/posts/images/fullscreen-chat-app.png)
3334

34-
## MCP Apps specification
35+
## MCP Apps Extension specification
3536

36-
We're proposing a specification for UI resources in MCP, but the implications go further. MCP Apps is starting to look like an agentic app runtime: a foundation for novel interactions between AI models, users, and applications. The proposal is intentionally lean, starting with core patterns that we plan on expanding over time.
37+
We're proposing a specification for UI resources in MCP, but the implications go further than just a set of schema changes. The MCP Apps Extension is starting to look like an agentic app runtime: a foundation for novel interactions between AI models, users, and applications. The proposal is intentionally lean, starting with core patterns that we plan on expanding over time.
3738

3839
### Key design decisions
3940

40-
**Predeclared resources**
41+
#### Pre-declared resources
4142

42-
UI templates are resources with the `ui://` URI scheme, then referenced in tool metadata.
43+
UI templates are resources with the `ui://` URI scheme, referenced in tool metadata.
4344

4445
```ts
4546
// Server registers UI resource
@@ -67,26 +68,26 @@ UI templates are resources with the `ui://` URI scheme, then referenced in tool
6768

6869
This approach enables hosts to prefetch and review templates before tool execution, improving both performance and security. It also separates static presentation (the template) from dynamic data (tool results), enabling better caching.
6970

70-
**MCP transport for communication**
71+
#### MCP transport for communication
7172

72-
Instead of inventing a custom message protocol, UI components communicate with hosts using MCP's existing JSON-RPC base protocol over `postMessage`. This means:
73+
Instead of inventing a custom message protocol, UI components communicate with hosts using existing MCP JSON-RPC base protocol over `postMessage`. This means that:
7374

74-
- UI developers can use the standard `@modelcontextprotocol/sdk`
75+
- UI developers can use the standard `@modelcontextprotocol/sdk` to build their applications
7576
- All communication is structured and auditable
7677
- Future MCP features automatically work with the UI extension
7778

78-
**Starting with HTML**
79+
#### Starting with HTML
7980

80-
The initial specification supports only `text/html` content, rendered in sandboxed iframes. This provides:
81+
The initial extension specification supports only `text/html` content, rendered in sandboxed [iframes](https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/iframe). This provides:
8182

8283
- Universal browser support
8384
- Well-understood security model
8485
- Screenshot and preview generation capabilities
8586
- A clear baseline for future extensions
8687

87-
Other content types such as external URLs, remote DOM and native widgets are explicitly deferred to future iterations.
88+
Other content types such as external URLs, remote DOM, and native widgets are explicitly deferred to future iterations.
8889

89-
**Security first**
90+
#### Security-first
9091

9192
Hosting interactive content from MCP servers requires careful security consideration. The proposal addresses this through multiple layers:
9293

@@ -97,25 +98,29 @@ Hosting interactive content from MCP servers requires careful security considera
9798

9899
These mitigations create defense in depth against malicious servers while preserving the flexibility developers need.
99100

100-
**Backward compatibility**
101+
#### Backward compatibility
101102

102103
MCP Apps is an optional extension. Existing implementations continue working without changes, and hosts can gradually adopt UI support at their own pace. Servers should provide text-only fallback for all UI-enabled tools and return meaningful content even when UI is unavailable, so they can serve both UI-capable and text-only hosts.
103104

104105
## What's next
105106

106-
The [UI Community Working Group](https://github.com/modelcontextprotocol-community/working-groups/issues/35) has been instrumental in shaping this proposal through extensive feedback and discussion. We have built an [early access sdk](https://github.com/modelcontextprotocol/ext-apps) to demonstrate the patterns & types described in the SEP. The [MCP-UI](https://mcpui.dev/) client and server SDKs support these patterns.
107+
The [UI Community Working Group](https://github.com/modelcontextprotocol-community/working-groups/issues/35) has been instrumental in shaping this proposal through extensive feedback and discussion. We have built an [early access SDK](https://github.com/modelcontextprotocol/ext-apps) to demonstrate the patterns and types described in the specification proposal. The [MCP-UI](https://mcpui.dev/) client and server SDKs support these patterns.
107108

108-
We invite you to:
109+
If you are interested in contributing to this effort, we invite you to:
109110

110111
- Review the full specification in [SEP-1865](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1865)
111-
- Share feedback and concerns in the GitHub issue
112-
- Join the discussion in the `#ui-cwg` channel on [MCP Discord](https://discord.gg/modelcontextprotocol)
112+
- Share feedback and concerns in [GitHub Issues](https://github.com/MCP-UI-Org/mcp-ui/issues)
113+
- Join the discussion in the `#ui-wg` channel in the [MCP Contributors Discord](https://modelcontextprotocol.io/community/communication#discord)
113114
- Test prototype implementations and share your experience
114115

115116
## Acknowledgements
116117

117-
This proposal wouldn't exist without the work of the maintainers at MCP-UI, OpenAI and Anthropic.
118+
This proposal wouldn't exist without the work of the maintainers at MCP-UI, OpenAI, and Anthropic.
119+
120+
**Ido Salomon** and **Liad Yosef**, through MCP-UI and moderation of `#ui-wg`, incubated and championed many of the patterns that MCP Apps now standardizes, and together with contributors demonstrated that UI resources can be a natural part of MCP.
121+
122+
**Sean Strong**, **Olivier Chafik**, **Anton Pidkuiko**, and **Jerome Swannack** from Anthropic helped steer the initiative and drive the collaboration.
118123

119-
Ido Salomon and Liad Yosef, through MCP-UI and moderation of `#ui-cwg`, incubated and championed many of the patterns that MCP Apps now standardizes, and together with contributors demonstrated that UI resources can be a natural part of MCP. Sean Strong, Olivier Chafik, Anton Pidkuiko and Jerome Swannack from Anthropic helped steer the initiative and drive the collaboration. Nick Cooper, Alexei Christakis, and Bryan Ashley from OpenAI have provided valuable direction from their experience building the Apps SDK.
124+
**Nick Cooper**, **Alexei Christakis**, and **Bryan Ashley** from OpenAI have provided valuable direction from their experience building the Apps SDK.
120125

121-
Special thanks to the UI Community Working Group members and everyone who contributed to the discussions that shaped this proposal.
126+
Special thanks to the **UI Community Working Group** members and everyone who contributed to the discussions that shaped this proposal.

0 commit comments

Comments
 (0)