MCP Grand Prix
MCP Grand Prix
Это MVP гоночной 3D-игры на основе LLM. LLM-агенты управляют автомобилями Формулы-1 на общей трассе через гибридный гоночный цикл — стратегическое планирование, симуляцию физики и короткие реактивные окна принятия решений — пока браузерный клиент для зрителей следит за гонкой в прямом эфире.
Проект представляет собой MCP-сервер, который открывает LLM-агентам инструменты состояния игры и стратегии, а также включает Three.js-панель зрителя и небольшой набор скриптовых/LLM-агентов.
Архитектура
┌────────────┐ MCP (SSE) ┌───────────────┐ tool calls ┌──────────────┐
│ LLM agents│ ────────────▶ │ src/mcp │ ◀───────────── │ RaceEngine │
│ (LLM or │ │ server.ts │ JSON-RPC │ (authoritative)
│ scripted) │ └───────────────┘ └──────┬───────┘
│ │ │ push
│ │ ┌───────────────┐ │ snapshot
│ │ │ src/server │◀─────────────┘
│ │ HTTP + WS (/ws) │ index.ts │
└────────────┘ ◀────────────────── │ spectator │
Browser spectator └───────────────┘
(Three.js, www/client.js)src/game/raceEngine.ts— серверное игровое ядро. Владеет всем состоянием игры и предоставляет детерминированные идемпотентные методы-инструменты (startRace,submitPhaseStrategy,reactToEvent,step). Эти же методы передаются реальным LLM через MCP и скриптовым агентам в рамках процесса, поэтому поведение идентично независимо от того, кто их вызывает.src/mcp/server.ts— MCP-сервер (JSON-RPC/SSE), который открывает инструменты движка для агентов.src/game/raceRunner.ts— управляет гибридным гоночным циклом (стратегия → симуляция → реактивные окна) шаг за шагом.src/server/— HTTP + WebSocket сервер и канал для зрителей.www/— браузерный клиент для зрителей (Three.js).
Related MCP server: startline
Гоночный цикл
Фаза стратегии — каждый круг все агенты отправляют
StrategyPacket(состав шин, режим вождения, экономия топлива, необязательный круг пит-стопа).Фаза симуляции — движок продвигает физику на каждом тике.
Реактивные окна — триггерные события (плотное противоборство, автомобиль безопасности, погода, износ шин) открывают короткие окна посреди круга, в которых затронутые агенты отвечают (
push/save/pit_now/attack/defend).
Быстрый старт
npm install
npm run build # prebuild copies three.js into www/lib
npm start # serves the spectator app + MCP serverОткройте панель зрителя по адресу http://localhost:3000 и запустите гонку:
curl -X POST http://localhost:3000/raceБраузер подключается к тому же хосту/порту по WebSocket (/ws) для получения живых обновлений.
Запуск гонки со скриптовыми агентами из командной строки
npm run agents # launches 4 scripted agents in a full race (demo)Конфигурация (переменные окружения)
Переменная | По умолчанию | Назначение |
|
| HTTP + порт WebSocket для зрителей |
|
| Порт MCP JSON-RPC/SSE |
| — | Запасной вариант для HTTP-порта (если |
PORTиспользуется, чтобы приложение было совместимо с serverless-платформами (например, Vercel задаётPORT).
Скрипты
Скрипт | Описание |
| Компиляция TypeScript ( |
| Запуск сервера через |
| Запуск собранного сервера |
| Запуск демо-гонки со скриптовыми агентами |
| Запуск юнит-тестов (Vitest) |
| Запуск сквозных тестов Playwright |
| Проверка типов с помощью |
Тестирование
Юнит-тесты (
npm test) покрывают публичный контракт гоночного движка — жизненный цикл, отправку стратегии, реактивные ответы и полное завершение гонки — на реальном ядре движка.Сквозные тесты (
npm run test:e2e) поднимают сервер, запускают гонку и проверяют, что браузер отображает автомобили и живую таблицу лидеров, что гонка продвигается и завершается победителем, и что появляется интерфейс реактивного окна.
MCP-инструменты
Сервер предоставляет четыре MCP-инструмента (см. src/mcp/server.ts):
Инструмент | Описание |
| Полное текущее состояние гонки: автомобили, позиции, разрывы, шины, топливо, круги, события. |
| Отправка стратегии автомобиля для текущего окна стратегии (идемпотентно). |
| Ответ на открытое реактивное окно для автомобиля (идемпотентно). |
| Отладочный журнал сервера со стратегическими решениями и реактивными действиями. |
Реальные LLM-агенты подключаются как MCP-клиенты (SSE) для вызова этих инструментов; скриптовые агенты вызывают методы движка в процессе. startRace и пофазовый step являются внутренними для гоночного раннера и не предоставляются как MCP-инструменты.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server exposing the Backtest360 engine API as tools for AI agents.
- FensoryOAuthcom.fensory
Trading MCP server for AI agents, with live market data, account reads and controlled execution.
- bluffnetOAuthgg.bluffnet
Live Texas Hold'em for AI agents. The tools teach the rules; the bluffing is up to your model.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables LLMs and AI agents to interact with AFSIM through standardized MCP tools for scenario management, entity/component control, simulation execution, and results analysis.3726MIT
- FlicenseAqualityDmaintenanceMCP server for motorsport event documents, enabling AI agents to search, read, compare amendments, and parse schedules via typed tools.9-
- AlicenseBqualityBmaintenanceMCP server that provides F1 telemetry analysis, tyre degradation modeling, and pit strategy recommendations, delivering race engineer-style calls grounded in real data. It exposes tools for degradation fits, fuel correction, and strategy reasoning via LangGraph.4MIT
- FlicenseAqualityBmaintenanceEnables LLM-powered race engineers to compute Formula 1 pit-stop strategies from real session data, including tire degradation modeling, optimal pit windows, undercut/overcut simulation, and finish-position projection.9-