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
in-app for chatgpt, TUIs (https://www.youtube.com/watch?v=fdbXNWkpPMY, from another comment in the thread), anything else?
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.
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
Title changed from “DOOM runs in ChatGPT and Claude” to “A playable DOOM MCP app”.
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?)