MCP tools graduate from text walls to interactive UIs
It lets MCP servers serve interactive HTML widgets that render inline inside chat clients, turning tool output from text into charts, forms, and dashboards.

What it does
MCP Apps extends the Model Context Protocol so that tool definitions can carry a ui:// resource—an HTML interface instead of a plain text response. When a host like Claude or ChatGPT calls the tool, it fetches that resource and renders it in a sandboxed iframe inside the chat thread. The repo contains the spec, a TypeScript SDK for building and embedding these Views, and a broad set of example servers.
The interesting bit
The protocol effectively treats chat clients as a lightweight windowing system: the UI runs isolated in an iframe but can call back into the host to trigger other tools, while the host pushes updates via notifications. It is a pragmatic way to avoid rebuilding chat infrastructure just to show a spreadsheet or a 3D globe.
Key highlights
- Ships a four-package SDK covering app Views, React hooks, host embedding (
app-bridge), and server registration. - Bundles four “Agent Skills” to scaffold new apps, migrate OpenAI Apps, add UI to existing servers, or convert web apps.
- Claims client support across Claude, ChatGPT, VS Code, Goose, Postman, and MCPJam, though the README warns that host support varies.
- Includes example servers ranging from Excalidraw and CesiumJS maps to budget allocators and cohort heatmaps.
- No supported host implementation lives in this repo beyond a
basic-hostexample; production clients appear to rely on the external MCP-UI framework.
Caveats
- Host support is explicitly uneven; the spec is an extension, and not every MCP client renders
ui://resources. - The repo does not ship a production-ready host implementation, so client authors must either adopt MCP-UI or build their own iframe orchestration.
Verdict
Worth a look if you build MCP servers and want to stop explaining data with monospace text dumps. Skip it if you are looking for a drop-in chat client—this is the server and spec side of the equation.
Frequently asked
- What is modelcontextprotocol/ext-apps?
- It lets MCP servers serve interactive HTML widgets that render inline inside chat clients, turning tool output from text into charts, forms, and dashboards.
- Is ext-apps open source?
- Yes — modelcontextprotocol/ext-apps is an open-source project tracked on heatdrop.
- What language is ext-apps written in?
- modelcontextprotocol/ext-apps is primarily written in TypeScript.
- How popular is ext-apps?
- modelcontextprotocol/ext-apps has 2.6k stars on GitHub.
- Where can I find ext-apps?
- modelcontextprotocol/ext-apps is on GitHub at https://github.com/modelcontextprotocol/ext-apps.