Skip to content

Commit e411fac

Browse files
Merge pull request #356 from jonathanhefner/tweak-readme
Improve README structure and clarity
2 parents 1b1edc3 + 7b25cb4 commit e411fac

1 file changed

Lines changed: 35 additions & 22 deletions

File tree

README.md

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,33 @@ This repo contains the SDK and [specification](https://github.com/modelcontextpr
66

77
MCP Apps are a proposed standard inspired by [MCP-UI](https://mcpui.dev/) and [OpenAI's Apps SDK](https://developers.openai.com/apps-sdk/) to allow MCP Servers to display interactive UI elements in conversational MCP clients / chatbots.
88

9+
## Why MCP Apps?
10+
11+
MCP tools return text and structured data. That works for many cases, but not when you need an interactive UI, like a chart, form, or video player.
12+
13+
MCP Apps provide a standardized way to deliver interactive UIs from MCP servers. Your UI renders inline in the conversation, in context, in any compliant host.
14+
915
## How It Works
1016

11-
MCP Apps extend the Model Context Protocol to let servers deliver **interactive UIs** to MCP hosts. Here's how it works:
17+
MCP Apps extend the Model Context Protocol by letting tools declare UI resources:
1218

13-
1. **Tool call**The LLM calls a tool on your server
14-
2. **UI Resource** — The tool's definition links to a predeclared `ui://` resource containing its HTML interface
19+
1. **Tool definition**Your tool declares a `ui://` resource containing its HTML interface
20+
2. **Tool call** — The LLM calls the tool on your server
1521
3. **Host renders** — The host fetches the resource and displays it in a sandboxed iframe
1622
4. **Bidirectional communication** — The host passes tool data to the UI via notifications, and the UI can call other tools through the host
1723

18-
This enables dashboards, forms, visualizations, and other rich experiences inside chat interfaces.
19-
20-
## Overview
24+
## Using the SDK
2125

2226
This SDK serves two audiences:
2327

24-
### App Developers
28+
### For App Developers
2529

2630
Build interactive UIs that run inside MCP-enabled chat clients.
2731

2832
- **SDK for Apps**: `@modelcontextprotocol/ext-apps`[API Docs](https://modelcontextprotocol.github.io/ext-apps/api/modules/app.html)
2933
- **React hooks**: `@modelcontextprotocol/ext-apps/react`[API Docs](https://modelcontextprotocol.github.io/ext-apps/api/modules/_modelcontextprotocol_ext-apps_react.html)
3034

31-
### Host Developers
35+
### For Host Developers
3236

3337
Embed and communicate with MCP Apps in your chat application.
3438

@@ -57,6 +61,8 @@ For more information, including instructions for installing the skills in your f
5761

5862
## Examples
5963

64+
The [`examples/`](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples) directory contains demo apps showcasing real-world use cases.
65+
6066
<!-- prettier-ignore-start -->
6167
| | | |
6268
|:---:|:---:|:---:|
@@ -78,12 +84,27 @@ For more information, including instructions for installing the skills in your f
7884
| [![Basic](examples/basic-server-react/grid-cell.png "Starter template")](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-server-react) | The same app built with different frameworks — pick your favorite!<br><br>[React](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-server-react) · [Vue](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-server-vue) · [Svelte](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-server-svelte) · [Preact](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-server-preact) · [Solid](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-server-solid) · [Vanilla JS](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-server-vanillajs) |
7985
<!-- prettier-ignore-end -->
8086

81-
The [`examples/`](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples) directory contains additional demo apps showcasing real-world use cases.
87+
### Running the Examples
8288

83-
<details>
84-
<summary>MCP client configuration for all examples</summary>
89+
#### With basic-host
90+
91+
To run all examples locally using [basic-host](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-host) (the reference host implementation included in this repo):
8592

86-
Add to your MCP client configuration (stdio transport):
93+
```bash
94+
git clone https://github.com/modelcontextprotocol/ext-apps.git
95+
cd ext-apps
96+
npm install
97+
npm start
98+
```
99+
100+
Then open http://localhost:8080/.
101+
102+
#### With MCP Clients
103+
104+
To use these examples with MCP clients that support the stdio transport (such as Claude Desktop or VS Code), add this MCP server configuration to your client's settings:
105+
106+
<details>
107+
<summary>MCP client configuration for all examples (using stdio)</summary>
87108

88109
```json
89110
{
@@ -300,18 +321,10 @@ Add to your MCP client configuration (stdio transport):
300321
}
301322
```
302323

303-
> **Note:** The `qr` server requires cloning the repository first. See [qr-server README](examples/qr-server) for details.
304-
305324
</details>
306325

307-
To run all examples locally in dev mode:
308-
309-
```bash
310-
npm install
311-
npm start
312-
```
313-
314-
Then open http://localhost:8080/.
326+
> [!NOTE]
327+
> The `qr` server requires cloning the repository first. See [qr-server README](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/qr-server) for details.
315328
316329
## Resources
317330

0 commit comments

Comments
 (0)