MCP Grand Prix
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: startline
Rennschleife
Strategiephase – Jede Runde übermitteln alle Agenten ein
StrategyPacket(Reifenmischung, Fahrmodus, Kraftstoffsparen, optionale Boxenstopp-Runde).Simulationsphase – Die Engine rechnet die Physik in jedem Tick neu.
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/raceDer 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 |
|
| HTTP- und Zuschauer-WebSocket-Port |
|
| MCP-JSON-RPC/SSE-Port |
| – | Fallback für den HTTP-Port (falls |
PORTwird verwendet, um die Kompatibilität mit Serverless-Plattformen zu gewährleisten (Vercel setzt z. B.PORT).
Skripte
Skript-Kompilierung | Beschreibung |
| TypeScript kompilieren ( |
| Server mit |
| Den gebauten Server ausführen |
| Ein skriptgesteuertes Demo-Rennen starten |
| Unit-Tests ausführen (Vitest) |
| Die Playwright-End-to-End-Tests ausführen |
| Typprüfung mit |
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 |
| Vollständiger aktueller Rennzustand: Autos, Positionen, Lücken, Reifen, Treibstoff, Runden, Ereignisse. |
| Strategie eines Autos für das aktuelle Strategiefenster ausgeben (idempotent). |
| Auf ein offenes reaktives Fenster für ein Auto reagieren (idempotent). |
| 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.
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-