Skip to main content
Glama
code-cheers

魂斗罗 MCP Demo

by code-cheers

Contra MCP Demo

Этот проект следует архитектуре из статьи Криса Нейджера о DOOM MCP App, но использует оригинальную браузерную игру-заглушку с горизонтальной стрельбой в стиле Contra.

Важно не то, что «MCP создает игру». Суть в следующем:

MCP может возвращать живой пользовательский интерфейс приложения, а не только текст или JSON. В совместимых клиентах игра появляется прямо внутри диалога.

Никакие оригинальные ассеты, музыка, персонажи, уровни или данные ROM из Contra не включены.

Основной поток

  • create_game_session: создает встроенную игровую сессию и возвращает метаданные MCP App, чтобы совместимые хосты могли отображать игру внутри себя. Он намеренно не раскрывает резервный URL для браузера.

  • get_game_launch_url: создает подписанный URL /game/play?token=... для хостов, которые не могут отображать MCP Apps внутри себя.

  • /game/play?token=...: резервный маршрут для браузера. Токена достаточно для запуска той же игровой сессии без постоянного хранения сессии на стороне сервера.

  • ui://contra-style/mcp-app.html: встроенный ресурс MCP App. Он прослушивает результат инструмента create_game_session, извлекает сессию и запускает игру непосредственно во фрейме хоста.

Дополнительные инструменты расширения:

  • update-game-state: MCP App может публиковать счет, 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 Apps, он должен отобразить игру внутри себя из:

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

Это основная демонстрация: хост вызывает инструмент, и результат инструмента приводит к появлению игрового интерфейса в чате. Не показывайте и не открывайте резервную ссылку в этом сценарии.

Если встроенное отображение недоступно, вызовите:

get_game_launch_url

Затем откройте возвращенный URL /game/play?token=....

Резервный вариант для браузера

После npm run build && npm run serve вызовите get_game_launch_url и откройте возвращенный URL.

Только для быстрой разработки UI:

npm run dev

Это открывает игру без подписанной сессии, поэтому полезно для визуального тестирования, но не для основного демонстрационного потока.

Управление

  • Движение: WASD или клавиши со стрелками

  • Стрельба: Space или J

  • Перезапуск: R

Основные тезисы для видео

  • Это смоделировано по архитектуре DOOM MCP App, а не является учебником по разработке игр с нуля.

  • Главная мысль: MCP может возвращать интерактивный игровой интерфейс прямо внутри диалога.

  • Основной путь — только встроенный; подписанный URL для запуска в браузере предоставляется только через get_game_launch_url.

  • MCP App запускает игру непосредственно во фрейме хоста; он не встраивает другую страницу внутри приложения.

  • Настоящий урок MCP: протокол + UI-ресурс + поток подписанного запуска могут превратить веб-возможность в нативное приложение для 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
    145
    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