F1 MCP Server

Kevin29Johnson/f1-mcp-server
0 starsCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

A real-time Formula 1 analytics server that lets you ask natural language questions about races, lap times, tyre strategies, pit stops, and more using live data from the OpenF1 API.

README.md

๐ŸŽ๏ธ F1 MCP Server

A real-time Formula 1 analytics server built with the Model Context Protocol (MCP). Ask Claude natural language questions about F1 races, lap times, tyre strategies, pit stops, and more โ€” powered by live data from the OpenF1 API.

"What tyre strategy did the top 3 drivers use in the 2026 Monaco Race?" "Who set the fastest lap at the 2026 Australian GP?" "Was there a safety car at the 2024 British GP?"

---

๐Ÿ—๏ธ Architecture

!Architecture Diagram

---

โš™๏ธ How It Works

Claude Desktop acts as the MCP client. On startup, it boots the F1 MCP server as a local subprocess and communicates via stdio (standard input/output). When you ask a natural language question, Claude reads the tool definitions and docstrings, decides which tools to call (and in what order), fires the OpenF1 API requests, and synthesizes the response โ€” all automatically.

No API key required. No authentication. Just live F1 data.

---

๐Ÿ› ๏ธ Tools

| Tool | Description | |------|-------------| | get_sessions | Find all sessions for a year/country (Race, Qualifying, Practice, Sprint) | | get_drivers | List all drivers in a session with number, name, and team | | get_driver_laps | All lap times and sector times for a specific driver | | get_fastest_lap | Fastest lap across all drivers in a session | | get_pit_stops | Pit stop laps and durations for a session | | get_tyre_stints | Full tyre strategy โ€” compound, stint number, lap range | | get_race_positions | Final finishing positions for all drivers | | get_weather | Track temp, air temp, humidity, wind, and rainfall | | get_race_control | Safety cars, flags, penalties, and incidents |

---

๐Ÿ’ฌ Example Queries

What sessions are available for the 2026 season?
Who set the fastest lap in the 2026 Australian GP?
What tyre strategy did the top 3 use in the 2026 Monaco Race?
Did it rain during the 2024 British GP qualifying?
Were there any safety cars in the 2024 Monaco Race?
What were Hamilton's lap times in the 2026 Monaco Race?
How long were Verstappen's pit stops in the 2024 Abu Dhabi GP?

---

๐Ÿ“ธ Screenshots

Sessions Query

!Sessions

Fastest Lap โ€” Auto Tool Chaining

!Fastest Lap

Tyre Strategy โ€” Multi-Tool Chain

!Tyre Strategy

---

๐Ÿš€ Setup

Prerequisites

Installation

# Clone the repo
git clone https://github.com/kevinjohnson/F1-MCP-Server.git
cd F1-MCP-Server

# Install dependencies
uv add "mcp[cli]" requests

# Register with Claude Desktop
uv run mcp install main.py

Then fully quit and reopen Claude Desktop. The F1 Assistant will appear under Connectors.

Common Issue

If the server shows as "Server not found", make sure main.py ends with: ``python if __name__ == "__main__": mcp.run() # No transport argument โ€” stdio only ``

---

๐Ÿ“ก Data Source

All data comes from OpenF1 โ€” a free, open-source API providing real-time and historical F1 telemetry from 2023 onwards.

  • No API key required for historical data
  • Rate limit: 3 req/s, 30 req/min (free tier)
  • Data available from 2023 season onwards

---

๐Ÿง  Why MCP?

Claude can't access live data or external APIs on its own. MCP (Model Context Protocol) bridges that gap โ€” it lets you define tools as Python functions that Claude can call autonomously. The key insight: Claude reads your docstrings to decide when and how to use each tool, enabling it to chain multiple API calls together without any explicit instructions.

In this project, a single question like "What tyre strategy did the top 3 use?" triggers Claude to automatically: find the session key โ†’ get race positions โ†’ resolve driver numbers โ†’ fetch tyre stints for each driver โ€” all from one natural language prompt.

---

๐Ÿ“ Project Structure

F1-MCP-Server/
โ”œโ”€โ”€ main.py          # MCP server with all 9 tools
โ”œโ”€โ”€ pyproject.toml   # uv project config
โ”œโ”€โ”€ images/          # Screenshots and architecture diagram
โ””โ”€โ”€ README.md

---

๐Ÿ”ญ Potential Extensions

  • Add get_car_telemetry โ€” throttle, brake, DRS, gear data per lap
  • Add get_overtakes โ€” position change events during a race
  • Add get_championship_standings โ€” driver and constructor standings
  • Cache session keys locally to reduce API calls
  • Add a compare_drivers tool for head-to-head lap time analysis

---

Built by Kevin Johnson ยท Powered by OpenF1 ยท Built with MCP

Related MCP servers

Browse all โ†’