A playable DOOM MCP app

· web ai · Source ↗

TLDR

  • 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.

Original | Discuss on HN