魂斗罗 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":{}}'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.
This server cannot be installed
Maintenance
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
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.
Connect AI agents to Flato's editable canvas runtime through a hosted MCP server.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
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.1-

antics-mcpofficial
AlicenseAqualityBmaintenanceEnables AI agents to deploy multiplayer web games as playable URLs with rooms, live state sync, and leaderboards, all through a single tool call.41455-- FlicenseNot gradedqualityCmaintenanceMCP server that builds single-file browser games teaching one concept through play. Provides tools to generate game prompts, save and list games, and self-verify before shipping.-
- AlicenseNot gradedqualityBmaintenanceMCP 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.131MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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