Checked 2026-07-13

Which AI hosts can display your MCP App UI?

For MCP builders: compare which agent hosts like Claude and ChatGPT can show MCP App interactive widgets.

Host
UI bundle

UI delivered as a bundle

The server sends bundled HTML, CSS, and JavaScript through MCP. The host embeds it inside chat.

What this means

Build with standard web code. React or Vue are fine after you bundle them.

When you might use it

  • Interactive charts, tables, or other content.
  • Buttons and forms that call MCP tools.
Live HTTPS page

UI as a live HTTPS page

An MCP App embeds your live website in a nested iframe. The host must allow its domain.

What this means

Keep the app at an HTTPS URL. A tiny MCP wrapper embeds it, but many hosts block this.

When you might use it

  • Reuse an existing hosted frontend.
External link

UI as an external link

The tool returns a link. It opens outside the conversation.

What this means

Return a hosted UI link with text or JSON. It opens outside chat and works almost everywhere.

When you might use it

  • Fallback when inline UI fails.
  • Complex full-screen workflows.
App-only data

App-only data

Data sent to the embedded UI but hidden from the AI model. This is separate from the UI bundle and normal tool results.

What this means

Use it only for optional UI details. Never put required results here because some hosts can drop it.

When you might use it

  • Map coordinates and marker IDs used only by an interactive map.
  • Pagination cursors, row IDs, or display settings used by UI controls.
Tool-result limit Biggest catch
Recommended baseline Start here Use this

Primary in-chat UI

Avoid by default

Host support varies

Create fallback UI

Return a link to its hosted page

Optional only

Never put required results here.

Target ≤10K result tokens

This is for tool data, not the UI bundle.

Return useful text or JSON even when the app frame does not render.
Claude Web
Yes
Generally blocked

Generally blocked

Claude typically will not embed an arbitrary live HTTPS page inside the chat.

What this means

Ship a UI bundle (MCP HTML resource), not a nested live site. Keep an external link as the escape hatch.

Yes

Opens outside chat

Yes

The UI can receive data hidden from the AI model.

25K tokens

MCP App trouble has been observed around 150K characters.

Arbitrary external frames are restricted. Large results need paging or follow-up fetches.
Claude Desktop
Yes
Generally blocked

Generally blocked

Claude typically will not embed an arbitrary live HTTPS page inside the chat.

What this means

Ship a UI bundle (MCP HTML resource), not a nested live site. Keep an external link as the escape hatch.

Yes

Opens outside chat

Yes

The UI can receive data hidden from the AI model.

25K tokens

MCP App trouble has been observed around 150K characters.

App HTML is cached aggressively; a full restart may be needed after changes.
Claude Code CLI
No
No
Yes

Opens outside chat

Not applicable

This surface does not display an embedded UI.

~25K tokens

A per-tool override can preserve up to 500K characters.

Large output may become a file plus a short preview.
ChatGPT Web / desktop
Yes
Yes, restricted

Yes, restricted

ChatGPT can embed a live HTTPS page only when that domain is allowlisted for nested iframes.

What this means

Prefer a UI bundle when you can. If you need a live page, declare the exact domain and expect stricter app review.

Yes

Opens outside chat

Yes

The UI can receive data hidden from the AI model.

Not published

OpenAI recommends keeping model-visible structured data concise.

Embedding a live website requires an allowlisted iframe domain and can trigger stricter app review.
OpenAI Codex CLI / IDE
Not documented
Not documented
Yes

Opens outside chat

Not applicable

This surface does not display an embedded UI.

Not published MCP tools and resources work, but an inline app frame is not documented.
OpenAI Codex Desktop
Experimental

Experimental

Codex Desktop MCP Apps are under development and usually off by default.

What this means

Do not depend on an in-chat UI here yet. Return useful text or JSON, and treat any app render as a bonus.

Not established
Yes

Opens outside chat

Unreliable

App-only data delivery cannot be depended on.

Not published MCP Apps are under development and disabled by default.
Cursor 2.6+
Yes, gated

Yes, gated

Cursor documents MCP App support, but the in-chat iframe often does not appear even when the tool returns a valid UI render resource.

What this means

Treat the UI as optional. Always return useful text or JSON, plus an external link when needed. Do not depend on every Cursor user seeing the in-chat app.

Not documented
Yes

Opens outside chat

No

Normal tool results arrive, but app-only data is missing.

Not published Support exists, but this Cursor surface often shows text/links only—no in-chat iframe. Private UI-only data can also be dropped.
VS Code GitHub Copilot
Yes
Yes, restricted

Yes, restricted

VS Code can embed a live HTTPS page only when that domain is declared for nested iframes.

What this means

Prefer a UI bundle when you can. If you need a live page, declare the exact domain and keep a text or JSON fallback.

Yes

Opens outside chat

Yes

The UI can receive data hidden from the AI model.

Not published Only inline display is supported. MCP Apps can be disabled in settings.
Goose Desktop
Yes
Needs testing
Yes

Opens outside chat

Needs testing

App-only data delivery has not been verified.

Not published Behavior depends on the Goose version and Apps client implementation.

What is MCP App UI?

You build an MCP (Model Context Protocol) so customers can use AI tools like Claude and ChatGPT to access your product's data and actions. MCP Apps are the first official MCP extension. They let your MCP show an interactive widget, such as a map, form, chart, or table, directly inside a supported AI chat.

Portable fallback

Every tool should return useful text or structured JSON even when it also has an app. If the host cannot show the UI, users still get a usable result.

Unknown does not mean unlimited

“Not published” means the host has not stated a reliable numeric limit. Test large tool results before depending on them in production.

About the three UI methods Show details

UI delivered as a bundle

Inside chat

The server sends bundled HTML, CSS, and JavaScript through MCP. The host embeds it inside chat.

What this means

Build with standard web code. React or Vue are fine after you bundle them.

When you might use it

  • Interactive charts, tables, or other content.
  • Buttons and forms that call MCP tools.

UI as a live HTTPS page

Inside chat

An MCP App embeds your live website in a nested iframe. The host must allow its domain.

What this means

Keep the app at an HTTPS URL. A tiny MCP wrapper embeds it, but many hosts block this.

When you might use it

  • Reuse an existing hosted frontend.

UI as an external link

Outside chat

The tool returns a link. It opens outside the conversation.

What this means

Return a hosted UI link with text or JSON. It opens outside chat and works almost everywhere.

When you might use it

  • Fallback when inline UI fails.
  • Complex full-screen workflows.
Sources and evidence Show 10 sources