MCP Apps is an extension to the Model Context Protocol (MCP) that lets a tool return an interactive user interface instead of only text or structured data. Charts, forms, design canvases, maps, or video players render inline in the conversation of any host that supports the extension, such as ChatGPT, Claude, VS Code, Goose, Postman, and MCPJam.
A tool declares a ui:// resource containing its HTML interface. When the model calls the tool, the host fetches that resource and shows it in a sandboxed iframe, passes tool data to it through notifications, and lets the UI call other tools back through the host. The specification has a stable 2026-01-26 version and a draft.
| Package | Role |
|---|---|
| @modelcontextprotocol/ext-apps | Build interactive Views (App class, PostMessage transport) |
| @modelcontextprotocol/ext-apps/react | React hooks for Views |
| @modelcontextprotocol/ext-apps/app-bridge | Embed and talk to Views from a chat client |
| @modelcontextprotocol/ext-apps/server | Register tools and UI resources on an MCP server |
The repository also ships four agent skills (create an app, migrate an OpenAI Apps SDK app, add UI to an existing server, convert a web app), a reference host for local testing, and example servers ranging from a 3D globe and sheet-music renderer to a PDF viewer and live transcription. MCP-UI offers a fuller client SDK that some hosts use for the same extension.
Features
- UI resources for tools: tools declare HTML interfaces that hosts render inline in a sandboxed iframe
- Bidirectional messaging: the host streams tool data to the UI, and the UI can call other tools through the host
- TypeScript SDK: packages for Views, React hooks, host embedding, and server-side registration
- Agent skills: create-mcp-app, migrate-oai-app, add-app-to-server, and convert-web-app for AI coding agents
- OpenAI Apps migration: a skill converts existing OpenAI Apps SDK apps to MCP Apps
- Reference host: a basic host implementation for running the examples locally
- Example servers: map, Three.js, ShaderToy, sheet music, budget allocator, system monitor, PDF viewer, QR code, and more, published as installable MCP servers
- Starter templates: the same starter app in React, Vue, and other frameworks
- Versioned specification: a stable 2026-01-26 specification plus a draft, with a wire protocol that stays compatible across SDK major versions


