Formula 1 MCP Server
Provides a web interface built with Gradio to explore Formula 1 statistics and data, including championship standings, event information, and session results.
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., "@Formula 1 MCP Server Show me the 2023 driver championship standings"
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.
🏁 Formula 1 MCP Server 🏎️
This project defines a MCP server for Formula 1 data, providing fans, analysts, and developers with easy access to a vast range of F1 statistics and information. Built with Python and powered by the Gradio framework, it offers a user-friendly web interface to explore historical and recent F1 data from the FastF1 library and the official OpenF1 API.
Video Demo (Claude Desktop)
![]()
Related MCP server: Pitstop
Architecture
Architectural overview of the MCP server and client. The MCP server is hosted using a Gradio back-end and can be either run locally or on a remote server.
Gradio Key Features
The interface is organized into several Gradio tabs, each dedicated to a specific type of F1 data:
Championship Standings: View final driver and constructor championship standings for any season from 1950 to the present.
Event Information: Get detailed information for any Grand Prix, including schedules and circuit details.
Season Calendar: Display the complete race calendar for a given year.
Track Visualizations: Generate and view plots of the fastest race lap, visualizing speed, gear changes, and cornering G-forces.
Session Results: Fetch detailed results for any race session (Practice, Qualifying, or Race).
Driver & Constructor Info: Look up background information and statistics for drivers and teams.
OpenF1 API Tools: An advanced toolkit for developers to directly query the OpenF1 API, build custom requests, and view raw JSON responses.
Tech Stack
Backend: Python
Web Framework: Gradio
Data Sources:
fastf1Python library for historical data.openf1for live and recent data via their public API.
Key Libraries:
pandas,matplotlib
MCP Server
The MCP server is defined inside app.py.
MCP Client
The MCP client and AI agent is defined inside mcp_client.py and allows interaction with the MCP server through server side events (SSE) transport.
MCP configuration file
For MCP clients that support SSE transport (for Claude Desktop, see below), the following configuration can be used:
{
"mcpServers": {
"gradio": {
"url": "https://agents-mcp-hackathon-f1-mcp-server.hf.space/gradio_api/mcp/sse"
}
}
}For Claude Desktop, the following configuration can instead be used, but make sure you have Node.js installed:
{
"mcpServers": {
"gradio": {
"command": "npx",
"args": [
"mcp-remote",
"https://agents-mcp-hackathon-f1-mcp-server.hf.space/gradio_api/mcp/sse",
"--transport",
"sse-only"
]
}
}
}Available Tools
17 toolsf1_mcp_server_apply_filtersC
Apply one or more filter strings to an API endpoint URL.
Inputs: param_1, api_string.
f1_mcp_server_constructor_championship_standingsB
Get the championship standing for a specific constructor in a given year.
Inputs: year, constructor_name.
f1_mcp_server_driver_championship_standingsC
Get the championship standing for a specific driver in a given year.
Inputs: year, driver_name.
f1_mcp_server_get_api_endpointC
Retrieve the API endpoint URL and filter metadata for a given OpenF1 endpoint.
Inputs: endpoint.
f1_mcp_server_get_api_endpointsA
Retrieve a list of all available OpenF1 API endpoints. Returns: dict: A dictionary containing a single key 'endpoints' with a list of available endpoint names as strings.
Inputs: no named parameters.
f1_mcp_server_get_constructor_infoC
Retrieve detailed information about a specific constructor.
Inputs: constructor_name.
f1_mcp_server_get_driver_infoC
Retrieve detailed information about a specific driver.
Inputs: driver_name.
f1_mcp_server_get_endpoint_infoC
Retrieve detailed information about a specific OpenF1 API endpoint.
Inputs: endpoint.
f1_mcp_server_get_event_infoC
Retrieve information about a specific Formula 1 event.
Inputs: year, round, format.
f1_mcp_server_get_filter_infoC
Retrieve detailed information about a specific OpenF1 API filter.
Inputs: filter_name.
f1_mcp_server_get_filter_stringC
Create a filter string for OpenF1 API requests.
Inputs: operator, filter_name, filter_value.
f1_mcp_server_get_season_calendarA
Get the complete race calendar for a specific F1 season.
Inputs: year.
f1_mcp_server_get_session_resultsC
Retrieve and format the results of a specific session.
Inputs: year, round, session_type.
f1_mcp_server_send_requestB
Send an HTTP GET request to the specified API endpoint and return the JSON response.
Inputs: api_string.
f1_mcp_server_track_visualizationC
Generate a visualization of the track with specified data.
Inputs: year, round, visualization_type.
f1_mcp_server_update_constructorsD
Inputs: year.
f1_mcp_server_update_driversD
Inputs: year.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Core F1 retrieval tools (standings, event info, session results, driver/constructor info) are clearly distinct. However, the OpenF1 API plumbing tools (get_api_endpoints, get_api_endpoint, get_endpoint_info, get_filter_info, get_filter_string, apply_filters, send_request) overlap heavily in purpose, and update_drivers/update_constructors have no descriptions, making their boundaries unclear.
All tools share a consistent f1_mcp_server_ prefix and mostly use verb_noun or verb_resource naming (get_*, update_*). Minor deviations exist: championship_standings and track_visualization lack explicit verbs, and get_api_endpoint vs get_api_endpoints differ only by plural.
17 tools is on the heavy side for an F1 data server. While core domain tools are justified, seven generic OpenF1 API access/filter tools appear to expose implementation plumbing rather than distinct user-facing capabilities, inflating the count.
The surface covers key F1 entities (drivers, constructors, standings, events, calendars, session results) and generic OpenF1 request tools provide fallback access to unmodeled data like laps, telemetry, or pit stops. Explicit list/search tools and clear update semantics are missing, but agents can work around most gaps.
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.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides comprehensive Formula 1 data access including race schedules, session results, lap times, telemetry data, driver/constructor standings, and circuit information. Enables users to retrieve and analyze F1 racing data through natural language queries using the FastF1 Python package.5MIT
- AlicenseAqualityBmaintenanceProvides access to Formula 1 data including driver and constructor championship standings with support for current and historical seasons. Enables users to query F1 championship information through natural language with plans for expanded race data and telemetry.221MIT
- FlicenseNot gradedqualityDmaintenanceEnables access to Formula 1 data from the openF1.org API, including driver information, race results, lap times, telemetry, pit stops, weather conditions, and live position data across multiple seasons.-
- 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