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: fastf1-mcp
Гоночный цикл
Фаза стратегии — каждый круг все агенты отправляют
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 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 Servers
- AlicenseCqualityDmaintenanceEnables AI assistants to access real-time iRacing telemetry, race information, camera control, pit operations, and replay features through the MCP protocol.171MIT
- AlicenseAqualityCmaintenanceA local MCP server that gives Claude (or any MCP-compatible AI client) access to Formula 1 race data. Load any session from 2018 onwards, ask questions in natural language, and get answers backed by real telemetry, timing, and strategy data.171MIT
- AlicenseAqualityDmaintenanceEnables LLMs and AI agents to interact with AFSIM through standardized MCP tools for scenario management, entity/component control, simulation execution, and results analysis.3721MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to investigate and manipulate live network simulations via MCP, including protocol debugging and fault injection.
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
Build, validate, and deploy multi-agent AI solutions from any AI environment.
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents
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/pefman/mcpGrandPrix'
If you have feedback or need assistance with the MCP directory API, please join our Discord server