Mirror of https://github.com/modelcontextprotocol/ext-apps — Official repo for spec & SDK of MCP Apps protocol - standard for UIs embedded AI chatbots, served by MCP servers
  • TypeScript 76.4%
  • MDX 19.3%
  • JavaScript 4.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-11-23 03:14:19 +00:00
examples/simple-server add a raw (no sdk) UI 2025-11-23 03:14:19 +00:00
specification/draft fix: use text/html+mcp mimeType format 2025-11-21 21:38:19 +00:00
src ditch McpUiHostInfoSchema in favour of ImplementationSchema 2025-11-21 21:54:03 +00:00
.gitignore add a raw (no sdk) UI 2025-11-23 03:14:19 +00:00
build.bun.ts Update build.bun.ts 2025-11-21 22:05:34 +00:00
build.esbuild.ts build w/ bun to avoid internal deps hell 2025-11-21 19:28:45 +00:00
package.json fix types order in main package.json 2025-11-23 02:38:10 +00:00
README.md Update README.md 2025-11-21 21:41:42 +00:00
tsconfig.json Initial commit 2025-11-21 11:56:27 +00:00

@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:

  • 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/call for 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
  • examples/simple-example: Example Server + Apps

    • server.ts: MCP server with two 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-react tool shows how to use the useApp hook to register MCP callbacks
    • ui-vanilla.tsx: vanilla App returned by the create-ui-vanilla
  • specification/draft/apps.mdx: The Draft Extension Specification. It's still... in flux! Feedback welcome! (also see discussions in SEP-1865).

  • message-transport: PostMessageTransport class that uses postMessage to exchange JSON-RPC messages between windows / iframes

  • app.ts: App class used by an App to talk to its host

  • app-bridge.ts: AppBridge class 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 AppBridge just 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.