fastf1-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| season_calendarA | Get the full F1 race calendar for a season. Use this when the user asks about the schedule, which races happened, or wants to know race names to load a session. Args: year: Season year (e.g. 2024, 2025, 2026) |
| load_sessionA | Load an F1 session for analysis. Must be called before other tools. Use this when the user mentions a specific race, GP, or session they want to analyze. Race and session names are fuzzy-matched:
Args: year: Season year (e.g. 2024) race: Grand Prix name — fuzzy matched (e.g. "Bahrain", "Monza", "silverstone") session: Session type — fuzzy matched (default "race"). Options: race, qualifying, sprint, FP1, FP2, FP3 |
| session_statusA | Check if a session is currently loaded and get its details. Use this when you need to confirm what session is active before answering a question. |
| list_driversA | List all drivers in the current session with codes, names, and teams. Use this when the user asks who was in the session, or when you need to find a driver's 3-letter code. |
| identify_driverA | Resolve a driver name, nickname, or number to their full identity. Use this when the user refers to a driver ambiguously and you need to confirm who they mean. Handles nicknames ("Checo"), first names ("Charles"), car numbers ("44"), and partial matches ("lec"). Args: name: Any driver reference — name, nickname, abbreviation, or car number |
| race_resultA | Get the full race classification — who finished where. Use this when the user asks about race results, who won, podium positions, DNFs, points scored, or finishing order. |
| qualifying_resultA | Get qualifying results with Q1/Q2/Q3 times. Use this when the user asks about qualifying positions, Q1/Q2/Q3 times, pole position, or qualifying performance. |
| lap_timesA | Get lap-by-lap timing data for a specific driver. Use this when the user asks about a driver's pace, consistency, lap time progression, or when they were fast/slow. Includes tyre compound and stint info per lap. Driver names are fuzzy-matched: "Leclerc", "charles", "LEC" all work. Args: driver: Driver name, code, or number (e.g. "Leclerc", "LEC", "16") |
| fastest_lapsA | Get the fastest lap set by each driver, ranked. Use this when the user asks about fastest laps, who set the quickest time, or lap time comparisons across the field. Args: top_n: Number of drivers to include (default 10) |
| pit_stopsA | Get pit stop details — when each driver pitted and on which tyre. Use this when the user asks about pit strategy, when someone pitted, how many stops a driver made, or undercut/overcut timing. Args: driver: Driver name/code, or "all" for every driver (default: all) |
| tire_stintsA | Get tyre stint breakdown — compound, start/end lap, stint length. Use this when the user asks about tyre strategy, which compounds were used, how long stints were, or compound choices. Args: driver: Driver name/code, or "all" for top 10 drivers (default: all) |
| driver_telemetryA | Get summarized telemetry stats for a driver's lap. Returns top speed, average speed, throttle application percentage, braking intensity, and other derived metrics. Defaults to the driver's fastest lap if no lap number is specified. Use this when the user asks about speed, braking, throttle traces, or driving style analysis. Args: driver: Driver name, code, or number (e.g. "Verstappen", "VER", "1") lap_number: Specific lap number, or -1 for the driver's fastest lap (default: -1) |
| head_to_headA | Compare two drivers across all key metrics. Use this when the user asks to compare drivers, wants a head-to-head analysis, or asks who was better between two specific drivers. Args: driver_a: First driver — name, code, or number driver_b: Second driver — name, code, or number |
| weatherA | Get weather conditions during the session. Use this when the user asks about weather, track temperature, rain, or conditions that may have affected the race. |
| session_summaryA | Get a quick overview of the loaded session with key facts. Use this as a starting point when the user asks a general question about the session, or when you need context before answering. Includes: winner, DNFs, pit stops, fastest lap, weather. |
| track_evolutionA | Get how track conditions changed during the session. Use this when the user asks about track rubbering in, grip changes, whether the track got faster, or temperature effects on pace. |
| overtake_analysisA | Get position changes and pace comparisons between consecutive drivers. Use this when the user asks about overtakes, who was faster than the car ahead, position gains/losses, or race dynamics. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Each tool has a clearly defined and distinct purpose with detailed descriptions that prevent overlap. For example, driver_telemetry focuses on summary lap statistics while lap_times provides lap-by-lap timing, and pit_stops vs tire_stints differentiate between timing and compound details.
All tool names use lowercase snake_case consistently and follow a descriptive pattern, either noun_phrase (e.g., fastest_laps, pit_stops) or verb_noun (e.g., list_drivers, load_session). No mixed conventions or vague verbs are present.
With 17 tools, the server covers the F1 analysis domain thoroughly but slightly exceeds the typical well-scoped range of 3-15. However, each tool serves a distinct purpose, so the count feels justified rather than excessive.
The tool set covers all major aspects of F1 session analysis: session loading, race and qualifying results, driver telemetry and laps, pit stops, tire stints, overtakes, track evolution, weather, head-to-head comparisons, and season calendars. No obvious gaps or dead ends exist for common queries.