MCP Apps Builder (ext-apps Agent Skills bridge)

SkillAI & models

Your AI learns to build interactive apps that give its tools a visual interface, following the official step-by-step builder guides. Once added, it can start a new app from scratch, add an interface to a project you already have, convert a web app, or migrate an app built for another platform.

Available today. Use it from your connected AI after setup.

Add the skill, then tell your AI what you want — for example, a brand-new interactive app or an interface for a project you already have. It will load the matching official guide and build it with you.

Then ask your AI: use the MCP Apps Builder (ext-apps Agent Skills bridge) skill

What your AI can do with it

  • Build a new interactive app from scratch
  • Add a visual interface to an existing project
  • Convert an existing web app into an interactive app
  • Migrate an app built for another platform
  • Work through the official builder guides step by step

What this skill tells your AI

The instructions your AI receives, as published by awslabs/cli-agent-orchestrator in skills/mcp-apps-builder/SKILL.md and read by ahel’s review.

The Model Context Protocol ext-apps repo ships four official Agent Skills that teach an AI coding agent how to build MCP Apps (SEP-1865 — interactive ui:// UIs that render inside a chat host). This skill tells you when to reach for them and how to install them, so MCP App work is done with the canonical, up-to-date guidance instead of guesswork.

The four builder skills

SkillUse it when…
create-mcp-appScaffolding a new MCP App (server + interactive UI) from scratch.
add-app-to-serverAdding an interactive ui:// view to an existing MCP server's tools.
migrate-oai-appConverting an existing OpenAI Apps SDK app to MCP Apps.
convert-web-appTurning an existing web app into a hybrid web + MCP App.

Install / load them

Pick whichever matches the agent you're driving (skills live in the agent's skills directory — install once, then ask the agent to build):

  • Claude Code (plugin marketplace):
    /plugin marketplace add modelcontextprotocol/ext-apps
    /plugin install mcp-apps@modelcontextprotocol-ext-apps
    
  • Any agent (Vercel Skills CLI):
    npx skills add modelcontextprotocol/ext-apps
    
  • Manual (clone + copy into the agent's skills dir):
    git clone https://github.com/modelcontextprotocol/ext-apps.git
    cp -r ext-apps/plugins/mcp-apps/skills/create-mcp-app ~/.kiro/skills/create-mcp-app
    # …repeat for add-app-to-server / migrate-oai-app / convert-web-app
    
    Skills dirs by agent: Kiro CLI ~/.kiro/skills/, Claude Code ~/.claude/skills/, VS Code/Copilot ~/.copilot/skills/, Gemini CLI ~/.gemini/skills/, Codex ~/.codex/skills/, Cursor ~/.cursor/skills/, Goose ~/.config/goose/skills/. Verify with: ask the agent "what skills do you have?"

For complete per-agent installation instructions and troubleshooting, see references/installation-per-agent.md.

Building inside CAO (read this for ui://cao/* work)

CAO's own views (ui://cao/dashboard / agent / event-stream) are hand-rolled single-file React bundles — not generated by create-mcp-app — because CAO enforces stricter invariants than the starter templates. When you add a new CAO view, use add-app-to-server's checklist for the spec-correct shape, but keep CAO's guardrails:

  • Default-off behind CAO_MCP_APPS_ENABLED (end to end).
  • JIT-free bundles (no eval / new Function; the host CSP forbids it; the scan:jit gate fails otherwise).
  • HTTP-only boundary: mcp_server/* reaches state only over HTTP (AST guard test/test_http_only_boundary.py).
  • Stay within the bundle-size budget (check:size) and the coverage ratchet (coverage:ratchet).
  • Tag tools with ui_meta(...) (resource _meta.ui: csp / permissions / domain / prefersBorder; tool _meta.ui: resourceUri / visibility).

For the full guardrail checklist and how to run each CI gate locally, see references/cao-view-guardrails.md.

For the operator/extend playbook (turn it on, troubleshoot, the submit_command choke point, host-delegated actions), load the cao-mcp-apps skill.

Sources of truth

Gotchas

  • CAO views are NOT generated by create-mcp-app: CAO's own ui://cao/* views are hand-rolled single-file React bundles with stricter invariants than the starter templates. Use add-app-to-server for the spec-correct shape, but enforce CAO's guardrails (JIT-free, bundle-size budget, HTTP-only boundary).
  • JIT-free is non-negotiable for CAO: Host CSP forbids eval / new Function. The CI scan:jit gate will fail the build if any JIT constructs are present.
  • HTTP-only boundary: mcp_server/* must reach state only over HTTP to the Backplane. The AST guard test (test/test_http_only_boundary.py) enforces this — direct state access bypasses governance.

Build → Test → Record Workflow

When building or extending CAO MCP Apps views, always follow this complete cycle:

cd cao_mcp_apps
npm run build:all         # Build all view bundles (single-file HTML)
npm test                  # Unit tests (vitest)
npm run test:e2e          # Playwright E2E against built bundles
npm run demo              # Record demo video + screenshots + GIF

The npm run demo step captures the current state of all views (including the unified fleet command center) into docs/media/ — this is what README.md and docs/mcp-apps.md display. Always regenerate after modifying views so documentation stays current.

For CAO-specific views (ui://cao/*), also verify:

  • Bundle size within budget: npm run check:size
  • No JIT constructs: npm run scan:jit
  • TypeScript strict: npx tsc --noEmit

For installation details per agent host, see references/installation-per-agent.md. For CAO view guardrails, see references/cao-view-guardrails.md.

Signals

GitHub stars
1k
Forks
266
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
mcp-apps-builder
Source
github.com/awslabs/cli-agent-orchestrator