3 ms·
A playable DOOM MCP app
- wingi 6mo agosimply great!
- chrisnager 5mo agoAppreciate it. I had fun building.
- ashrodan 5mo agoLove it! MCP apps is still new and under-utilised and we need to understand it's boundaries and compatibility.
- chrisnager 5mo agoFor sure.
- nsxwolf 5mo agoI read this and I did not understand it. An MCP is synthesizing DOOM frames from a training set? What is this doing
- nilslice 5mo agoits basically an iframe embedding doom on a remote webpage
- Ethee 5mo agoIt took me a reread and some thinking to realize what was going on. The 'MCP app' he's referring to here is basically a browser front-end replacement like electron. So what he's doing here is running DOOM as apart of that browser run-time and passing it through to the front-end. It's less "playing DOOM through the AI" and more "Playing DOOM while the AI can watch".
- munchler 5mo agoThank you for this explanation. So the AI can respond based on the DOOM game that it’s watching? E.g. Could you ask the chatbot for advice on what to do next on the current game level?
- Ethee 5mo agoKind of? Even watching is probably a bit of a stretch here. The point of an MCP server is to be a sort of AI translator for whatever you're inputting. Here we're inputting an iframe that's running a wasm binary. So I imagine in theory all the AI sees is the actual iframe and whatever is in memory currently for the wasm game. Funny enough without some sort of screenshot tool on top of this I'm not sure the AI can actually 'see' the game at all.
- alach11 5mo agoSnake 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.
- chrisnager 5mo agoThat’s awesome. Yes!
- awesome_dude 5mo agoBest capability test there is
- phodo 5mo agoGreat 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_ 5mo agoCool, 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.
- huflungdung 5mo ago[dead]
- avaer 5mo agoThe 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 https://modelcontextprotocol.io/extensions/apps/overview [2] https://github.com/cloudflare/doom-wasm https://github.com/cloudflare/doom-wasm
- dang 5mo agoOk, we've switched the title above to a hopefully-clearer phrase from the article's first sentence.
- chrisnager 5mo agoWorks for me! Thanks for updating. Title changed from “DOOM runs in ChatGPT and Claude” to “A playable DOOM MCP app”.
- _oxxa 5mo agoI was not too surprised to see DOOM running on a pregnancy test before but seeing it on an MCP was really unexpected ;)
- 2ndorderthought 5mo agoIt's still fun but it feels gross. Like here is this monstrosity of compute running the thing we are running in toothbrushes.
- kang 5mo agosomebody did this a month ago https://www.youtube.com/watch?v=fdbXNWkpPMY 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.
- gHA5 5mo agoTimestamp?
- chrononaut 5mo agoI am not sure if it aligns to the approach in OP's article but it's the last ~minute or two of the linked video.
- deleted 5mo ago[deleted]
- nurettin 5mo agoright? I've had that feeling dozens of times during summer 2025 with the earliest claude cli. It would fail, I'd fix the bug, next session when I ask it to solve the same problem, it would succeed!
- neosat 5mo agoApart from a cool project, this evolved my perspective on what an MCP is, along with some cool architecture insights and inspiring ideas. Thank you!
- chrisnager 5mo agoGlad to hear it! This stuff is fascinating and rapidly evolving. I’ve been learning by doing. Happy hacking.
- throwawayk7h 5mo agoWas 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 5mo agoInteresting 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 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 https://github.com/firasd/mcpclock to https://mcpclock.firasd.workers.dev/mcp https://mcpclock.firasd.workers.dev/mcp <-- works in Claude .ai, Claude iOS, Claude Code, Codex, etc right now
- eigenblake 5mo agoI put Bad Apple in an MCP App two weeks ago https://youtu.be/YFF5H886slQ https://youtu.be/YFF5H886slQ
- david_shi 5mo agowhat interfaces would this work on? in-app for chatgpt, TUIs (https://www.youtube.com/watch?v=fdbXNWkpPMY https://www.youtube.com/watch?v=fdbXNWkpPMY, from another comment in the thread), anything else?
- giannicmptr1000 5mo agoI 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 5mo agoThis 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?