Skip to main content
Glama
code-cheers

魂斗罗 MCP Demo

by code-cheers

魂斗罗 MCP Demo

このプロジェクトは、Chris Nager氏のDOOM MCP Appの解説記事のアーキテクチャに従っていますが、魂斗羅スタイルの横スクロールシューティングゲームのオリジナルプレースホルダーを使用しています。

重要なのは「MCPがゲームを作成する」ことではありません。ポイントは以下の通りです:

MCPはテキストやJSONだけでなく、ライブアプリのUIを返すことができます。互換性のあるクライアントでは、ゲームが会話の中に直接表示されます。

オリジナルの魂斗羅のアセット、音楽、キャラクター、レベル、ROMデータは一切含まれていません。

メインフロー

  • create_game_session: インラインゲームセッションを作成し、互換性のあるホストがゲームをインラインでレンダリングできるようにMCPアプリのメタデータを返します。意図的にブラウザのフォールバックURLは公開しません。

  • get_game_launch_url: MCPアプリをインラインでレンダリングできないホストのために、署名付きの /game/play?token=... URLを作成します。

  • /game/play?token=...: ブラウザのフォールバックルート。トークンがあれば、サーバー側の永続的なセッションストレージなしで同じゲームセッションを起動できます。

  • ui://contra-style/mcp-app.html: インラインMCPアプリのリソース。create_game_sessionツールの結果をリッスンし、セッションを抽出して、ホストのiframe内で直接ゲームを実行します。

オプションの拡張ツール:

  • update-game-state: MCPアプリはスコア、HP、位置、敵、弾薬、ステージを公開できます。

  • get-game-state: 最新の状態を読み取ります。

  • suggest-next-move: 最新の状態から中国語のゲームプレイの提案を返します。

Related MCP server: antics-mcp

実行

npm install
npm run build
npm run serve

MCPエンドポイント:

http://localhost:3001/mcp

Codexまたは他のMCPホストからの使用

ホストに以下を呼び出すよう依頼してください:

create_game_session

ホストがMCPアプリをサポートしている場合、以下からゲームをインラインでレンダリングするはずです:

ui://contra-style/mcp-app.html

これがメインのデモです。ホストがツールを呼び出し、そのツールの結果によってプレイ可能なゲームUIがチャット画面に表示されます。このパスではフォールバックリンクを表示したり開いたりしないでください。

インラインレンダリングが利用できない場合は、以下を呼び出してください:

get_game_launch_url

その後、返された /game/play?token=... URLを開いてください。

ブラウザのフォールバック

npm run build && npm run serve の後、get_game_launch_url を呼び出し、返されたURLを開きます。

UI開発のみを目的とする場合:

npm run dev

これは署名付きセッションなしでゲームを開くため、視覚的なテストには便利ですが、メインのデモフローではありません。

操作方法

  • 移動: WASD または矢印キー

  • 射撃: Space または J

  • 再起動: R

ビデオのトークポイント

  • これはゼロからのゲーム開発チュートリアルではなく、DOOM MCP Appのアーキテクチャをモデルにしています。

  • 見出しは「MCPは会話の中にインタラクティブなゲームUIを返すことができる」です。

  • プライマリパスはインライン専用であり、署名付きブラウザ起動URLは get_game_launch_url によってのみ公開されます。

  • MCPアプリはホストのiframe内で直接ゲームを実行します。アプリ内で別のページをiframeすることはありません。

  • MCPの真の教訓:プロトコル + UIリソース + 署名付き起動フローにより、Web機能をAIクライアントネイティブなアプリに変えることができます。

検証

npm run check
npm run build
curl -sS -X POST http://localhost:3001/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  --data '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides a fully playable Flappy Bird game that runs inline within AI chat clients. It enables users to launch the game, submit scores, and track session high scores using Model Context Protocol tools.
    1
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to deploy multiplayer web games as playable URLs with rooms, live state sync, and leaderboards, all through a single tool call.
    4
    96
    5
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that lets LLMs play a terminal Space Invaders game with the SUPERHOT rule: time only moves when the agent moves. Exposes tools to start a game, inspect the board state, and act by holding left/right/fire for N frames.
    13
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/code-cheers/contra-mcp-app'

If you have feedback or need assistance with the MCP directory API, please join our Discord server