MCP Apps Build interactive UIs for MCP tools — charts, forms, dashboards — that render inline in Claude, ChatGPT and any other compliant chat client. Why · Quickstart · API Docs · Spec · Contributing Excalidraw built with MCP Apps, running in Claude Table of Contents Build with Agent Skills Supported Clients Why MCP Apps? How It Works Getting Started Using the SDK Examples Specification Resources Contributing Build…
Other agents — any AI coding agent that supports
Agent Skills can use these skills. See the
agent skills guide for manual installation
instructions.
Once installed, verify by asking your agent “What skills do you have?” — you
should see create-mcp-app, migrate-oai-app, add-app-to-server, and
convert-web-app in the list. Then just ask it to create or migrate an app and
it will guide you through the rest.
MCP tools return text and structured data. That works for many cases, but not
when you need an interactive UI, like a chart, form, design canvas or video player.
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.
How It Works
MCP Apps extend the Model Context Protocol by letting tools declare UI
resources:
Tool definition — Your tool declares a ui:// resource containing its
HTML interface
Tool call — The LLM calls the tool on your server
Host renders — The host fetches the resource and displays it in a
sandboxed iframe
Bidirectional communication — The host passes tool data to the UI via
notifications, and the UI can call other tools through the host
Getting Started
Requires Node.js 20+. The base MCP SDK packages are ^2.0.0 peers of
ext-apps (@modelcontextprotocol/core is a required peer that client already depends on, so npm installs it for you).
The wire protocol is unchanged between ext-apps 1.x and 2.x: a 2.x View works
in a 1.x host and a 2.x host renders 1.x Views. See the
migration guide
when upgrading from 1.x.
New here? Start with the
Quickstart Guide
to build your first MCP App.
Using the SDK
The SDK serves three roles: app developers building interactive Views, host
developers embedding those Views, and MCP server authors registering tools with
UI metadata.
Every Node.js example is published as @modelcontextprotocol/server-<name>. To
add one to an MCP client that supports stdio (Claude Desktop, VS Code, etc.),
use this pattern:
For example, to add the map server: @modelcontextprotocol/server-map. The
Python examples (qr-server, say-server) use uv run instead — see their
READMEs for details.
Local Development
To test local modifications with an MCP client, clone the repo, install, then
point your client at a local build:
评论