もしAIチャットボットが、単なるリンクではなく、会話の中にフル機能のビデオゲームをホストできたらどうだろうか?
ChatGPTとClaudeでDOOMが動いた。これが現実になったのだ。2026年4月、Chris Nager氏による実験で、AnthropicのModel Context Protocol (MCP) を使用して、1993年のid Software製シューターがこれらのAIクライアントに直接移植された。電卓や冷蔵庫はもう古い。これは言語モデルの中でコードを実行するという、MCPアプリの可能性を照らし出すギークな偉業だ。
そして、ここがエキサイティングな点だ。これは単なる見世物ではない。MCPアプリは、iframes経由でインライン描画されるインタラクティブなUIを提供し、テキスト取得や画像返信を超えた進化を遂げている。LATAM(あるいはどこであろうと)でClaude、ChatGPT、Cursorを使ってエージェントを開発している開発者たちは、アーキテクチャの選択肢が明確になったのを目の当たりにしている。これは誇大広告ではなく、AIフローにリッチな体験を埋め込むための設計図なのだ。
DOOMはChatGPTとClaudeでどう動くのか?
2024年11月にAnthropicがローンチしたMCPは、LLMにとってのUSB-Cのようなものだ。Claude Desktop、Zed、ChatGPTといったクライアントは、カスタムハックなしで、外部ツール、データ、アプリに統一的に接続できる。サーバーがプラグアンドプレイになるのだ。
初期のMCPサーバーはテキストやツールコールを出力していた。MCPアプリはそれを進化させ、ホストのiframe内にカスタムUIを描画する。Nager氏の設定はこの機能を利用してDOOMを実行している。これは、オリジナルのエンジンをWebAssemblyにコンパイルしたcloudflare/doom-wasmと、ライセンスフリー再配布のためのFreedoom Phase 1を組み合わせたものだ。
アーキテクチャはどうなっているか?イテレーションを経て、本質に削ぎ落とされた。3つのコアコンポーネントがある:
create_doom_session: サポートされているクライアントでインラインMCPアプリセッションを開始する。get_doom_launch_url: 他のクライアント向けにプレーンなURLにフォールバックする。/doom/playルート: URL内の署名済みトークン経由でゲームを実行する。
そのトークン——JWT——が秀逸だ。サーバーとの状態同期のためのpingなしでDOOMを起動でき、バックエンドとランタイムを切り離している。実行はブラウザ、あるいはClaudeのiframeが単独で処理する。
Nager氏は、この宝石を共有した:
最もエレガントなのは署名付きトークンだ:起動URLには暗号化されたトークンが含まれており、ブラウザが状態を維持するためにサーバーとの往復を必要とせず、ゲームを起動するだけで十分だ。
なぜこれがAI開発者にとって重要なのか?
真の戦いはWebAssemblyコンパイルではなかった――それは昔の話だ。それは、多様なクライアントセキュリティポリシーを制御することだった。Claude web、ChatGPT、Codexのようなホストは、ネストされたiframes、CSP、frame-srcに対して様々なルールを強制する。
最初の試みでは、/doom/play のためにMCPアプリiframe内にiframeをネストした。うまくいった時もあれば、クラッシュした時もあった。解決策?ラッパーを廃止することだ。DOOMのキャンバスをホストのiframeに直接マウントする。ネストなし、frame-srcの悩みなし、ナビゲーションの想定なし。
これがそのフローだ:
flowchart LR
U["Claude/ChatGPT上のユーザー"] --> H["MCPホスト"]
H -->|ツール呼び出し| S["MCPサーバー"]
S -->|トークン署名| T["JWTトークン"]
T --> A["MCPアプリiframe"]
A -->|WADロード| W["DOOM WASM"]
W --> C["インラインキャンバス"]
古典的な教訓:脆弱なレイヤーは剥がせ。
これは90年代後半のブラウザ戦争を彷彿とさせる――JavaScriptアプレットが埋め込みアプリを約束したが、セキュリティのサイロが勢いを殺した。MCPはそれを回避し、クライアント間でUIを標準化する。大胆な予測:2028年までには、ChatGPT内で共同開発IDEを動かすMCPアプリが登場するだろう、ゲームだけではない。
しかし、懐疑論も忍び寄る。AnthropicはMCPをオープンだと喧伝しているが、ホストの断片化は依然として続く――まだ全てのクライアントがアプリをサポートしているわけではない。Nager氏の質素なバージョンは、セッション永続化やスクリーンショットを回避することで輝きを放つが、実用的なアプリへのスケーリング?それはもっと多くのものを要求する。
ClaudeのWebインターフェース内のDOOM。天井がどこまでも広がる証拠だ。
MCPはモデルにテキストツールを公開することから始まった。アプリはフルUIへと拡張されている。DOOMを動かすことが目標なのではない;それは広大なヘッドルームの証拠なのだ。
AIエージェントを目指すLATAMの開発者にとっては、署名付きトークンのようなステートレス設計を優先すること。早期に複数のホストでテストすること――ChatGPTのiframeの柔軟性は、Claude Desktopの厳格さとは異なる。そして、計算負荷の高いペイロードにはWebAssemblyを活用すること。これはクライアントのアップグレードに対して将来性を確保する。
より大きなシフト:AIクライアントはプラットフォームになる
これは単なるDOOMではない。AIインターフェースがランタイム環境へと進化する兆候なのだ。ライブデータ可視化、3Dモデラー、あるいはマルチプレイヤーシムのためのMCPアプリを想像してほしい――すべてインラインで、モデル認識型だ。
ユニークな洞察:1995年にHTTPがWeb UIを標準化したように、MCPはAIツールを統一し、モバイルストアに匹敵するアプリエコシステムを生み出す可能性がある。しかし、企業的な宣伝に注意――Anthropicの「USB-C」の比喩は、採用のハードルを覆い隠している。真の普遍性には、OpenAIのような競合が完全に参入する必要がある。
ここにエネルギーが surge している。プラットフォームは、境界が曖昧になるとシフトする――LLMがゲームをホストすることは、会話に織り込まれたコード実行を意味する。開発者諸君、MCPのドキュメントをつかんでほしい;次の波が待っている。
MCPアプリ開発者へのヒント:ネストされたiframesは避ける。直接埋め込む。
この実験は注目に値する。それは、欠点も含めて、前進する道筋を照らしている。
🧬 関連インサイト
よくある質問
Model Context Protocol (MCP) とは何ですか?
LLMが外部ツール、データ、UIと統一的に接続するためのAnthropicのオープンスタンダード――AIクライアントのためのUSB-Cと考えてほしい。
今すぐChatGPTでDOOMを実行できますか?
はい、Nager氏の公開MCPサーバー経由で可能です――あなたのクライアントがMCPアプリをサポートしている場合。フォールバックURLは普遍的に機能します。
MCPアプリは、AIにおける従来のWebアプリに取って代わりますか?
すぐにではないが、強力なUIをインラインに埋め込み、チャットをインタラクティブなプラットフォームへと変貌させるだろう。