← Back to directory
M

MCP Apps

Official
Spec and SDK for embedding interactive UIs inside MCP tool calls.
GitHub source repository ↗
★ 2.7k Stars Category · Dev Tools Very popular
60FMRS · C
Reliability
8/20
Security and permissions
12/20
Maintenance
12/20
Documentation
15/20
Setup experience
13/20

MCP Apps is the officially maintained protocol-extension repository from modelcontextprotocol, providing the spec, a multi-package SDK, and roughly 20 example servers so MCP tools can return interactive UIs rendered inline in compliant chat clients — it is not itself a single installable MCP server. Well suited to developers building rich in-chat UI experiences, but users should verify their target host's support level and the repo's actual license before adopting it.

Read the FMRS scoring method →

Official repository from the Model Context Protocol project containing the specification and SDK for MCP Apps, an extension to core MCP that lets tools declare ui:// resources (HTML interfaces) so hosts (Claude, ChatGPT, VS Code, and other compliant clients) can render charts, forms, dashboards, and other interactive UIs inline in a sandboxed iframe, with bidirectional communication between the UI and host tools. The repo is not itself a single runnable MCP server — it bundles the protocol spec, a TypeScript SDK (core, React hooks, app-bridge, server helpers), four Agent Skills for scaffolding/migrating apps, and roughly 20 example servers (maps, 3D scenes, PDF viewers, QR codes, etc.). The README shows an Apache 2.0 license badge while the repo's catalog metadata records the license as NOASSERTION — this discrepancy should be verified before relying on licensing terms.

Tools

The tool list has not been reviewed yet.

Setup

There is no single installable MCP server here — install the SDK with npm install -S @modelcontextprotocol/ext-apps to build your own app, or clone the repo and run npm install && npm start, then open http://localhost:8080/ to try all bundled examples against the included reference host, basic-host. Each Node.js example is also published individually as @modelcontextprotocol/server-<name> and can be added to a stdio-capable client (Claude Desktop, VS Code, etc.) with npx -y @modelcontextprotocol/server-<name> --stdio. Python examples (qr-server, say-server) are launched with uv run instead. If using an AI coding agent, the four bundled Agent Skills can also be installed via the Claude Code plugin marketplace to scaffold or migrate MCP Apps.

Fit and risk

Best for

  • MCP server developers who need rich interactive UI inside tool call results
  • Teams already using hosts that support the MCP Apps extension (Claude, ChatGPT, VS Code, Goose, Postman)
  • Developers who want official spec-compliant starter templates across multiple front-end frameworks (React, Vue, Svelte, Preact, Solid, vanilla JS)

Not for

  • Users looking for a single ready-to-use MCP server/tool — this repo is a protocol spec, SDK, and example collection, not one server
  • Setups where the client host doesn't support the MCP Apps extension (README states host support varies)
  • Anyone needing a production-supported, officially maintained host implementation — README explicitly says there's no supported host in the repo beyond the reference basic-host example

Required permissions

  • The spec/SDK itself carries no inherent permissions; specific permissions depend on which example server is used (e.g., the system-monitor example reads local OS metrics, the video-resource example serves binary media resources)
  • README does not provide a complete permissions manifest for any single server

Risks and side effects

  • UI content runs as server-supplied HTML inside a sandboxed iframe on the host — the actual isolation and trust boundary depend on the specific host implementation, not on this repo
  • The spec has both a stable 2026-01-26 version and an actively developed draft version, so interfaces may change as the spec evolves
  • License labeling is inconsistent — the README badge shows Apache 2.0 while the repo's catalog metadata records NOASSERTION — verify actual license terms before use

Troubleshooting

  1. Confirm the target client/host actually supports the MCP Apps extension (check modelcontextprotocol.io/clients, since README notes host support varies)
  2. When adding a Node.js example to a stdio-based client, make sure the `--stdio` flag is included in the launch args
  3. Python examples (qr-server, say-server) must be launched with `uv run`, not npm/node
  4. After installing the Agent Skills, ask your coding agent 'What skills do you have?' to confirm create-mcp-app, migrate-oai-app, add-app-to-server, and convert-web-app are registered

Use cases

Rendering interactive charts, forms, or dashboards inline inside chatbot tool results
Migrating an existing OpenAI Apps SDK app to the MCP Apps protocol
Adding interactive UI to an existing MCP server's tools
Prototyping with official example servers (map, PDF viewer, QR generator, etc.)

Supported clients

Supported clients have not been confirmed yet.