modelcontextprotocol avatar

Create Mcp App

This walks you through building interactive UIs that run inside Claude Desktop and other MCP hosts. The core pattern is simple: register a tool that returns data, link it to an HTML resource that displays the UI, and the host handles the rendering. You get framework templates for React, Vue, Svelte, and vanilla JS, plus the patterns doc covers real stuff like chunked responses, polling dashboards, and streaming input. The gotchas are predictable: register handlers before calling connect, always configure CSP for network requests since there's no same origin server, and don't forget text fallbacks for hosts without UI support. If you're adding interactive views to MCP tools, this is the reference you clone and adapt from.

skills.sh installs
2.3K
GitHub stars
3.1K
last updated
Aug 21, 2026

Install

$ npx -y skills add modelcontextprotocol/ext-apps --skill create-mcp-app --agent claude-code

Installs into .claude/skills of the current project.

Files

Create MCP App

Build interactive UIs that run inside MCP-enabled hosts like Claude Desktop. An MCP App combines an MCP tool with an HTML resource to display rich, interactive content.

Core Concept: Tool + Resource

Every MCP App requires two parts linked together:

  1. Tool - Called by the LLM/host, returns data
  2. Resource - Serves the bundled HTML UI that displays the data

The tool's _meta.ui.resourceUri references the resource's URI.

Host calls tool → Host renders resource UI → Server returns result → UI receives result.

Quick Start Decision Tree

Framework Selection

FrameworkSDK SupportBest For
ReactuseApp hook providedTeams familiar with React
Vanilla JSManual lifecycleSimple apps, no build complexity
Vue/Svelte/Preact/SolidManual lifecycleFramework preference

Project Context

Adding to existing MCP server:

  • Import registerAppTool, registerAppResource from SDK
  • Add tool registration with _meta.ui.resourceUri
  • Add resource registration serving bundled HTML

Sponsors

Details

Repository
github.com/modelcontextprotocol/ext-apps
Categories
Frontend Development, DevOps & CI/CD, AI & Agent Building, Automation & Workflows

More from modelcontextprotocol/ext-apps

All 4
1nexu-io avatargsap-performancenexu-io/open-designOfficial GSAP skill for performance — prefer transforms, avoid layout thrashing, will-change, batching. Use when optimizing GSAP animations, reducing jank, or w2.3Kskills.sh installs
2enzed avatarr3f-animationenzed/r3f-skillsReact Three Fiber animation - useFrame, useAnimations, spring physics, keyframes. Use when animating objects, playing GLTF animations, creating procedural motio2.2Kskills.sh installs
3cocoon-ai avatararchitecture-diagramcocoon-ai/architecture-diagram-generatorCreate polished dark-themed architecture diagrams as self-contained HTML+SVG files. Use when the user asks for system, infrastructure, cloud, security, or netwo2.2Kskills.sh installs
4open-pencil avataropen-pencilopen-pencil/skillsWork with Figma .fig design files and the running OpenPencil editor — inspect structure, query nodes, analyze design tokens, export PNG/SVG/PDF/JSX, and modify 2.2Kskills.sh installs
5madteacher avatarflutter-adaptive-uimadteacher/mad-agents-skillsBuild, fix, review, and validate adaptive or responsive Flutter UIs for mobile, tablet, desktop, web, large screens, foldables, and mixed input devices. Use whe2Kskills.sh installs
6getsentry avatarsentry-tanstack-start-sdkgetsentry/sentry-for-aiFull Sentry SDK setup for TanStack Start React. Use when asked to "add Sentry to TanStack Start", "install @sentry/tanstackstart-react", or configure error moni2Kskills.sh installs