Dev & Engineering ✓ Anthropic · Official

MCP Interactive App Builder

Add chat-embedded forms, pickers, dashboards, and confirmation widgets to MCP servers.

59/ 100
Recommended

Generally reliable with disclosed limitations; trial as directed and keep a rollback path.

See how it was scored ↓
Works as-is in
ChatGPT · Codex · Claude Code · Claude.ai
Stars
★ 38k
Last updated
11d ago
License
Apache-2.0
mcp-appsinteractive-widgetsiframe-sandboxstreamable-http
+3typescriptelicitationapps-sdk

What does this skill do, and when should you use it?

This Agent Skill guides developers in extending a standard MCP server with UI resources rendered inline in a chat surface. It covers remote Streamable HTTP deployments and MCPB-packaged local applications, including the relationship between tools, resources, and iframe widgets. It also documents the `App` runtime, host messaging, theming, CSP constraints, and testing workflows. It is a good fit when an MCP tool genuinely needs interaction; ordinary text or JSON output is usually simpler.

It explains how to register an MCP tool with _meta.ui.resourceUri, register a separate HTML UI resource, and serve it with RESOURCE_MIME_TYPE. Inside the iframe, the examples use the App class to receive tool results, send messages, update model context, call server tools, open links, download files, and request display modes. The skill provides TypeScript/Express scaffolding, dependency commands, remote and local deployment patterns, widget templates, and testing procedures for Claude, Claude Desktop, JSON-RPC, browser previews, and hosts without the apps surface.

Good fit
  • An MCP developer needs a searchable picker for files, contacts, or records that Claude cannot reliably rank or select.
  • A tool performs a destructive or billable action and needs explicit inline confirmation.
  • A server returns charts, maps, diffs, previews, or other spatial or visual output.
  • A tool needs structured input and a widget is more suitable than model-inferred arguments or elicitation.
  • A user needs to watch a long-running operation through progress or live-status UI.

How do you install this skill?

Before you use it
  • Do not use the examples directly in production; add authentication or tightly define the authless data scope, isolate upstream secrets, minimize sensitive data, and implement confirmation and rollback for writes.
  • Pin and audit versions of @modelcontextprotocol/sdk, @modelcontextprotocol/ext-apps, express, zod, mcp-remote, and related dependencies, then verify the target hosts and network environment.
  • Add explicit error feedback and tests for oversized payloads, invalid JSON, network timeouts, unsupported host capabilities, and stale widget instances.
Before you start
Your agent needs
  • Shell / CLI
  • Network access
  • Local filesystem
  • MCP Server
Install first
  • Node.js
  • npm
  • @modelcontextprotocol/sdk
  • @modelcontextprotocol/ext-apps
  • Zod
  • Express
  • mcp-remote

The skill is located at plugins/mcp-server-dev/skills/build-mcp-app/SKILL.md and is installed through the anthropics/claude-plugins-official marketplace collection. In Claude Code, run /plugin install mcp-server-dev@claude-plugins-official, or browse it through /plugin > Discover. The example project dependencies can be installed with npm install @modelcontextprotocol/sdk @modelcontextprotocol/ext-apps zod express.

Generic route: install into Claude Code manually (macOS / Linux)
tmp="$(mktemp -d)"
git clone --depth 1 https://github.com/anthropics/claude-plugins-official.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/plugins/mcp-server-dev/skills/build-mcp-app" ~/.claude/skills/
rm -rf "$tmp"

Generated from the source repository and skill path; it copies only this skill's folder. If the author's install steps above differ, follow those first. To scope it to one project, replace ~/.claude/skills with that project's .claude/skills.

How do you use this skill?

After the MCP server deployment model is settled, use a prompt such as: Add an interactive contact picker to my MCP server that renders in chat, and show the remote Streamable HTTP registration and iframe messaging implementation. If the requirement is only yes/no confirmation, a short enum, or a flat form, check whether MCP elicitation is sufficient before building a widget.

What are this skill's strengths and limitations?

Pros
  • Covers the full path from tool and resource registration to iframe messaging, CSP, theming, and display modes.
  • Addresses both remote MCP apps and MCPB-packaged local apps.
  • Includes copyable TypeScript, HTML, npm, and testing examples.
  • Defines graceful degradation for hosts that do not support the apps surface.
Limitations
  • It focuses on interactive MCP UI and does not replace the base `build-mcp-server` or MCPB packaging skills.
  • Iframe sandboxing imposes CSP, networking, image, navigation, and host-access restrictions.
  • The current Claude Desktop workflow still requires `command`/`args` with `mcp-remote`, and aggressive UI-resource caching can slow iteration.
  • The source provides testing procedures but no automated test suite.

How does this skill compare with similar options?

Side by side with related skills; every score comes from the same FSRS standard.

Skill FS score Stars Last updated License
MCP Interactive App Builder this page ✓ Anthropic · Official 59 · Recommended ★ 38k 11d ago Apache-2.0
MCP Server Builder ✓ Anthropic · Official 54 · Use with care ★ 38k 11d ago Apache-2.0
Azure AI Projects for TypeScript ✓ Microsoft · Official 49 · Use with care ★ 2.7k 3mo ago MIT
MCP Server Development Guide ✓ Microsoft · Official 49 · Use with care ★ 2.7k 3mo ago MIT
Copilot MCP Widget Builder ✓ Microsoft · Official 49 · Use with care ★ 2.7k 3mo ago MIT

Compared with plain text or JSON tool output, this skill is intended for selection, confirmation, visualization, and live-status scenarios. If MCP elicitation covers the interaction, the source recommends using elicitation instead of a widget.

How did FollowSkills review this skill?

FollowSkills review · FSRS-2.0
Recommended
59/ 100 5-point scale 3.0 / 5
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
1Trust18 / 25 · 3.6/5

The document explicitly covers iframe sandboxing, CSP restrictions, host-mediated external links, and rate limiting, proxy trust, caching, and authless exposure. Confirmation dialogs and destructive-tool annotations are also addressed. Points are deducted because examples rely on unspecified databases and upstream APIs, while sensitive-data handling, least privilege, confirmation boundaries, rollback, and end-to-end data-flow auditing are not systematically specified; dependencies are unpinned.

2Reliability8 / 20 · 2.0/5

The tool/resource registration model, widget messaging, CSP pitfalls, payload limits, and debugging paths are mostly consistent, with some abnormal-case guidance. Points are deducted because there is no committed test suite or verifiable execution result, examples contain an undefined db and unspecified data source, and JSON parsing, network failure, missing host capabilities, and other key errors lack unified handling; static calibration caps this below 10.

3Adaptability11 / 15 · 3.7/5

Triggers, use cases, boundaries against plain text and elicitation, remote versus MCPB deployment, and fallback behavior for hosts without the apps surface are clearly described. Points are deducted because Chinese-language UX and mainland-China network reachability are not assessed, and some functionality depends on host-specific Claude/ChatGPT app-surface support.

4Convention11 / 15 · 3.7/5

The skill has a version, clear information architecture, progressive reference documents, installation guidance, templates, limitations, FAQ-like troubleshooting tables, and Anthropic attribution; repository context supplies Apache-2.0 licensing. Points are deducted because the skill lacks a changelog, compatibility matrix, pinned dependency versions, and an explicit maintenance/update path, and some guidance depends on external links and another skill.

5Effectiveness7 / 15 · 2.3/5

It supplies architecture guidance, server and iframe examples, reusable templates, testing loops, and abuse protections, making the core implementation approachable and explaining when widgets add value over text or elicitation. Points are deducted because database, deployment, authentication, and host configuration remain to be supplied, and key code paths are not execution-verified; static calibration caps this at 7.

6Verifiability4 / 10 · 2.0/5

The material includes substantial code, protocol fields, symptom-to-fix tables, test commands, and named references, giving the claims reasonable source-level auditability. Points are deducted because no committed CI, test suite, or third-party execution evidence is provided, and claims described as observed cannot be independently reproduced from static files alone; static calibration caps this below 5.

1 2 3 4 5 6

Open a dimension to read why it scored that way

Reviewed Jul 20, 2026 Reviewed revision b0b9f02b0581 Review evidence[1][2][3][4][5][6][7][8][9][10][11][12]

Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.

See the full review method →

FAQ

Is this skill appropriate for every MCP tool?
No. The source recommends widgets for structured input, large searchable lists, visual previews, charts, maps, confirmations, or live progress. Other tools can remain text- or JSON-based.
Can a widget access the host page or arbitrary external networks?
No. It runs in an iframe sandbox and cannot access the host DOM, cookies, or storage. Network access is CSP-restricted and should generally be routed through `callServerTool`; outbound navigation must use `app.openLink`.
When should I use a remote app versus an MCPB app?
Use a hosted Streamable HTTP server for the common remote shape. Use an MCPB local package when the widget must drive a local application or access local files, referring to the `build-mcpb` skill for packaging mechanics.
Does the source specify any cost?
No software or infrastructure pricing is stated. It does identify npm dependencies, a remote server for the remote shape, and an optional Cloudflare tunnel for local Claude testing.

More skills from this repository

All from anthropics/claude-plugins-official

Dev & Engineering ✓ Anthropic · Official

MCP Server Builder

Helps developers choose the right MCP deployment, tool pattern, framework, and authentication before writing code.

★ 38k FS 54 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

MCPB Local Server Packager

Bundle a local MCP server with its runtime into one installable file.

★ 38k FS 56 Use with care 11d ago
Design & Frontend ✓ Anthropic · Official

Playground Builder

Turn complex visual or structural choices into a live, self-contained HTML explorer.

★ 38k FS 55 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

MCP Integration for Claude Plugins

Configure MCP servers in Claude Code plugins to connect external services and expose their tools.

★ 38k FS 51 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

Claude Code Plugin Blueprint

A practical guide to structuring plugins, configuring manifests, and organizing Claude Code components.

★ 38k FS 50 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

Claude Automation Advisor

Analyze a codebase and identify the most useful Claude Code automations for the project.

★ 38k FS 50 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

Official Claude Code Plugin Directory

An Anthropic-managed marketplace for discovering and installing quality Claude Code plugins.

★ 38k Not yet reviewed 11d ago
Productivity & Collaboration ✓ Anthropic · Official

Project Status Artifact

Turn complex, multi-stream work into a living project status page.

★ 38k FS 61 Recommended 11d ago
Design & Frontend ✓ Anthropic · Official

Distinctive Frontend Design

Build an intentional visual identity for interfaces that should not feel templated.

★ 38k FS 60 Recommended 11d ago
Dev & Engineering ✓ Anthropic · Official

Claude Skill Template Example

A reference for understanding and creating Claude Code plugin skill templates.

★ 38k FS 58 Recommended 11d ago
Dev & Engineering ✓ Anthropic · Official

Claude Code Receipts

Turn local Claude Code sessions and Git history into a shareable impact report.

★ 38k FS 56 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

Claude Code Agent Development Guide

Design, write, and validate autonomous agents for Claude Code plugins.

★ 38k FS 54 Use with care 11d ago
Automation & Ops ✓ Anthropic · Official

Discord Channel Access

Manage Discord pairings, allowlists, and DM or group policies through a local JSON configuration.

★ 38k FS 53 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

Claude Code Hook Development (official plugins)

Design, configure, validate, and debug event-driven hooks for Claude Code plugins.

★ 38k FS 53 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

CLAUDE.md Improver

Audit and precisely improve CLAUDE.md files across a repository.

★ 38k FS 53 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

Skill Creator

Create, evaluate, and iteratively improve Agent Skills.

★ 38k FS 53 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

Claude Code Plugin Skill Development

A practical guide to designing, writing, organizing, validating, and testing skills for Claude Code plugins.

★ 38k FS 51 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

Math Olympiad Adversarial Solver

Solve and stress-test IMO, Putnam, USAMO, and AIME problems with adversarial proof verification.

★ 38k FS 50 Use with care 11d ago
Dev & Engineering ✓ Anthropic · Official

Project Plugin Settings Pattern

Store and read configurable Claude Code plugin settings in project-local Markdown files.

★ 38k FS 49 Use with care 11d ago
Automation & Ops ✓ Anthropic · Official

M5Stack Onboarding

Detect, flash, and provision M5Stack ESP32 boards with UIFlow firmware and MicroPython apps.

★ 38k FS 48 Use with care 11d ago

Related skills