Skip to main content

MCP Apps Explained: Interactive UIs for AI Tools (Guide)

· 8 min read
MCPBundles

MCP Apps Guide

MCP Apps are interactive tool outputs that render as rich HTML and CSS inside supported AI clients. Instead of stopping at plain text or raw JSON, an MCP tool can return a full, styled experience: dashboards, charts, forms, data tables, and cards that users can read and interact with in context.

The Model Context Protocol already made it possible for assistants to call tools against live systems. MCP Apps extend that idea: they turn those calls into something that feels closer to a small application than a chat transcript. For anyone searching mcp app or mcp apps, this guide explains what that means technically, why teams care, and how to build one.

Traditional MCP tools return text. AI clients display text well. Many real workflows still need visual output — a stock dashboard, a compliance summary, a project status board, a customer profile. MCP Apps bridge the gap between “the model called a tool” and “the user got something they can actually use on screen.”

What MCP Apps Are (and What They Are Not)

An MCP App is not a separate product category bolted onto MCP. It is a pattern: your tool’s response includes HTML (or HTML produced by a library) that the host recognizes and renders in a sandboxed presentation surface (for example, an iframe). The assistant still invoked a normal MCP tool; the difference is the payload shape and how the client displays it.

What MCP Apps are not:

  • They are not a replacement for MCP tools — they are a richer output from those tools.
  • They are not guaranteed to render the same in every client; host support varies (see Host compatibility below).

Why MCP Apps Matter for Agents and Teams

Agents excel at reasoning over data, but humans still digest layout, hierarchy, and visuals faster than walls of text. When the same tool run can produce:

  • trend lines instead of comma-separated numbers,
  • color-coded risk instead of prose paragraphs,
  • tabular drill-down instead of nested JSON,

…the conversation stays in the assistant while the artifact carries the detail. That matters for analytics, operations, sales workflows, and anywhere “show me” beats “tell me.”

Search interest around mcp app and mcp apps has grown sharply as teams adopt MCP across Claude, ChatGPT, and developer tooling — people want visual, interactive results from their agent workflows, not only token streams.

How MCP Apps Work: Architecture in Four Steps

  1. Tool execution — In your MCP tool’s handle_call, you return HTML. That may be hand-authored markup or HTML generated by a library such as mcpbundles-app-ui (see the next section).
  2. Wire format — The AI client receives this content as a special content type associated with app-style UI (exact details depend on the host’s MCP implementation).
  3. Sandboxed rendering — The client loads the HTML in a sandboxed iframe (or an equivalent isolated surface), so styling and layout apply without escaping into the host chrome.
  4. User experience — The end user sees charts, cards, and structured layout — an mcp applications-style view — instead of a single monospace blob.

The platform or host is responsible for where that iframe lives and which capabilities (scripts, network, storage) the sandbox allows. Your job as the author is to produce valid, self-contained HTML that behaves well inside those constraints.

The mcpbundles-app-ui Library

mcpbundles-app-ui is an open-source Python package for building MCP App UIs with consistent layout and theming:

  • Install: pip install mcpbundles-app-ui
  • Core types: App, LightTheme, Stats, Stat, Card
  • Purpose: Responsive layout, theming, and patterns that work across clients that support MCP Apps (e.g. Claude and ChatGPT), so you spend less time fighting CSS and host quirks.

You subclass App, compose Stats, Card, and your own HTML fragments, and return the generated markup from handle_call. The library is aimed at mcp tools ui authors who want maintainable structure rather than one-off inline strings for every tool.

Examples of Real MCP Apps

These are representative patterns teams implement once HTML output is available:

  1. Stock Intelligence Dashboard — Real-time quotes, price charts, analyst ratings, and key financial metrics in one visual surface instead of disconnected text blocks.
  2. SEO Performance Report — Traffic trends, top landing pages, and keyword movements as cards and simple charts for quick scanning.
  3. Customer Profile Card — CRM fields rendered as a styled contact card with recent deal history and timeline cues.
  4. Code Execution Results — Formatted output with syntax highlighting, optional charts, and data tables when the agent runs analysis or scripts.
  5. Compliance Screening Report — Sanctions or watchlist-style results with risk indicators, match summaries, and clear hierarchy for reviewers.

Each example shares the same idea: structure + visual encoding so the user grasps outcomes faster than from unstructured text alone.

Building an MCP App (High-Level)

  1. Install mcpbundles-app-ui in your tool’s environment.
  2. Subclass App and configure theme (e.g. LightTheme) as needed.
  3. Compose the UI with Stats, Stat, Card, and any additional HTML your product needs.
  4. Return the resulting HTML string from your tool’s handle_call.
  5. Rely on the host to render that HTML in its sandboxed app surface when supported.

On hosts without iframe-style app rendering, users may still see a text-oriented representation of the tool result — plan copy and fallbacks accordingly.

Host Compatibility: Claude, ChatGPT, and IDEs

EnvironmentMCP Apps support
Claude DesktopFull support via artifacts-style app rendering
ChatGPTFull support via canvas-style app rendering
Cursor / IDE MCP clientsTypically text fallback today — no embedded iframe app surface in most setups

Treat mcp ui as progressive enhancement: the tool should remain correct when only text is shown, and delight when the host renders full HTML.

FAQ

What's the difference between MCP tools and MCP Apps?

MCP tools are callable functions exposed over MCP (inputs, execution, outputs). MCP Apps describe a class of tool outputs where the result is HTML meant for interactive or rich visual rendering in the client. Every MCP App is still delivered through an MCP tool; not every MCP tool is an MCP App.

Which AI clients support MCP Apps?

Claude Desktop and ChatGPT support rendering MCP App HTML in sandboxed surfaces aligned with their product UX (artifacts and canvas, respectively). Many IDE-integrated MCP clients currently surface tool results primarily as text; HTML may appear escaped or flattened.

Can I build my own MCP App?

Yes. Install mcpbundles-app-ui, subclass App, build your layout, and return HTML from handle_call. Keep markup self-contained and safe for sandboxed iframes; avoid assuming browser APIs that the host disables.

Do MCP Apps work offline?

No. MCP Apps are rendered by the client after a networked tool invocation. Without connectivity to the MCP host and backend, the tool cannot run and the HTML cannot be produced or updated.

Are MCP Apps secure?

Hosts isolate MCP App HTML in sandboxes (commonly iframes with restricted capabilities). You should still treat app HTML like untrusted UI: avoid embedding secrets in markup, validate data before display, and follow your organization’s content security policies. Security is a shared responsibility between the tool author and the host.