Pitwall F1
Click on "Deploy 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., "@Pitwall F1Plot Verstappen vs Norris qualifying speed trace at Abu Dhabi 2024"
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.
Pitwall F1
Turn Claude into your F1 race engineer. Real telemetry, real strategy data, 75 years of history.
Pitwall F1 is a Claude plugin that bundles an MCP server with 77 read-only tools and an f1 skill. The skill teaches Claude which tool to use and how to explain Formula 1 to someone watching their first race.

Unofficial project. Pitwall F1 is not affiliated with, endorsed by, or connected to Formula 1, the FIA, Formula One Management, or any F1 team. F1, FORMULA 1 and related marks are trademarks of Formula One Licensing B.V.
What you can ask
"Who won the 2025 Australian GP?"
"What was Verstappen's speed on lap 25 at Monaco?"
"Plot Hamilton vs Norris speed trace in qualifying"
"Compare Ferrari's tyre strategy at Silverstone"
"Who won the 1994 championship?"
"Who's leading right now, and what's the gap?" (during a live session)
Related MCP server: mcp-f1analisys
What's inside
Results and classification: race, sprint and qualifying results, grid vs finish, DNFs, penalties
Timing and telemetry: lap times, sector times, speed traps, and 4 Hz telemetry (speed, RPM, throttle, brake, gear)
Strategy: tyre stints, compounds, pit stops, long-run pace, undercut analysis
Plots: speed traces, gear shift maps and multi-lap comparisons, returned as PNG images drawn locally with matplotlib
History: race results and championships back to 1950
Live timing: 16 tools for positions, gaps, tyres, flags and weather while a session is running
Every tool is read-only and carries a readOnlyHint annotation. None of them need an account, a login or an API key.
Install
Requires uv.
/plugin marketplace add darshjoshi/pitwall-f1
/plugin install pitwall-f1@pitwall-f1Or install it from the Claude directory once it's listed.
What the plugin runs
The plugin starts one local MCP server over stdio:
uv run --locked --project ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/pitwall.pyOn first start, uv installs the exact dependency versions recorded in uv.lock (FastF1, pandas, numpy, matplotlib, the MCP SDK and a few HTTP libraries) from PyPI into a virtual environment inside the plugin folder. It takes about 35 seconds and roughly 250 MB, plus uv's download cache. Later starts take under a second.
All server code is in this repository as readable Python: pitwall.py (the tools), signalr_client.py, merger.py, decompressor.py and topics.py (the live-timing client).
Network access
Pitwall F1 only makes outbound requests to fetch public F1 data. It sends each service only the parameters of the request (season, event, session), never your conversation, files or any personal data.
Host | Why |
| Session timing archive (2018 onward) and the public live-timing feed |
| Historical results and standings from 1950 (the Ergast-compatible Jolpica API) |
| FastF1's mirror of the timing archive, used as a fallback |
| Season schedule, as fetched by FastF1 |
| Circuit corner and layout data, as fetched by FastF1 |
| Dependency install by |
| Only if no Python 3.10+ is installed: |
The plugin doesn't use F1 TV or any login. Live car telemetry and GPS positions need an F1 TV subscription upstream, so this edition doesn't offer them.
Privacy Policy
Data collection. Pitwall F1 collects no personal data. It has no accounts, analytics, telemetry or crash reporting, and it doesn't read Claude's memory, chat history or your files.
Usage and storage. Tool inputs (such as a year, race name or driver code) are used only to build requests to the hosts listed under Network access. Downloaded F1 data is cached on your machine at ~/.cache/pitwall-f1 (override it with PITWALL_CACHE_DIR) so repeat questions are fast. Nothing is stored anywhere else.
Third-party sharing. Nothing is shared with the author or any other party. The public data services listed above receive the request parameters needed to return F1 data, under their own privacy policies.
Data retention. The local cache stays until you delete it. Removing the folder is always safe. Nothing is retained off your machine.
Contact. Questions or concerns: contact@darshjoshi.com, or open an issue at https://github.com/darshjoshi/pitwall-f1/issues.
Known limits
Detailed timing and telemetry cover 2018 onward. Results before 2018 come from Jolpica and have no lap data.
Full data for a session is published about 30 minutes after it ends.
Live tools only return data while a session is running. Otherwise they say so.
The first start downloads about 250 MB of dependencies and takes about 35 seconds.
Support
Open an issue at https://github.com/darshjoshi/pitwall-f1/issues or email contact@darshjoshi.com.
License
MIT. See LICENSE.
Available Tools
77 toolsanalyze_brake_pointsAnalyze Braking PointsCRead-onlyIdempotent
Analyze braking patterns on fastest lap.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
analyze_drs_usageAnalyze DRS UsageBRead-onlyIdempotent
Analyze DRS usage on a driver's fastest lap.
DRS-open is detected via the FastF1 car-data codes 10/12/14 (8 = eligible but not yet open; 0/1 = closed). From 2026, F1 replaced DRS with active aero, so no activations are reported.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
analyze_lap_consistencyAnalyze Lap ConsistencyCRead-onlyIdempotent
Analyze lap time consistency (standard deviation, variation).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
analyze_long_run_paceAnalyze Long-Run PaceCRead-onlyIdempotent
Analyze race simulation pace from practice sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes | ||
| session | No | FP2 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
analyze_rpm_dataAnalyze RPM DataCRead-onlyIdempotent
Analyze engine RPM patterns on fastest lap.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
analyze_starting_tiresStarting TyresCRead-onlyIdempotent
Analyze which tire compounds were used at race start.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
compare_grid_to_finishGrid vs FinishCRead-onlyIdempotent
Compare starting grid positions to finishing positions.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
compare_sector_timesCompare Sector TimesCRead-onlyIdempotent
Compare sector times between two drivers.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver1 | Yes | ||
| driver2 | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
compare_strategiesCompare StrategiesCRead-onlyIdempotent
Compare tire strategies between two drivers.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver1 | Yes | ||
| driver2 | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
compare_tire_age_performanceTyre Age vs PaceCRead-onlyIdempotent
Compare lap times on fresh vs used tires.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
compare_tire_compoundsCompare Tyre CompoundsBRead-onlyIdempotent
Compare average lap times across different tire compounds.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
detect_overtakesDetect OvertakesBRead-onlyIdempotent
Detect when a driver overtook others (position gained between laps).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_championship_standingsChampionship Standings (1950+)ARead-onlyIdempotent
Get championship standings from 1950 to present.
Args: year: Season year (0 = current) standings_type: 'driver' or 'constructor'
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| standings_type | No | driver |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_circuit_infoCircuit InfoCRead-onlyIdempotent
Get track layout info (Corners, DRS Zones).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_constructor_standingsConstructor StandingsCRead-onlyIdempotent
Get constructor/team championship standings.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| round_number | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_deleted_lapsDeleted LapsCRead-onlyIdempotent
Get all laps deleted due to track limits or other violations.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_dnf_listDNF ListCRead-onlyIdempotent
Get list of drivers who did not finish the race and reasons.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_driver_comparisonCompare Two DriversARead-onlyIdempotent
Compare two drivers head-to-head — position, pace, strategy, pit stops.
Args: driver_a: First driver TLA (e.g. 'VER') driver_b: Second driver TLA (e.g. 'HAM') year: Season year race: Race name (partial match) session_type: Session type
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| driver_a | Yes | ||
| driver_b | Yes | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_driver_infoDriver InfoCRead-onlyIdempotent
Get detailed driver information (number, team, headshot, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_driver_standingsDriver StandingsBRead-onlyIdempotent
Get driver championship standings after a specific round or latest.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| round_number | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_driver_tyre_detailDriver Tyre DetailCRead-onlyIdempotent
Get detailed tyre stint data for a specific driver via FastF1 — compound, laps, and degradation.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_fastest_lap_dataFastest Lap DataCRead-onlyIdempotent
Get detailed stats for a driver's fastest lap (Sector times, Speed trap).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_fastest_pit_stopsFastest Pit StopsARead-onlyIdempotent
Get the fastest pit stops of the race, ranked by stationary time.
Stationary time = how long the car is stopped in the box (the ~2s 'pit stop' fans mean). Pit-lane time (in->out, ~20-30s) is shown alongside for context. Sourced from F1's PitStopSeries so it matches get_pit_stops / get_pit_stop_detail.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| top_n | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_fastest_sectorsFastest SectorsCRead-onlyIdempotent
Find who set the fastest time in each sector.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_gap_to_leaderGap to LeaderCRead-onlyIdempotent
Track gap to race leader throughout the race.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_historical_resultsHistorical Results (1950+)BRead-onlyIdempotent
Get historical F1 race results from 1950 to present.
Args: year: Specific year (0 = current season) race: Circuit name (e.g. 'monza', 'monaco') driver: Driver ID (e.g. 'verstappen', 'hamilton')
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| driver | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_lap_timesLap TimesBRead-onlyIdempotent
Get lap-by-lap times for one or all drivers. Filterable by lap range.
Args: year: Season year race: Race name (partial match) driver: Driver TLA (e.g. 'VER') or empty for all session_type: Session type lap_start: First lap to include lap_end: Last lap to include
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| driver | No | ||
| lap_end | No | ||
| lap_start | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_lap_times_fastf1Lap Times (FastF1)CRead-onlyIdempotent
Get all lap times for a driver via FastF1 — includes compound and tyre life per lap.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_best_sectorsLive Best SectorsARead-onlyIdempotent
Live personal-best sector times and overall best lap per driver, ranked by lap position. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_lap_timesLive Lap TimesARead-onlyIdempotent
Live last + best lap time per driver. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_mini_sectorsLive Mini-SectorsARead-onlyIdempotent
Live mini-sector status per driver: g=green/personal-best, p=purple/overall-best, y=yellow, .=no data. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_pit_activityLive Pit ActivityARead-onlyIdempotent
Live pit-stop count and real-time in-pit / out-lap flags per driver. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_positionsLive PositionsARead-onlyIdempotent
Live running order with gap-to-leader and interval. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_race_controlLive Race ControlARead-onlyIdempotent
Live race control: flags, penalties, track-limit deletions, SC/VSC. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_sector_timesLive Sector TimesARead-onlyIdempotent
Live sector times + speed trap for one driver (TLA or car number). No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| driver | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_session_clockLive Session ClockARead-onlyIdempotent
Live time remaining in the current session. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_session_statusLive Session StatusARead-onlyIdempotent
Live F1 session status: session name, flag/track status, lap count. No auth required. Honest 'no live session' message when nothing is running.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_speed_comparisonLive Speed ComparisonARead-onlyIdempotent
Live best speed at each measurement point (I1, I2, FL, ST) for every driver. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_speed_trapLive Speed TrapARead-onlyIdempotent
Live speed-trap (ST) ranking across the whole field. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_stint_historyLive Stint HistoryBRead-onlyIdempotent
Live full compound sequence and stint lengths for every driver in track-position order. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_time_gapsLive Time GapsARead-onlyIdempotent
Live gap to leader and interval to car ahead per driver, mode-aware (race gap vs quali/practice fastest). No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_track_status_historyLive Track Status HistoryARead-onlyIdempotent
Live chronological log of track-status and session-status changes. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_tyresLive TyresBRead-onlyIdempotent
Live tyre compound, age (laps), and stint number per driver. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_live_weatherLive WeatherARead-onlyIdempotent
Live track weather (air/track temp, humidity, wind, rain). No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_penaltiesPenaltiesCRead-onlyIdempotent
Get all penalties issued during the race.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_personal_best_lapsPersonal Best LapsCRead-onlyIdempotent
Get each driver's personal best lap time.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_pit_stop_detailPit Stop DetailBRead-onlyIdempotent
Get detailed pit stop data — stationary time, pit-lane time, and tyre compound swap per stop.
Stationary time (~2s) is the time the car is stopped in the box; pit-lane time (in->out, ~20-30s) is the full transit. Sourced from F1's PitStopSeries + TyreStintSeries so durations match get_pit_stops / get_fastest_pit_stops.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_pit_stopsPit StopsBRead-onlyIdempotent
Get all pit stops sorted by fastest stop time.
Args: year: Season year race: Race name (partial match) session_type: Session type
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_position_changesPosition ChangesCRead-onlyIdempotent
Track position changes throughout the race for a driver.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_qualifying_progressionQualifying ProgressionBRead-onlyIdempotent
Show who was eliminated in Q1, Q2 and who made it to Q3.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_race_controlRace Control MessagesBRead-onlyIdempotent
Get race control messages — flags, penalties, safety cars, investigations.
Args: year: Season year race: Race name (partial match) session_type: Session type category: Filter: 'Flag', 'SafetyCar', 'Drs', 'Other', or empty for all
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| category | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_race_control_messagesRace Control Log (FastF1)BRead-onlyIdempotent
Get all race control messages during a session.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_race_infoRace InfoBRead-onlyIdempotent
Get session details and list of available data feeds.
Args: year: Season year race: Race name (partial match — 'china', 'monaco', 'silverstone') session_type: 'Race', 'Qualifying', 'Sprint', 'Practice 1', etc.
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_race_resultsRace Results (FastF1)CRead-onlyIdempotent
Get the final classification (Position, Driver, Team, Points).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_race_winners_historyRace Winners HistoryBRead-onlyIdempotent
Get race winners for a specific GP over the last N years.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| years | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_scheduleSeason ScheduleBRead-onlyIdempotent
Get the full race calendar for a specific year (excluding testing).
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_session_infoSession InfoBRead-onlyIdempotent
Get start time and status of a specific session (R=Race, Q=Quali, FP1, etc).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_session_summarySession SummaryCRead-onlyIdempotent
Get a comprehensive quick summary of a session.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_speed_trap_comparisonSpeed Trap ComparisonCRead-onlyIdempotent
Compare speed trap data across all drivers.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_speed_trapsSpeed TrapsBRead-onlyIdempotent
Get speed trap readings at 4 measurement points (I1, I2, FL, ST) per driver.
Args: year: Season year race: Race name (partial match) session_type: Session type
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_sprint_resultsSprint ResultsBRead-onlyIdempotent
Get sprint race results (for sprint weekends).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_standingsSession ResultsBRead-onlyIdempotent
Get race classification — positions, gaps, best laps, pit stops, retirements.
Args: year: Season year (2018-2026) race: Race name (partial match — 'china', 'australia', 'monaco') session_type: 'Race', 'Qualifying', 'Sprint', etc.
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_stint_analysisStint AnalysisCRead-onlyIdempotent
Analyze each stint: compound, lap times, degradation.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_team_lapsTeam LapsBRead-onlyIdempotent
Get all laps for a specific team (both drivers).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| team | Yes | ||
| year | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_telemetryLap TelemetryARead-onlyIdempotent
Get car telemetry — speed, RPM, throttle, brake, gear, DRS for a specific lap.
Returns ~60-90 samples at ~4Hz. Set lap=0 to see available laps.
Args: driver: Driver TLA (e.g. 'VER', 'HAM') — required year: Season year (2018-2026) race: Race name (partial match) lap: Lap number (0 = show available laps) session_type: Session type
| Name | Required | Description | Default |
|---|---|---|---|
| lap | No | ||
| race | No | ||
| year | No | ||
| driver | Yes | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_track_recordCircuit Lap RecordBRead-onlyIdempotent
Get the all-time lap record for a specific circuit (via Ergast).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_track_statusTrack StatusBRead-onlyIdempotent
Get track status changes (yellow flags, safety car, red flag, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_tyre_strategyTyre StrategyBRead-onlyIdempotent
Get tyre strategy for every driver — compound, stint length, new/used tyres.
Args: year: Season year race: Race name (partial match) session_type: Session type
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_weatherSession WeatherBRead-onlyIdempotent
Get weather conditions during a session — temperature, rain, wind, humidity.
Args: year: Season year race: Race name (partial match) session_type: Session type
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | ||
| year | No | ||
| session_type | No | Race |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_weather_dataWeather TimelineBRead-onlyIdempotent
Get detailed weather conditions (Rain, Track Temp, Wind).
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
list_racesList Races & SessionsBRead-onlyIdempotent
List all races and sessions for a season with dates and session paths.
Args: year: Season year (2018-2026)
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
list_seasonsList SeasonsARead-onlyIdempotent
List all available F1 seasons (2018-present).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
plot_driver_telemetry_comparisonPlot Driver Telemetry ChannelsBRead-onlyIdempotent
Plot comprehensive telemetry comparison (speed, throttle, brake, gear) between two drivers for the same lap.
Args: year: Season year gp: Grand Prix name driver1: First driver identifier (3-letter code) driver2: Second driver identifier (3-letter code) lap_number: Lap number to compare session: Session type (R=Race, Q=Qualifying, FP1/FP2/FP3=Practice, S=Sprint)
Returns: ImageContent with 4 subplots showing speed, throttle, brake, and gear data for both drivers
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver1 | Yes | ||
| driver2 | Yes | ||
| session | No | R | |
| lap_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| type | Yes | |
| _meta | No | |
| mimeType | Yes | |
| annotations | No |
plot_gear_shiftsPlot Gear Shift MapCRead-onlyIdempotent
Generates a Gear Shift chart for a single driver.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| type | Yes | |
| _meta | No | |
| mimeType | Yes | |
| annotations | No |
plot_multi_telemetry_comparisonPlot Multi-Lap TelemetryBRead-onlyIdempotent
Compare full telemetry (speed, throttle, brake, gear) between two laps for same driver. Example: Compare first lap vs last lap for Piastri Brazil 2024
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| lap1 | Yes | ||
| lap2 | Yes | ||
| year | Yes | ||
| driver | Yes | ||
| session | No | R |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| type | Yes | |
| _meta | No | |
| mimeType | Yes | |
| annotations | No |
plot_telemetry_comparisonPlot Speed Trace ComparisonCRead-onlyIdempotent
Generates a Speed Trace comparison image between two drivers. Returns: An ImageContent object that can be displayed in the client.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| year | Yes | ||
| driver1 | Yes | ||
| driver2 | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| type | Yes | |
| _meta | No | |
| mimeType | Yes | |
| annotations | No |
team_head_to_headTeammate Head-to-HeadCRead-onlyIdempotent
Compare both drivers in a team head-to-head.
| Name | Required | Description | Default |
|---|---|---|---|
| gp | Yes | ||
| team | Yes | ||
| year | Yes | ||
| session | No | Q |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
77 tool updates
v1.0.0- First observed
analyze_brake_points - First observed
analyze_drs_usage - First observed
analyze_lap_consistency - First observed
analyze_long_run_pace - First observed
analyze_rpm_data - First observed
analyze_starting_tires - First observed
compare_grid_to_finish - First observed
compare_sector_times - First observed
compare_strategies - First observed
compare_tire_age_performance - First observed
compare_tire_compounds - First observed
detect_overtakes - First observed
get_championship_standings - First observed
get_circuit_info - First observed
get_constructor_standings - First observed
get_deleted_laps - First observed
get_dnf_list - First observed
get_driver_comparison - First observed
get_driver_info - First observed
get_driver_standings - First observed
get_driver_tyre_detail - First observed
get_fastest_lap_data - First observed
get_fastest_pit_stops - First observed
get_fastest_sectors - First observed
get_gap_to_leader - First observed
get_historical_results - First observed
get_lap_times - First observed
get_lap_times_fastf1 - First observed
get_live_best_sectors - First observed
get_live_lap_times - First observed
get_live_mini_sectors - First observed
get_live_pit_activity - First observed
get_live_positions - First observed
get_live_race_control - First observed
get_live_sector_times - First observed
get_live_session_clock - First observed
get_live_session_status - First observed
get_live_speed_comparison - First observed
get_live_speed_trap - First observed
get_live_stint_history - First observed
get_live_time_gaps - First observed
get_live_track_status_history - First observed
get_live_tyres - First observed
get_live_weather - First observed
get_penalties - First observed
get_personal_best_laps - First observed
get_pit_stop_detail - First observed
get_pit_stops - First observed
get_position_changes - First observed
get_qualifying_progression - First observed
get_race_control - First observed
get_race_control_messages - First observed
get_race_info - First observed
get_race_results - First observed
get_race_winners_history - First observed
get_schedule - First observed
get_session_info - First observed
get_session_summary - First observed
get_speed_trap_comparison - First observed
get_speed_traps - First observed
get_sprint_results - First observed
get_standings - First observed
get_stint_analysis - First observed
get_team_laps - First observed
get_telemetry - First observed
get_track_record - First observed
get_track_status - First observed
get_tyre_strategy - First observed
get_weather - First observed
get_weather_data - First observed
list_races - First observed
list_seasons - First observed
plot_driver_telemetry_comparison - First observed
plot_gear_shifts - First observed
plot_multi_telemetry_comparison - First observed
plot_telemetry_comparison - First observed
team_head_to_head
TDQS
Scored across 77 tools
Massive overlap across near-duplicate tools: get_standings/get_race_results/get_historical_results, get_weather/get_weather_data/get_live_weather, get_race_control/get_race_control_messages/get_track_status, and get_lap_times/get_lap_times_fastf1/get_live_lap_times are hard to tell apart. The live_ vs historical split helps somewhat, but dozens of pairs have blurred boundaries that will cause misselection.
Nearly all tools follow a predictable snake_case verb_noun pattern (get_*, list_*, analyze_*, compare_*, plot_*). Minor deviations like team_head_to_head break the pattern, but the overall convention is strong and readable.
77 tools is far beyond reasonable scope and is an extreme mismatch, especially given how many are redundant variants of the same operation. The surface should be consolidated to a fraction of this size.
The F1 domain is covered broadly: sessions, results, standings, telemetry, tyre strategy, pit stops, weather, live feeds, and historical data. Gaps are minor; the problem is duplication rather than missing capability.
Maintenance
Related MCP Connectors
Anonymous read-only Formula 1 tools, resources, prompts, completion, and interactive dashboard.
Read-only F1 game laps, telemetry, setups, leaderboard benchmarks, and progress.
Free Formula 1 stats: standings, title maths, teammate battles and records, each linked to source.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Formula 1 data via the FastF1 library. Ask Claude (or any MCP-compatible client) about race results, lap times, telemetry, standings, pit stops, and qualifying — with historical data back to 1950 via the Ergast API.21MIT
- AlicenseNot gradedqualityDmaintenanceEnables Formula 1 data analysis through natural language, providing tools like track dominance, lap time analysis, and team performance comparisons.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive Formula 1 data and analytics for Claude Desktop, including race results, telemetry, standings, and strategy insights through 36+ tools.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query real-time and historical Formula 1 data through the OpenF1 API, providing tools for driver info, lap times, telemetry, race events, and more.MIT