A Model Context Protocol (MCP) server that provides Formula One racing data for AI applications, including event schedules, driver information, telemetry data, race results, and performance analysis.
Project description
Formula One MCP Server
A Model Context Protocol (MCP) server that provides Formula One racing data. This package exposes various tools for querying F1 data including event schedules, driver information, telemetry data, and race results.
Features
- Event Schedule: Access the complete F1 race calendar for any season
- Event Information: Detailed data about specific Grand Prix events
- Session Results: Comprehensive results from races, qualifying sessions, sprints, and practice sessions
- Driver Information: Access driver details for specific sessions
- Performance Analysis: Analyze a driver's performance with lap time statistics
- Driver Comparison: Compare multiple drivers' performances in the same session
- Telemetry Data: Access detailed telemetry for specific laps
- Championship Standings: View driver and constructor standings for any season
Installation
In a uv managed python project, add to dependencies by:
uv add f1-mcp-server
Alternatively, for projects using pip for dependencies:
pip install f1-mcp-server
To run the server inside your project:
uv run f1-mcp-server
Or to run it globally in isolated environment:
uvx f1-mcp-server
To install directly from the source:
git clone https://github.com/Machine-To-Machine/f1-mcp-server.git
cd f1-mcp-server
pip install -e .
Usage
Command Line
The server can be run in two modes:
Standard I/O mode (default):
uvx run f1-mcp-server
SSE transport mode (for web applications):
uvx f1-mcp-server --transport sse --port 8000
Python API
from f1_mcp_server import main
# Run the server with default settings
main()
# Or with SSE transport settings
main(port=9000, transport="sse")
API Documentation
The server exposes the following tools via MCP:
| Tool Name | Description |
|---|---|
get_event_schedule |
Get Formula One race calendar for a specific season |
get_event_info |
Get detailed information about a specific Formula One Grand Prix |
get_session_results |
Get results for a specific Formula One session |
get_driver_info |
Get information about a specific Formula One driver |
analyze_driver_performance |
Analyze a driver's performance in a Formula One session |
compare_drivers |
Compare performance between multiple Formula One drivers |
get_telemetry |
Get telemetry data for a specific Formula One lap |
get_championship_standings |
Get Formula One championship standings |
See the FastF1 documentation for detailed information about the underlying data: FastF1 Documentation
Dependencies
- anyio (>=4.9.0)
- click (>=8.1.8)
- fastf1 (>=3.5.3)
- mcp (>=1.6.0)
- numpy (>=2.2.4)
- pandas (>=2.2.3)
- uvicorn (>=0.34.0)
Development
Setup Development Environment
git clone https://github.com/Machine-To-Machine/f1-mcp-server.git
cd f1-mcp-server
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"
Code Quality
# Run linting
uv run ruff check .
# Run formatting check
uv run ruff format --check .
# Run security checks
uv run bandit -r src/
Contribution Guidelines
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature-name - Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Authors
- Machine-To-Machine
Acknowledgements
This project leverages FastF1, an excellent Python package for accessing Formula 1 data. We are grateful to its maintainers and contributors.
This project was inspired by rakeshgangwar/f1-mcp-server which was written in TypeScript. The f1_data.py module was mostly adapted from their source code.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file f1_mcp_server-0.1.0.tar.gz.
File metadata
- Download URL: f1_mcp_server-0.1.0.tar.gz
- Upload date:
- Size: 99.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b09eafdf1acb33243cce3c75d0330527a8cfa7b94cbb4be4f3c9b1fd1a62243f
|
|
| MD5 |
9507a0cc9675fc493ed8668bba9948cd
|
|
| BLAKE2b-256 |
12cba346e2eb776f93169fc1f8ef86fbc89d2859e9c553c7365b5c3d62717d8f
|
Provenance
The following attestation bundles were made for f1_mcp_server-0.1.0.tar.gz:
Publisher:
publish-pypi.yml on Machine-To-Machine/f1-mcp-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
f1_mcp_server-0.1.0.tar.gz -
Subject digest:
b09eafdf1acb33243cce3c75d0330527a8cfa7b94cbb4be4f3c9b1fd1a62243f - Sigstore transparency entry: 193478241
- Sigstore integration time:
-
Permalink:
Machine-To-Machine/f1-mcp-server@0ed9ee08eaba57504185e02324ae170f15d33134 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Machine-To-Machine
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@0ed9ee08eaba57504185e02324ae170f15d33134 -
Trigger Event:
release
-
Statement type:
File details
Details for the file f1_mcp_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: f1_mcp_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e8d73c65a61edc4d38be2239632d0d8e54bcfa8147ccb0f13162b80bb46ff5a
|
|
| MD5 |
7bb70fb131227b08e83abcee569b65bc
|
|
| BLAKE2b-256 |
b96511e60fa3b7ccdffce24451576c0503a91ddb55829a8bf7a8e23956b7e3ff
|
Provenance
The following attestation bundles were made for f1_mcp_server-0.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on Machine-To-Machine/f1-mcp-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
f1_mcp_server-0.1.0-py3-none-any.whl -
Subject digest:
6e8d73c65a61edc4d38be2239632d0d8e54bcfa8147ccb0f13162b80bb46ff5a - Sigstore transparency entry: 193478247
- Sigstore integration time:
-
Permalink:
Machine-To-Machine/f1-mcp-server@0ed9ee08eaba57504185e02324ae170f15d33134 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Machine-To-Machine
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@0ed9ee08eaba57504185e02324ae170f15d33134 -
Trigger Event:
release
-
Statement type: