魂斗罗 MCP Demo
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 serveMCP эндпоинт:
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":{}}'This server cannot be deployed
Maintenance
Related MCP Connectors
Build your own tools from chat: design, test and host them on a shareable MCP server URL.
Build, deploy, and operate hosted web apps on VibeKit (vibekit.bot) from any MCP client.
Create, test and play AI-native games through server-authoritative contracts.
Free, ad-free open-source browser games that open and play right inside the chat.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides 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.2-

antics-mcpofficial
FlicenseAqualityDmaintenanceEnables AI agents to deploy multiplayer web games as playable URLs with rooms, live state sync, and leaderboards, all through a single tool call.466 npm5-- AlicenseNot gradedqualityFmaintenanceEnables long-form tabletop narrative play with durable campaigns, profiles, conflict phases, and branching storylines. Provides session-scoped MCP tools for lobby and play phases, including administrator controls for access, snapshots, and branches.Apache 2.0
- AlicenseAqualityCmaintenanceEnables any local AI agent to play turn-based games over MCP by exposing reset, observe, and act verbs with structured observations and validated legal actions.6MIT