Skip to main content
Glama
pefman
by pefman

MCP Grand Prix

Ein MVP eines LLM-gesteuerten 3D-Rennspiels. LLM-Agenten steuern Formula-1-Rennwagen über eine gemeinsame Rennstrecke durch eine hybride Rennschleife – strategische Planung, Physiksimulation und kurze reaktive Entscheidungsfenster –, während ein Browser-Zuschauerclient das Rennen live verfolgt.

Das Projekt ist ein MCP-Server, der LLM-Agenten Werkzeuge für Spielzustand und Strategie bereitstellt, dazu ein Three.js-Zuschauer-Dashboard und eine kleine Flotte skriptgesteuerter/LLM-Agenten.

Architektur

┌────────────┐   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 – der server-autoritative Spielkern. Er verwaltet den gesamten Spielzustand und stellt deterministische, idempotente Tool-Methoden bereit (startRace, submitPhaseStrategy, reactToEvent, step). Dieselben Methoden werden echten LLMs über MCP und prozessinternen Skriptagenten bereitgestellt, sodass das Verhalten unabhängig davon identisch ist, wer sie aufruft.

  • src/mcp/server.ts – der MCP-Server (JSON-RPC/SSE), der die Tools der Engine den Agenten bereitstellt.

  • src/game/raceRunner.ts – treibt die hybride Rennschleife (Strategie → Simulation → reaktive Fenster) Tick für Tick voran.

  • src/server/ – der HTTP- und WebSocket-Server sowie der Zuschauer-Feed.

  • www/ – der Browser-Zuschauerclient (Three.js).

Related MCP server: fastf1-mcp

Rennschleife

  1. Strategiephase – Jede Runde übermitteln alle Agenten ein StrategyPacket (Reifenmischung, Fahrmodus, Kraftstoffsparen, optionale Boxenstopp-Runde).

  2. Simulationsphase – Die Engine rechnet die Physik in jedem Tick neu.

  3. Reaktive Fenster – Trigger-Ereignisse (enge Duelle, Safety-Cars, Wetter, Reifenverschleiß) öffnen kurze Fenster innerhalb der Runde, in denen die betroffenen Agenten mit Aktionen wie (push / save / pit_now / attack / defend) reagieren.

Schnellstart

npm install
npm run build   # prebuild copies three.js into www/lib
npm start       # serves the spectator app + MCP server

Öffne das Zuschauer-Dashboard unter http://localhost:3000 und starte ein Rennen:

curl -X POST http://localhost:3000/race

Der Browser verbindet sich zum selben Host/Port über WebSocket (/ws) für Live-Updates.

Ein skriptgesteuertes Rennen über die CLI ausführen

npm run agents        # launches 4 scripted agents in a full race (demo)

Konfiguration (Umgebungsvarianten)

Variable

Standard

Zweck

PORT

3000

HTTP- und Zuschauer-WebSocket-Port

MCP_PORT

9090

MCP-JSON-RPC/SSE-Port

SPECTATOR_PORT

Fallback für den HTTP-Port (falls PORT nicht gesetzt ist)

PORT wird verwendet, um die Kompatibilität mit Serverless-Plattformen zu gewährleisten (Vercel setzt z. B. PORT).

Skripte

Skript-Kompilierung

Beschreibung

npm run build

TypeScript kompilieren (srcdist)

npm run dev

Server mit tsx ausführen (ohne Build-Schritt)

npm start

Den gebauten Server ausführen

npm run agents

Ein skriptgesteuertes Demo-Rennen starten

npm test

Unit-Tests ausführen (Vitest)

npm run test:e2e

Die Playwright-End-to-End-Tests ausführen

npm run lint

Typprüfung mit tsc --noEmit

Testen

  • Unit-Tests (npm test) decken den öffentlichen Vertrag der Renn-Engine ab – Lebenszyklus, Strategieabgabe, reaktive Antworten und kompletten Rennabschluss – geprüft gegen den echten Engine-Kern.

  • End-to-End-Tests (npm run test:e2e) starten den Server, initialisieren ein Rennen und prüfen, dass auf der Clientseite Fahrzeuge und eine Live-Rangliste gerendert werden, dass das Rennen fortschreitet und mit einem Sieger endet, und dass die reaktive Benutzeroberfläche in den Fenstern erscheint.

MCP-Tools

Der Server gibt vier MCP-Tools frei (siehe src/mcp/server.ts):

Tool

Beschreibung

get_race_state

Vollständiger aktueller Rennzustand: Autos, Positionen, Lücken, Reifen, Treibstoff, Runden, Ereignisse.

submit_phase_strategy

Strategie eines Autos für das aktuelle Strategiefenster ausgeben (idempotent).

react_to_event

Auf ein offenes reaktives Fenster für ein Auto reagieren (idempotent).

get_race_log

Debug-Log des Servers mit strategischen Entscheidungen und reaktiven Aktionen.

Echte LLM-Agenten verbinden sich als MCP-Clients (SSE), um diese Tools aufzurufen; skriptgesteuerte Agenten rufen die Engine-Methoden direkt in-process auf. startRace und step sind genau die internen Step-Methoden des Renn-Runners und werden nicht als MCP-Tools exponiert.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    C
    quality
    D
    maintenance
    Enables AI assistants to access real-time iRacing telemetry, race information, camera control, pit operations, and replay features through the MCP protocol.
    17
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A 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.
    17
    1
    MIT

View all related MCP servers

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

View all MCP Connectors

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/pefman/mcpGrandPrix'

If you have feedback or need assistance with the MCP directory API, please join our Discord server