MCP Apps: what they are and how to try one
An MCP App returns an interface, not a wall of text. How the spec works, which clients render it, and where to find Apps in the directory.
An MCP App is an MCP server whose tool returns a small interface along with its result. Claude, ChatGPT, and VS Code render that interface in a sandbox inside the chat. To try one, open /apps, pick a listing, and install it from the publisher like any other server.
How it differs from a text tool
A normal tool returns text or JSON, and the model summarizes it. An App tool also points at a ui:// resource. The host loads that resource in a sandboxed frame. You click, filter, or edit inside the frame, and what you did becomes the next turn the model sees.
How it is wired
- The server declares a
ui://resource: HTML the host can load. - A tool points at that resource.
- The host renders the resource in a sandboxed iframe next to the reply.
- Your interaction goes back to the model as part of the conversation.
Which clients render it
Claude lists Apps among its connectors. ChatGPT calls them apps, and most of those servers also speak MCP. In VS Code, search @mcp in the Extensions panel. A client without App support still sees the tool and whatever text it returns.
Try one
- Open
/apps. Verified Apps sit first: Asana, Slack, Figma, Canva, Excalidraw, and the official examples. - Open a listing, for example
/mcp/excalidraw-excalidraw-mcp. The install block is the publisher's URL or command. - Add it to Claude, ChatGPT, or VS Code with the listing's button or snippet.
- Ask for something the App draws or edits, such as a diagram. The interface appears in the chat.
The spec project's own examples are at /mcp/modelcontextprotocol-ext-apps. Read them before you build an App of your own.
Building one
An App is still an MCP server, so it gets a listing like any other. Submit it at /mcp/submit. If you want keys and call logs on a server you run, see /host. The shorter note this guide grew from is /blog/mcp-apps.