Canva MCP app succeeds but returns no HTML preview in Codex Desktop
Summary
In Codex Desktop, the OpenAI-curated Canva plugin successfully executes Canva MCP tools, but the embedded MCP App preview is not rendered. The client shows the Chinese error:
MCP 应用未返回 HTML 内容
("The MCP app did not return HTML content.")
The Canva tools return only text/JSON structured content, even when prepare_design_generation is expected to open an interactive recommendation/generation widget.
Environment
- Platform: macOS
- Codex bundled CLI:
codex-cli 0.142.0-alpha.6 - Canva plugin:
canva@openai-curated-remote 1.0.2 - Auth: ChatGPT / Canva connector authorized
- Canva MCP tool actions themselves succeed
Reproduction
- Install and connect the OpenAI-curated Canva plugin.
- Start a new Codex Desktop thread.
- Invoke Canva and ask:
生成一张里斯本 DAY 1 旅行攻略封面. - Codex calls
canva_prepare_design_generationwithintent: recommendation. - The tool returns success with JSON/structured content such as:
prepare_design_generation: truerecommendation: { type: "empty", items: [] }
- Codex calls the same tool with
intent: generation. - The tool returns a successful job object with
status: in_progress, but no HTML/resource content for the MCP App UI. - Codex Desktop shows no Canva card/preview and reports that the MCP app did not return HTML content.
Observed behavior
- Canva generation jobs succeed.
- Direct Canva candidate URLs can be generated through the non-widget design generation tool.
- Canva designs can be fetched and edited through MCP.
- The interactive HTML widget and embedded previews never render.
- Canva thumbnail URLs returned as text also do not render inline in the Codex client.
Example successful generation job IDs:
8f97d3ed-4634-48ad-a3fa-707037d606f6a3b90bef-a638-4d45-afa4-edcb6b9d4cf5
Expected behavior
canva_prepare_design_generation should return the MCP App HTML/resource payload required by Codex Desktop so the visual-reference picker, outline review, generation status, and candidate previews render in the thread.
If the Canva server returns only JSON, Codex Desktop should gracefully fall back to rendering candidate links or thumbnails rather than displaying an HTML-content error.
Troubleshooting already attempted
- Disconnected/reconnected Canva
- Restarted Codex Desktop
- Retried with a minimal single-page poster prompt
- Retried using an explicit Canva design as
visual_reference - Confirmed Canva MCP read/write operations work
The issue persists and appears isolated to the MCP App HTML/rendering contract between the Canva plugin and Codex Desktop.
4 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
See also:
MCP App handling should distinguish tool success from preview-resource availability. A Canva tool call can return structured JSON successfully while still failing to provide an HTML/resource payload for the embedded app.
The client should surface both states: tool result received, preview resource missing, expected content types, resource ids, and next poll/retry state. If generation is async, carry job id plus preview readiness separately so "no HTML content" is debuggable instead of looking like the whole MCP action failed.
---
_Generated with ax._
Reproduced on Windows with Canva connector 1.0.2 and Codex runtime bundle 26.619.11828.
prepare-design-generation still shows “MCP app did not return HTML content”.
Direct generate-design works, but the interactive Canva widget does not render.