Builder shipped a DOOM MCP app using cloudflare/doom-wasm that renders inline in Claude and ChatGPT via MCP app views, with a signed-token URL fallback for other clients.
Key Takeaways
Treat the MCP app view as the browser page directly, not a nested iframe shell, to avoid CSP and frame-src restrictions from host clients.
Two MCP tools handle both paths: create_doom_session for inline-capable hosts, get_doom_launch_url as fallback for clients that cannot render inline UI.
Signed token in the launch URL is self-contained; no server-side session persistence needed before the game starts.
Uses cloudflare/doom-wasm runtime with Freedoom Phase 1 as default content, deployed on Netlify under /doom/*.
Builder cut save/load, screenshots, and persistence adapters; the smaller surface made the inline app path more reliable.
Hacker News Comment Review
Technical consensus: MCP apps are HTML in an iframe registered as an MCP resource; the inline rendering is the MCP app spec, not anything the AI model is doing.
Commenters flagged the title as misleading: DOOM runs “in” the AI client interface via MCP, not “on” the AI; the actual engine is cloudflare/doom-wasm.
The space is moving fast: similar DOOM-in-MCP work appeared roughly a month earlier, and Bad Apple was embedded in an MCP app two weeks prior.
Notable Comments
@firasd: MCP tool calling is underrated for in-chat apps; building Liveclip (tables in chat) as another example of the unexplored interactive surface.
@alach11: Snake and DOOM were early limit-tests when standing up Open WebUI for internal chat and agent use.