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.
- 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
To install f1-mcp-server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @Machine-To-Machine/f1-mcp-server --client claudeIn a uv managed python project, add to dependencies by:
uv add f1-mcp-serverAlternatively, for projects using pip for dependencies:
pip install f1-mcp-serverTo run the server inside your project:
uv run f1-mcp-serverOr to run it globally in isolated environment:
uvx f1-mcp-serverTo install directly from the source:
git clone https://github.com/Machine-To-Machine/f1-mcp-server.git
cd f1-mcp-server
pip install -e .The server can be run in two modes:
Standard I/O mode (default):
uvx run f1-mcp-serverSSE transport mode (for web applications):
uvx f1-mcp-server --transport sse --port 8000from f1_mcp_server import main
# Run the server with default settings
main()
# Or with SSE transport settings
main(port=9000, transport="sse")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
- 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)
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]"# Run linting
uv run ruff check .
# Run formatting check
uv run ruff format --check .
# Run security checks
uv run bandit -r src/- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Machine To Machine
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.