About Formula 1 Schedule
Formula 1 Schedule is an MCP server in the Communication category: provide up-to-date and historical Formula 1 race schedules for any specified year. Retrieve detailed race calendars including dates, circuit details, and session times with reliable data sources and caching for performance. Enable seamless integration of F1 calendar data into your applications via a simple MCP tool.
Install
git clone https://github.com/hydavinci/formula-1-scheduleThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Formula 1 Schedule
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
Formula 1 Schedule MCP Server
A Model Context Protocol (MCP) server that provides comprehensive Formula 1 data including race schedules, standings, and results for any specified year. Built with FastMCP, this server offers reliable access to current and historical F1 data through web scraping.
Features
- 🏁 Race Calendar: Fetch Formula 1 race schedules for any year with dates, locations, and round information
- 🏆 Race Results: Get detailed race results including winners, finishing positions, lap times, and points
- 🏎️ Team Standings: Access complete constructor/team standings with points, positions, and win statistics
- 👤 Driver Standings: Retrieve driver championship standings with nationality, team affiliations, and points
- 🔄 Multi-Year Support: Query data from current and historical F1 seasons
- ⚡ Fast & Reliable: Robust web scraping with error handling and request optimization
- 🛠️ Easy Integration: Simple MCP interface with consistent parameter structure
Installation
Prerequisites
- Python 3.10 or higher
- uv (recommended) or pip for dependency management
- Docker (optional, for containerized deployment)
Local Setup
-
Clone the repository:
git clone https://github.com/hydavinci/formula-1-schedule.git cd formula-1-schedule -
Install dependencies using uv (recommended):
uv syncOr using pip:
pip install -e . -
Run the server:
# Using uv uv run python src/server.py # Or using the installed script formula-1-schedule-mcp-server
Docker Setup
To run the server using Docker:
docker build -t f1-schedule-mcp .
docker run -p 8000:8000 f1-schedule-mcp
Usage
The server exposes four MCP tools, all following the same simple parameter pattern:
Available Tools
| Tool Name | Description | Example Response |
|---|---|---|
fetch_f1_calendar |
Get race schedule for a year | Race dates, circuits, countries, and round numbers |
fetch_f1_race_results |
Get race results for a year | Winners, positions, times, and points for each race |
fetch_f1_team_standings |
Get constructor standings | Team rankings, points, wins, and statistics |
fetch_f1_driver_standings |
Get driver championship standings | Driver rankings, points, teams, and nationality |
Tool Parameters
All tools use the same parameter structure:
year(string): The year for which to fetch Formula 1 data (e.g., "2024", "2023")
Example Usage
{
"name": "fetch_f1_calendar",
"parameters": {
"year": "2024"
}
}
Response Format
All tools return structured data with:
- Success: Array of relevant F1 data objects
- Error: Error message with context if data retrieval fails
Configuration
MCP Client Integration
To use this server with an MCP client, configure it in your client's settings:
{
"mcpServers": {
"formula-1-schedule": {
"command": "formula-1-schedule-mcp-server",
"args": []
}
}
}
Smithery Deployment
The server can be deployed using Smithery with the included smithery.yaml configuration.
Project Structure
formula-1-schedule/
├── src/
│ ├── server.py # MCP server implementation with tool registration
│ ├── fetcher.py # Core data retrieval and parsing logic
│ └── middleware.py # Smithery configuration middleware
├── pyproject.toml # Project configuration and dependencies
├── uv.lock # Dependency lock file
├── Dockerfile # Container build configuration
├── smithery.yaml # Smithery deployment configuration
├── README.md # This file
└── LICENSE # MIT License
Technical Details
Data Sources
- Primary: Official Formula 1 website (formula1.com)
- Parsing: BeautifulSoup4 for HTML parsing and data extraction
- Reliability: Error handling and retry logic for robust data retrieval
Dependencies
- fastmcp: Modern MCP server implementation framework
- requests: HTTP client for web scraping
- beautifulsoup4: HTML parsing library for data extraction
- uvicorn: ASGI server for hosting (development)
- starlette: Web framework components
Development
Setting up Development Environment
-
Fork and clone the repository
-
Install development dependencies:
uv sync --dev -
Run tests (if available):
uv run pytest -
Format code:
uv run black src/ uv run isort src/
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Troubleshooting
Common Issues
- Connection errors: Check internet connectivity and F1 website availability
- Parsing errors: The F1 website structure may have changed; please file an issue
- Year not found: Ensure the requested year has F1 data available
Logging
The server includes comprehensive logging. Set environment variable for debug output:
export LOG_LEVEL=DEBUG
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Formula 1 for providing race data through their official website
- The MCP (Model Context Protocol) community for the framework
- FastMCP for the server implementation framework
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.