- TypeScript 76.4%
- MDX 19.3%
- JavaScript 4.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Corrects the indentation of nested block structures (alt, opt, par, loop) in all four Mermaid sequence diagrams. Content inside nested blocks is now properly indented relative to the block keywords, making the hierarchical structure clearer and more readable. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
| examples/simple-server | ||
| specification/draft | ||
| src | ||
| .gitignore | ||
| build.bun.ts | ||
| build.esbuild.ts | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
@modelcontextprotocol/ext-apps
This repo contains the SDK and specification for MCP Apps Extension (SEP-1865).
MCP Apps are proposed standard inspired by MCP-UI and OpenAI's Apps SDK to allow MCP Servers to display interactive UI elements in conversational MCP clients / chatbots.
This repo provides:
-
specification/draft/apps.mdx: The Draft Extension Specification. It's still... in flux! Feedback welcome! (also see discussions in SEP-1865).
-
types.ts: Types of JSON-RPC messages used to communicate between Apps & their host
- Note that MCP Apps also use some standard MCP messages (e.g.
tools/callfor the App to trigger actions on its originating Server - these calls are proxied through the Host), but these types are the additional messages defined by the extension
- Note that MCP Apps also use some standard MCP messages (e.g.
-
examples/simple-example: Example Server + Apps
- server.ts: MCP server with three tools that declare UI resources of Apps to be show in the chat when called
- ui-react.tsx: React App returned by the
create-ui-reacttool shows how to use theuseApphook to register MCP callbacks - ui-vanilla.tsx: vanilla App returned by the
create-ui-vanilla - ui-raw.tsx: same as vanilla App but doesn't use the SDK runtime (just its types)
-
message-transport:
PostMessageTransportclass that usespostMessageto exchange JSON-RPC messages between windows / iframes -
app.ts:
Appclass used by an App to talk to its host -
app-bridge.ts:
AppBridgeclass used by the host to talk to a single App -
Soon: more examples!
What this repo does NOT provide:
- There's no host implementation here (beyond the
AppBridgejust used for communications).- We have contributed a tentative implementation of hosting / iframing / sandboxing logic to the MCP-UI repository, and expect OSS clients may use it, while other clients might roll their own hosting logic.
- A prior iteration of an e2e prototype w/ client, server and hosting parts is available in this gist
Installation
This repo is in flux and isn't published to npm (when it is, it will use the @modelcontextprotocol/ext-apps package). Please install it from git for now:
npm install git+https://github.com/modelcontextprotocol/ext-apps.git
Development Notes
Build tools in dependencies
The build tools (esbuild, tsx, typescript) are in dependencies rather than devDependencies. This is intentional: it allows the prepare script to run when the package is installed from git, since npm doesn't install devDependencies for git dependencies.
Once the package is published to npm with pre-built dist/, these can be moved back to devDependencies.