u/Code-Painting-8294

▲ 8 r/mcp

Anthropic shipped the MCP Apps spec in January. Already live in Claude, Chatgpt. But almost nobody on this sub is shipping their own integrations.

What you actually get if you ship the UI piece:

  1. Cards inline with tool output. Your GitHub MCP can ship a real PR review card. Your Linear MCP can ship a triage card with status pills. The host renders, the user clicks, the click flows back as a tool call.
  2. Write the UI once, every compliant host renders it. That's the point of the spec versus host-specific tool UIs.
  3. The sandbox is mandatory and the spec hands you the right defaults. Strict iframe, no allow-same-origin. Third-party UIs can't touch the host origin. This is non-negotiable.. if your host doesn't enforce it, walk away.
  4. Action handlers ride the same wire as the tool result. Button click on the rendered card → host event → tool call back to your server. You don't build a separate channel.
  5. Use any frontend framework inside the iframe. Spec defines the ui:// resource and the postMessage channel. Everything inside is yours: React, Vue, vanilla JS.

What you don't get: design tokens from the host.

The spec gives you a sandboxed iframe and an action channel. Not the host's color scheme, typography, or spacing.

Your widget sniffs prefers-color-scheme and improvises, or it looks generic next to the host's chrome. Multi-host means designing to the lowest common denominator.

I help maintain CopilotKit. We shipped MCPAppsMiddleware so the host plumbing (sandboxed iframes, postMessage routing, JSON-RPC tool proxying) drops into an existing app in a few lines instead of a weekend project.

attached: video of a diagramming app I built on top of an Excalidraw MCP Apps server, using the middleware.

u/Code-Painting-8294 — 8 days ago