A playable DOOM MCP app

chrisnager 82 points 31 comments April 28, 2026
chrisnager.com · View on Hacker News

Discussion Highlights (17 comments)

wingi

simply great!

ashrodan

Love it! MCP apps is still new and under-utilised and we need to understand it's boundaries and compatibility.

nsxwolf

I read this and I did not understand it. An MCP is synthesizing DOOM frames from a training set? What is this doing

alach11

Snake and DOOM were two of our early tests (for filter functions and MCP) when we stood up Open WebUI for internal chat/agent use. Sometimes games are the best way to limit-test new tech.

awesome_dude

Best capability test there is

phodo

Great work. I wonder what the future "can it run doom ?" Will it be: Can it run AGI on a new quantum processor/ robot / bio-engineered cell. Or will it be Doom all the way down...

_pdp_

Cool, but yes you can render whatever you want as long as you register an MCP resource and use it as part of a tool call. It is just html in an iframe.

avaer

The title is misleading. This is in ChatGPT but not on ChatGPT. It's not running on AI. It's running on a site that serves an AI chatbot. Still very cool though. I suppose most people don't know this, but you can render web resources into chat harnesses via MCP apps [1]. The actual DOOM part of this runs on [2]. [1] https://modelcontextprotocol.io/extensions/apps/overview [2] https://github.com/cloudflare/doom-wasm

sdkks

I was not too surprised to see DOOM running on a pregnancy test before but seeing it on an MCP was really unexpected ;)

kang

somebody did this a month ago https://www.youtube.com/watch?v=fdbXNWkpPMY i am increasingly going schizo, where every single thing I post/see posted gets copied and karma farmed on social media. further, any novelty I share with an llm gets eaten/absorbed by the harness as a feature.

neosat

Apart from a cool project, this evolved my perspective on what an MCP is, along with some cool architecture insights and inspiring ideas. Thank you!

throwawayk7h

Was a little disappointed that this didn't result in the agent playing Doom itself over MCP. Still this is very cool! (And if that had been what you'd implemented, my disappointment would have been that it wasn't the reverse. :P Can it do both?)

firasd

Interesting experiment! I think tool calling (such as MCP) is really underrated. People think of it as a way to connect to Google Drive etc but the potential for MCP to power actual in-chat apps is very under-explored. I've been working on something called Liveclip which is like tables in chat: just a few hours ago I implemented a way for ChatGPT (etc) to surface sentences within the US Constitution: https://x.com/firasd/status/2049187034066198658 I've also thought that games are an obvious way to explore chat-native MCP apps. Hangman for example. Also small utilities like a clock. In fact I have a no-auth remote MCP clock that can be added to any client right now deployed straight from https://github.com/firasd/mcpclock to https://mcpclock.firasd.workers.dev/mcp <-- works in Claude .ai, Claude iOS, Claude Code, Codex, etc right now

eigenblake

I put Bad Apple in an MCP App two weeks ago https://youtu.be/YFF5H886slQ

david_shi

what interfaces would this work on? in-app for chatgpt, TUIs ( https://www.youtube.com/watch?v=fdbXNWkpPMY , from another comment in the thread), anything else?

ghstinda

I remember when this game came out, there was nothing that felt like it, but Shadow Warriors was pretty cool. Doom was special just because it felt right and the rhythm just flowed as you went deeper.

JambalayaJimbo

This is cool! I'd love if you could explain the issues you had with CSP and serving content. I was just tinkering around with MCP Apps the other day, and I had a really hard time serving images (this is for rendering in VSCode Copilot). Did you serve static resources through resource endpoints in the mcp server, or via another mechanism?

Semantic search powered by Rivestack pgvector
8,303 stories · 78,303 chunks indexed