You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Codex Desktop does not render MCP Apps inline UI resources even when tool result includes mcp_app_resource_uri #21019
Codex Desktop currently appears able to call MCP tools, but it does not render MCP Apps inline iframe UI resources.
A minimal MCP App tool returns a valid mcp_app_resource_uri and _meta resource URI fields, but Codex Desktop never appears to call read-mcp-resource, so the inline UI is not rendered.
Can you confirm whether MCP Apps inline UI is currently supported in Codex Desktop, and if not, when it is expected to be supported?
However, Codex Desktop does not render an inline iframe UI and no read-mcp-resource / resource read is observed.
Expected behavior
When an MCP tool result includes a valid MCP App resource URI, Codex Desktop should read the MCP resource and render it inline as an iframe/app UI.
Actual behavior
The MCP tool call succeeds and the session log contains mcp_app_resource_uri, but the Desktop UI only shows the textual tool result. No inline app UI is rendered.
Additional investigation
I inspected the current Desktop bundle and found that MCP Apps rendering appears to be gated by enable_mcp_apps / renderMcpApps.
The public Codex docs mention features.apps, but I could not find public documentation for features.enable_mcp_apps.
The OpenAI Codex repo has PR #19884, "Add MCP app feature flag", which adds enable_mcp_apps as an under-development feature disabled by default: #19884
This suggests MCP Apps inline UI may currently be behind an internal/product gate, even though MCP tools and resources are otherwise available.
Question
Is MCP Apps inline UI currently supported in Codex Desktop?
If it is intentionally gated or temporarily disabled, is there a documented way to enable it locally, or an expected release/version where it will be supported?
I can reproduce this with a FastMCP/Prefab MCP Apps POC, and I have a useful cross-client comparison that points to the Codex Desktop render/resource hydration path rather than the MCP server payload.
Environment / server:
Codex CLI/runtime: codex-cli 0.130.0
macOS
features.apps = true
features.enable_mcp_apps = true enabled, with the under-development warning shown at Codex startup
MCP server: local stdio server
Server stack: fastmcp==3.3.1, prefab-ui==0.18.0
Tool tested: read_note_app
The tool descriptor exposed to Codex includes the expected app metadata:
ChatGPT renders the app inline when connected to the same server over an HTTPS /mcp tunnel.
Claude Desktop renders the app inline when connected to the same local stdio server.
Codex discovers the tools and calls read_note_app successfully, but the chat surface displays the raw $prefab JSON payload rather than rendering the app iframe/component.
So this looks consistent with the issue description: Codex receives enough metadata to identify the MCP App resource, but the Desktop UI does not appear to hydrate/render the app resource yet.
This POC also exercises expandable frontmatter, markdown rendering, observations, and relations, so it is not just a bare hello-world resource. Happy to provide a minimal repro if useful.
But the Desktop UI still only rendered the textual URI:
ui://codex-iframe-repro/hello.html
I did not observe any resources/read event in the session, and the inline iframe was not rendered.
So this still appears broken in 26.609.30741: custom MCP Apps are detected at the core/tool-call level, but the Desktop renderer/resource hydration path does not fetch/render the declared text/html;profile=mcp-app resource.
I also checked PR #19884. It only documents/implements the enable_mcp_apps under-development feature flag and schema entry; I did not find another documented local enablement flag beyond setting features.enable_mcp_apps = true or running:
Activity
ilyes-i-ben commentedon May 7, 2026
+1
phernandez commentedon May 16, 2026
I can reproduce this with a FastMCP/Prefab MCP Apps POC, and I have a useful cross-client comparison that points to the Codex Desktop render/resource hydration path rather than the MCP server payload.
Environment / server:
codex-cli 0.130.0features.apps = truefeatures.enable_mcp_apps = trueenabled, with the under-development warning shown at Codex startupfastmcp==3.3.1,prefab-ui==0.18.0read_note_appThe tool descriptor exposed to Codex includes the expected app metadata:
{ "ui": { "resourceUri": "ui://prefab/tool/fdb0eb60723f/renderer.html", "visibility": ["model", "app"] }, "ui/resourceUri": "ui://prefab/tool/fdb0eb60723f/renderer.html", "openai/outputTemplate": "ui://prefab/tool/fdb0eb60723f/renderer.html", "openai/widgetAccessible": true, "openai/visibility": "public" }The server also advertises the matching resource:
Result:
/mcptunnel.read_note_appsuccessfully, but the chat surface displays the raw$prefabJSON payload rather than rendering the app iframe/component.So this looks consistent with the issue description: Codex receives enough metadata to identify the MCP App resource, but the Desktop UI does not appear to hydrate/render the app resource yet.
This POC also exercises expandable frontmatter, markdown rendering, observations, and relations, so it is not just a bare hello-world resource. Happy to provide a minimal repro if useful.
japboy commentedon May 30, 2026
I've just confirmed that Codex Desktop could show my MCP Apps (w/o proper CSP support though)
Jerrynet commentedon May 31, 2026
I've using the official @modelcontextprotocol/ext-apps example build for testing:
mike123789-dev commentedon Jun 2, 2026
same im sure it worked before but in latesest version 26.527.60818(3437 it doesnt work
pssuryaprakash1-creator commentedon Jun 2, 2026
Jules-Astier commentedon Jun 12, 2026
I can reproduce this on a newer Codex Desktop build with a minimal
@modelcontextprotocol/ext-appsstdio server.Environment:
26.609.30741(bundle build3808)codex-cli 0.140.0-alpha.2features.apps = truefeatures.enable_mcp_apps = trueThe MCP tool descriptor advertises all three resource URI forms that Codex core recognizes:
{ "ui": { "resourceUri": "ui://codex-iframe-repro/hello.html", "prefersBorder": true }, "ui/resourceUri": "ui://codex-iframe-repro/hello.html", "openai/outputTemplate": "ui://codex-iframe-repro/hello.html", "openai/resultCanProduceWidget": true, "openai/widgetAccessible": true }The tool call result also includes matching metadata:
{ "structuredContent": { "title": "Codex MCP iframe repro", "message": "Visible iframe?", "accent": "rose", "resourceUri": "ui://codex-iframe-repro/hello.html" }, "_meta": { "ui": { "resourceUri": "ui://codex-iframe-repro/hello.html" }, "ui/resourceUri": "ui://codex-iframe-repro/hello.html", "ui.resourceUri": "ui://codex-iframe-repro/hello.html", "openai/outputTemplate": "ui://codex-iframe-repro/hello.html", "openai/resultCanProduceWidget": true, "openai/widgetAccessible": true, "mcp_app_resource_uri": "ui://codex-iframe-repro/hello.html" } }The raw Codex session event confirms that Codex core extracted the MCP App resource URI from the tool metadata:
But the Desktop UI still only rendered the textual URI:
I did not observe any
resources/readevent in the session, and the inline iframe was not rendered.So this still appears broken in
26.609.30741: custom MCP Apps are detected at the core/tool-call level, but the Desktop renderer/resource hydration path does not fetch/render the declaredtext/html;profile=mcp-appresource.I also checked PR #19884. It only documents/implements the
enable_mcp_appsunder-development feature flag and schema entry; I did not find another documented local enablement flag beyond settingfeatures.enable_mcp_apps = trueor running:codex features enable enable_mcp_appsvozer commentedon Jun 18, 2026
Same, can reproduce and activating Feature Flag did not help
vozer commentedon Jun 18, 2026
Implemented a clean prototype for this in my fork.
What changed:
mcpAppResourceContentsenable_mcp_appsis enabledvozer@03b480d
0xdevalias commentedon Jun 21, 2026
See also:
Jerrynet commentedon Jun 22, 2026
They fixed it with the
26.616.51431release on June 21st.Surface form-view link to non-widget clients; fix transient 404 data
docs: Codex plugin install, host test procedure, rollback, limitations