Skip to main content
Glama
Pitwall F1

Pitwall F1

by darshjoshi

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.

Verstappen vs Norris — Abu Dhabi 2024 qualifying speed trace

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-f1

Or 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.py

On 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

livetiming.formula1.com (HTTPS and WSS)

Session timing archive (2018 onward) and the public live-timing feed

api.jolpi.ca

Historical results and standings from 1950 (the Ergast-compatible Jolpica API)

livetiming-mirror.fastf1.dev

FastF1's mirror of the timing archive, used as a fallback

api.formula1.com, raw.githubusercontent.com

Season schedule, as fetched by FastF1

api.multiviewer.app

Circuit corner and layout data, as fetched by FastF1

pypi.org, files.pythonhosted.org

Dependency install by uv on first start

github.com

Only if no Python 3.10+ is installed: uv downloads a standalone Python build on first start

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 tools
analyze_brake_pointsAnalyze Braking PointsC
Read-onlyIdempotent

Analyze braking patterns on fastest lap.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes
sessionNoQ

Output Schema

NameRequiredDescription
resultYes
analyze_drs_usageAnalyze DRS UsageB
Read-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.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes
sessionNoR

Output Schema

NameRequiredDescription
resultYes
analyze_lap_consistencyAnalyze Lap ConsistencyC
Read-onlyIdempotent

Analyze lap time consistency (standard deviation, variation).

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes
sessionNoR

Output Schema

NameRequiredDescription
resultYes
analyze_long_run_paceAnalyze Long-Run PaceC
Read-onlyIdempotent

Analyze race simulation pace from practice sessions.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes
sessionNoFP2

Output Schema

NameRequiredDescription
resultYes
analyze_rpm_dataAnalyze RPM DataC
Read-onlyIdempotent

Analyze engine RPM patterns on fastest lap.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes
sessionNoQ

Output Schema

NameRequiredDescription
resultYes
analyze_starting_tiresStarting TyresC
Read-onlyIdempotent

Analyze which tire compounds were used at race start.

NameRequiredDescriptionDefault
gpYes
yearYes

Output Schema

NameRequiredDescription
resultYes
compare_grid_to_finishGrid vs FinishC
Read-onlyIdempotent

Compare starting grid positions to finishing positions.

NameRequiredDescriptionDefault
gpYes
yearYes

Output Schema

NameRequiredDescription
resultYes
compare_sector_timesCompare Sector TimesC
Read-onlyIdempotent

Compare sector times between two drivers.

NameRequiredDescriptionDefault
gpYes
yearYes
driver1Yes
driver2Yes
sessionNoQ

Output Schema

NameRequiredDescription
resultYes
compare_strategiesCompare StrategiesC
Read-onlyIdempotent

Compare tire strategies between two drivers.

NameRequiredDescriptionDefault
gpYes
yearYes
driver1Yes
driver2Yes

Output Schema

NameRequiredDescription
resultYes
compare_tire_age_performanceTyre Age vs PaceC
Read-onlyIdempotent

Compare lap times on fresh vs used tires.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes

Output Schema

NameRequiredDescription
resultYes
compare_tire_compoundsCompare Tyre CompoundsB
Read-onlyIdempotent

Compare average lap times across different tire compounds.

NameRequiredDescriptionDefault
gpYes
yearYes
sessionNoR

Output Schema

NameRequiredDescription
resultYes
detect_overtakesDetect OvertakesB
Read-onlyIdempotent

Detect when a driver overtook others (position gained between laps).

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes

Output Schema

NameRequiredDescription
resultYes
get_championship_standingsChampionship Standings (1950+)A
Read-onlyIdempotent

Get championship standings from 1950 to present.

Args: year: Season year (0 = current) standings_type: 'driver' or 'constructor'

NameRequiredDescriptionDefault
yearNo
standings_typeNodriver

Output Schema

NameRequiredDescription
resultYes
get_circuit_infoCircuit InfoC
Read-onlyIdempotent

Get track layout info (Corners, DRS Zones).

NameRequiredDescriptionDefault
gpYes
yearYes

Output Schema

NameRequiredDescription
resultYes
get_constructor_standingsConstructor StandingsC
Read-onlyIdempotent

Get constructor/team championship standings.

NameRequiredDescriptionDefault
yearYes
round_numberNo

Output Schema

NameRequiredDescription
resultYes
get_deleted_lapsDeleted LapsC
Read-onlyIdempotent

Get all laps deleted due to track limits or other violations.

NameRequiredDescriptionDefault
gpYes
yearYes
sessionNoQ

Output Schema

NameRequiredDescription
resultYes
get_dnf_listDNF ListC
Read-onlyIdempotent

Get list of drivers who did not finish the race and reasons.

NameRequiredDescriptionDefault
gpYes
yearYes

Output Schema

NameRequiredDescription
resultYes
get_driver_comparisonCompare Two DriversA
Read-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

NameRequiredDescriptionDefault
raceNo
yearNo
driver_aYes
driver_bYes
session_typeNoRace

Output Schema

NameRequiredDescription
resultYes
get_driver_infoDriver InfoC
Read-onlyIdempotent

Get detailed driver information (number, team, headshot, etc.).

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes

Output Schema

NameRequiredDescription
resultYes
get_driver_standingsDriver StandingsB
Read-onlyIdempotent

Get driver championship standings after a specific round or latest.

NameRequiredDescriptionDefault
yearYes
round_numberNo

Output Schema

NameRequiredDescription
resultYes
get_driver_tyre_detailDriver Tyre DetailC
Read-onlyIdempotent

Get detailed tyre stint data for a specific driver via FastF1 — compound, laps, and degradation.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes

Output Schema

NameRequiredDescription
resultYes
get_fastest_lap_dataFastest Lap DataC
Read-onlyIdempotent

Get detailed stats for a driver's fastest lap (Sector times, Speed trap).

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes
sessionNoQ

Output Schema

NameRequiredDescription
resultYes
get_fastest_pit_stopsFastest Pit StopsA
Read-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.

NameRequiredDescriptionDefault
gpYes
yearYes
top_nNo

Output Schema

NameRequiredDescription
resultYes
get_fastest_sectorsFastest SectorsC
Read-onlyIdempotent

Find who set the fastest time in each sector.

NameRequiredDescriptionDefault
gpYes
yearYes
sessionNoQ

Output Schema

NameRequiredDescription
resultYes
get_gap_to_leaderGap to LeaderC
Read-onlyIdempotent

Track gap to race leader throughout the race.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes

Output Schema

NameRequiredDescription
resultYes
get_historical_resultsHistorical Results (1950+)B
Read-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')

NameRequiredDescriptionDefault
raceNo
yearNo
driverNo

Output Schema

NameRequiredDescription
resultYes
get_lap_timesLap TimesB
Read-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

NameRequiredDescriptionDefault
raceNo
yearNo
driverNo
lap_endNo
lap_startNo
session_typeNoRace

Output Schema

NameRequiredDescription
resultYes
get_lap_times_fastf1Lap Times (FastF1)C
Read-onlyIdempotent

Get all lap times for a driver via FastF1 — includes compound and tyre life per lap.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes
sessionNoR

Output Schema

NameRequiredDescription
resultYes
get_live_best_sectorsLive Best SectorsA
Read-onlyIdempotent

Live personal-best sector times and overall best lap per driver, ranked by lap position. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_lap_timesLive Lap TimesA
Read-onlyIdempotent

Live last + best lap time per driver. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_mini_sectorsLive Mini-SectorsA
Read-onlyIdempotent

Live mini-sector status per driver: g=green/personal-best, p=purple/overall-best, y=yellow, .=no data. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_pit_activityLive Pit ActivityA
Read-onlyIdempotent

Live pit-stop count and real-time in-pit / out-lap flags per driver. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_positionsLive PositionsA
Read-onlyIdempotent

Live running order with gap-to-leader and interval. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_race_controlLive Race ControlA
Read-onlyIdempotent

Live race control: flags, penalties, track-limit deletions, SC/VSC. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_sector_timesLive Sector TimesA
Read-onlyIdempotent

Live sector times + speed trap for one driver (TLA or car number). No auth required.

NameRequiredDescriptionDefault
driverYes

Output Schema

NameRequiredDescription
resultYes
get_live_session_clockLive Session ClockA
Read-onlyIdempotent

Live time remaining in the current session. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_session_statusLive Session StatusA
Read-onlyIdempotent

Live F1 session status: session name, flag/track status, lap count. No auth required. Honest 'no live session' message when nothing is running.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_speed_comparisonLive Speed ComparisonA
Read-onlyIdempotent

Live best speed at each measurement point (I1, I2, FL, ST) for every driver. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_speed_trapLive Speed TrapA
Read-onlyIdempotent

Live speed-trap (ST) ranking across the whole field. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_stint_historyLive Stint HistoryB
Read-onlyIdempotent

Live full compound sequence and stint lengths for every driver in track-position order. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_time_gapsLive Time GapsA
Read-onlyIdempotent

Live gap to leader and interval to car ahead per driver, mode-aware (race gap vs quali/practice fastest). No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_track_status_historyLive Track Status HistoryA
Read-onlyIdempotent

Live chronological log of track-status and session-status changes. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_tyresLive TyresB
Read-onlyIdempotent

Live tyre compound, age (laps), and stint number per driver. No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_live_weatherLive WeatherA
Read-onlyIdempotent

Live track weather (air/track temp, humidity, wind, rain). No auth required.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
get_penaltiesPenaltiesC
Read-onlyIdempotent

Get all penalties issued during the race.

NameRequiredDescriptionDefault
gpYes
yearYes

Output Schema

NameRequiredDescription
resultYes
get_personal_best_lapsPersonal Best LapsC
Read-onlyIdempotent

Get each driver's personal best lap time.

NameRequiredDescriptionDefault
gpYes
yearYes
sessionNoQ

Output Schema

NameRequiredDescription
resultYes
get_pit_stop_detailPit Stop DetailB
Read-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.

NameRequiredDescriptionDefault
gpYes
yearYes
driverNo

Output Schema

NameRequiredDescription
resultYes
get_pit_stopsPit StopsB
Read-onlyIdempotent

Get all pit stops sorted by fastest stop time.

Args: year: Season year race: Race name (partial match) session_type: Session type

NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

NameRequiredDescription
resultYes
get_position_changesPosition ChangesC
Read-onlyIdempotent

Track position changes throughout the race for a driver.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes

Output Schema

NameRequiredDescription
resultYes
get_qualifying_progressionQualifying ProgressionB
Read-onlyIdempotent

Show who was eliminated in Q1, Q2 and who made it to Q3.

NameRequiredDescriptionDefault
gpYes
yearYes

Output Schema

NameRequiredDescription
resultYes
get_race_controlRace Control MessagesB
Read-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

NameRequiredDescriptionDefault
raceNo
yearNo
categoryNo
session_typeNoRace

Output Schema

NameRequiredDescription
resultYes
get_race_control_messagesRace Control Log (FastF1)B
Read-onlyIdempotent

Get all race control messages during a session.

NameRequiredDescriptionDefault
gpYes
yearYes
sessionNoR

Output Schema

NameRequiredDescription
resultYes
get_race_infoRace InfoB
Read-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.

NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

NameRequiredDescription
resultYes
get_race_resultsRace Results (FastF1)C
Read-onlyIdempotent

Get the final classification (Position, Driver, Team, Points).

NameRequiredDescriptionDefault
gpYes
yearYes

Output Schema

NameRequiredDescription
resultYes
get_race_winners_historyRace Winners HistoryB
Read-onlyIdempotent

Get race winners for a specific GP over the last N years.

NameRequiredDescriptionDefault
gpYes
yearsNo

Output Schema

NameRequiredDescription
resultYes
get_scheduleSeason ScheduleB
Read-onlyIdempotent

Get the full race calendar for a specific year (excluding testing).

NameRequiredDescriptionDefault
yearYes

Output Schema

NameRequiredDescription
resultYes
get_session_infoSession InfoB
Read-onlyIdempotent

Get start time and status of a specific session (R=Race, Q=Quali, FP1, etc).

NameRequiredDescriptionDefault
gpYes
yearYes
sessionNoR

Output Schema

NameRequiredDescription
resultYes
get_session_summarySession SummaryC
Read-onlyIdempotent

Get a comprehensive quick summary of a session.

NameRequiredDescriptionDefault
gpYes
yearYes
sessionNoR

Output Schema

NameRequiredDescription
resultYes
get_speed_trap_comparisonSpeed Trap ComparisonC
Read-onlyIdempotent

Compare speed trap data across all drivers.

NameRequiredDescriptionDefault
gpYes
yearYes
sessionNoQ

Output Schema

NameRequiredDescription
resultYes
get_speed_trapsSpeed TrapsB
Read-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

NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

NameRequiredDescription
resultYes
get_sprint_resultsSprint ResultsB
Read-onlyIdempotent

Get sprint race results (for sprint weekends).

NameRequiredDescriptionDefault
gpYes
yearYes

Output Schema

NameRequiredDescription
resultYes
get_standingsSession ResultsB
Read-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.

NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

NameRequiredDescription
resultYes
get_stint_analysisStint AnalysisC
Read-onlyIdempotent

Analyze each stint: compound, lap times, degradation.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes

Output Schema

NameRequiredDescription
resultYes
get_team_lapsTeam LapsB
Read-onlyIdempotent

Get all laps for a specific team (both drivers).

NameRequiredDescriptionDefault
gpYes
teamYes
yearYes
sessionNoR

Output Schema

NameRequiredDescription
resultYes
get_telemetryLap TelemetryA
Read-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

NameRequiredDescriptionDefault
lapNo
raceNo
yearNo
driverYes
session_typeNoRace

Output Schema

NameRequiredDescription
resultYes
get_track_recordCircuit Lap RecordB
Read-onlyIdempotent

Get the all-time lap record for a specific circuit (via Ergast).

NameRequiredDescriptionDefault
gpYes

Output Schema

NameRequiredDescription
resultYes
get_track_statusTrack StatusB
Read-onlyIdempotent

Get track status changes (yellow flags, safety car, red flag, etc.).

NameRequiredDescriptionDefault
gpYes
yearYes
sessionNoR

Output Schema

NameRequiredDescription
resultYes
get_tyre_strategyTyre StrategyB
Read-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

NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

NameRequiredDescription
resultYes
get_weatherSession WeatherB
Read-onlyIdempotent

Get weather conditions during a session — temperature, rain, wind, humidity.

Args: year: Season year race: Race name (partial match) session_type: Session type

NameRequiredDescriptionDefault
raceNo
yearNo
session_typeNoRace

Output Schema

NameRequiredDescription
resultYes
get_weather_dataWeather TimelineB
Read-onlyIdempotent

Get detailed weather conditions (Rain, Track Temp, Wind).

NameRequiredDescriptionDefault
gpYes
yearYes
sessionNoR

Output Schema

NameRequiredDescription
resultYes
list_racesList Races & SessionsB
Read-onlyIdempotent

List all races and sessions for a season with dates and session paths.

Args: year: Season year (2018-2026)

NameRequiredDescriptionDefault
yearYes

Output Schema

NameRequiredDescription
resultYes
list_seasonsList SeasonsA
Read-onlyIdempotent

List all available F1 seasons (2018-present).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
plot_driver_telemetry_comparisonPlot Driver Telemetry ChannelsB
Read-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

NameRequiredDescriptionDefault
gpYes
yearYes
driver1Yes
driver2Yes
sessionNoR
lap_numberYes

Output Schema

NameRequiredDescription
dataYes
typeYes
_metaNo
mimeTypeYes
annotationsNo
plot_gear_shiftsPlot Gear Shift MapC
Read-onlyIdempotent

Generates a Gear Shift chart for a single driver.

NameRequiredDescriptionDefault
gpYes
yearYes
driverYes
sessionNoQ

Output Schema

NameRequiredDescription
dataYes
typeYes
_metaNo
mimeTypeYes
annotationsNo
plot_multi_telemetry_comparisonPlot Multi-Lap TelemetryB
Read-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

NameRequiredDescriptionDefault
gpYes
lap1Yes
lap2Yes
yearYes
driverYes
sessionNoR

Output Schema

NameRequiredDescription
dataYes
typeYes
_metaNo
mimeTypeYes
annotationsNo
plot_telemetry_comparisonPlot Speed Trace ComparisonC
Read-onlyIdempotent

Generates a Speed Trace comparison image between two drivers. Returns: An ImageContent object that can be displayed in the client.

NameRequiredDescriptionDefault
gpYes
yearYes
driver1Yes
driver2Yes
sessionNoQ

Output Schema

NameRequiredDescription
dataYes
typeYes
_metaNo
mimeTypeYes
annotationsNo
team_head_to_headTeammate Head-to-HeadC
Read-onlyIdempotent

Compare both drivers in a team head-to-head.

NameRequiredDescriptionDefault
gpYes
teamYes
yearYes
sessionNoQ

Output Schema

NameRequiredDescription
resultYes

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 77 tool updatesv1.0.0
    • First observedanalyze_brake_points
    • First observedanalyze_drs_usage
    • First observedanalyze_lap_consistency
    • First observedanalyze_long_run_pace
    • First observedanalyze_rpm_data
    • First observedanalyze_starting_tires
    • First observedcompare_grid_to_finish
    • First observedcompare_sector_times
    • First observedcompare_strategies
    • First observedcompare_tire_age_performance
    • First observedcompare_tire_compounds
    • First observeddetect_overtakes
    • First observedget_championship_standings
    • First observedget_circuit_info
    • First observedget_constructor_standings
    • First observedget_deleted_laps
    • First observedget_dnf_list
    • First observedget_driver_comparison
    • First observedget_driver_info
    • First observedget_driver_standings
    • First observedget_driver_tyre_detail
    • First observedget_fastest_lap_data
    • First observedget_fastest_pit_stops
    • First observedget_fastest_sectors
    • First observedget_gap_to_leader
    • First observedget_historical_results
    • First observedget_lap_times
    • First observedget_lap_times_fastf1
    • First observedget_live_best_sectors
    • First observedget_live_lap_times
    • First observedget_live_mini_sectors
    • First observedget_live_pit_activity
    • First observedget_live_positions
    • First observedget_live_race_control
    • First observedget_live_sector_times
    • First observedget_live_session_clock
    • First observedget_live_session_status
    • First observedget_live_speed_comparison
    • First observedget_live_speed_trap
    • First observedget_live_stint_history
    • First observedget_live_time_gaps
    • First observedget_live_track_status_history
    • First observedget_live_tyres
    • First observedget_live_weather
    • First observedget_penalties
    • First observedget_personal_best_laps
    • First observedget_pit_stop_detail
    • First observedget_pit_stops
    • First observedget_position_changes
    • First observedget_qualifying_progression
    • First observedget_race_control
    • First observedget_race_control_messages
    • First observedget_race_info
    • First observedget_race_results
    • First observedget_race_winners_history
    • First observedget_schedule
    • First observedget_session_info
    • First observedget_session_summary
    • First observedget_speed_trap_comparison
    • First observedget_speed_traps
    • First observedget_sprint_results
    • First observedget_standings
    • First observedget_stint_analysis
    • First observedget_team_laps
    • First observedget_telemetry
    • First observedget_track_record
    • First observedget_track_status
    • First observedget_tyre_strategy
    • First observedget_weather
    • First observedget_weather_data
    • First observedlist_races
    • First observedlist_seasons
    • First observedplot_driver_telemetry_comparison
    • First observedplot_gear_shifts
    • First observedplot_multi_telemetry_comparison
    • First observedplot_telemetry_comparison
    • First observedteam_head_to_head

TDQS

C2.7/5.0

Scored across 77 tools

Disambiguation2/5

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.

Naming Consistency4/5

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.

Tool Count1/5

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.

Completeness4/5

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

ActivitySlowing
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP 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.
    21
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Formula 1 data analysis through natural language, providing tools like track dominance, lap time analysis, and team performance comparisons.
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive Formula 1 data and analytics for Claude Desktop, including race results, telemetry, standings, and strategy insights through 36+ tools.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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