MCP Grand Prix
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Grand PrixCheck the race state and suggest a strategy for my car this lap."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Grand Prix
An MVP of an LLM-driven 3D racing game. LLM agents steer Formula 1 cars over a shared circuit through a hybrid race loop — strategic planning, physics simulation, and short reactive decision windows — while a browser spectator client watches the race live.
The project is an MCP server exposing game-state and strategy tools to LLM agents, plus a Three.js spectator dashboard and a small fleet of scripted/LLM agents.
Architecture
┌────────────┐ 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— the server-authoritative game core. Owns all game state and exposes deterministic, idempotent tool methods (startRace,submitPhaseStrategy,reactToEvent,step). The same methods are served to real LLMs over MCP and to in-process scripted agents, so behaviour is identical regardless of who is calling.src/mcp/server.ts— the MCP (JSON-RPC/SSE) server exposing the engine's tools to agents.src/game/raceRunner.ts— drives the hybrid race loop (strategy → simulation → reactive windows) tick by tick.src/server/— the HTTP + WebSocket server and spectator feed.www/— the browser spectator client (Three.js).
Related MCP server: fastf1-mcp
Race loop
Strategy Phase — every lap, all agents submit a
StrategyPacket(tire compound, drive mode, fuel save, optional pit lap).Simulation Phase — the engine advances physics each tick.
Reactive Windows — trigger events (close battles, safety cars, weather, tire wear) open short mid-lap windows where involved agents respond (
push/save/pit_now/attack/defend).
Quick start
npm install
npm run build # prebuild copies three.js into www/lib
npm start # serves the spectator app + MCP serverOpen the spectator dashboard at http://localhost:3000 and start a race:
curl -X POST http://localhost:3000/raceThe browser connects to the same host/port over WebSocket (/ws) for live
updates.
Run a scripted race from the CLI
npm run agents # launches 4 scripted agents in a full race (demo)Configuration (environment variables)
Variable | Default | Purpose |
|
| HTTP + spectator WebSocket port |
|
| MCP JSON-RPC/SSE port |
| — | Fallback for the HTTP port (if |
PORTis used so the app is compatible with serverless platforms (e.g. Vercel setsPORT).
Scripts
Script | Description |
| Compile TypeScript ( |
| Run the server with |
| Run the built server |
| Launch a scripted demo race |
| Run unit tests (Vitest) |
| Run the Playwright end-to-end suite |
| Type-check with |
Testing
Unit tests (
npm test) cover the race engine's public contract — lifecycle, strategy submission, reactive responses, and full-race completion — against the real engine core.End-to-end (
npm run test:e2e) boots the server, starts a race, and asserts the browser renders cars and a live leaderboard, that the race progresses and finishes with a winner, and that reactive-window UI appears.
MCP tools
The server exposes four MCP tools (see src/mcp/server.ts):
Tool | Description |
| Full current race state: cars, positions, gaps, tires, fuel, laps, events. |
| Submit a car's strategy for the current strategy window (idempotent). |
| Respond to an open reactive window for a car (idempotent). |
| The server's debug log of strategy decisions and reactive actions. |
Real LLM agents connect as MCP clients (SSE) to call these tools; scripted agents
call the engine's methods in-process. startRace and the per-tick step are
internal to the race runner rather than exposed as MCP tools.
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