Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Schema
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_session_details | Get comprehensive details of a specific F1 session. Provides complete session information including results, weather conditions, fastest lap, and session statistics for any F1 session from 2018 onwards. Args: year: The season year (2018 onwards) gp: The Grand Prix name (e.g., 'Monza', 'Monaco') or round number session: Session type - 'FP1' (Free Practice 1), 'FP2' (Free Practice 2), 'FP3' (Free Practice 3), 'Q' (Qualifying), 'S' (Sprint), 'R' (Race) include_weather: Whether to include weather data (default: True) include_fastest_lap: Whether to include fastest lap information (default: True) Returns: SessionDetailsResponse: Complete session details including: - Session information (name, location, date, circuit) - Driver results/classification with positions, times, and teams - Weather conditions (temperature, humidity, wind, rainfall) - Fastest lap information (driver, time, compound) - Session statistics (total laps, duration) Examples: >>> # Get Free Practice 1 details from 2019 Monza GP >>> get_session_details(2019, "Monza", "FP1") >>> # Get Race results from 2024 Monaco GP
>>> get_session_details(2024, "Monaco", "R")
>>> # Get Qualifying results without weather data
>>> get_session_details(2023, "Silverstone", "Q", include_weather=False) |
| get_session_results | Get results/classification from a specific F1 session. Retrieves the final classification or results for any F1 session, including positions, times, teams, and driver information. Args: year: The season year (2018 onwards) gp: The Grand Prix name (e.g., 'Monza', 'Monaco') or round number session: Session type - 'FP1' (Free Practice 1), 'FP2' (Free Practice 2), 'FP3' (Free Practice 3), 'Q' (Qualifying), 'S' (Sprint), 'R' (Race) Returns: SessionResultsResponse: Session results with driver positions, times, teams, and other classification data in JSON-serializable format. Examples: >>> # Get race results from 2024 Monaco GP >>> results = get_session_results(2024, "Monaco", "R") >>> # Get qualifying results from 2023 Silverstone
>>> quali = get_session_results(2023, "Silverstone", "Q") |
| get_laps | Get lap data from an F1 session with flexible filtering. A composable function to retrieve lap data - all laps, specific driver's laps, or fastest laps. Use this single tool for all lap-related queries instead of multiple separate tools. Use this tool to:
Args: year: The season year (2018 onwards for detailed data) gp: The Grand Prix name (e.g., 'Monza', 'Monaco') or round number session: Session type - 'FP1' (Free Practice 1), 'FP2', 'FP3', 'Q' (Qualifying), 'S' (Sprint), 'R' (Race) driver: Optional - Driver identifier as 3-letter code (e.g., 'VER', 'HAM') or number (e.g., 1, 44). If None, returns data for all drivers. lap_type: Optional - 'all' returns all laps (default), 'fastest' returns only the fastest lap(s) Returns: Union[LapsResponse, FastestLapResponse]: Lap data in JSON-serializable format. Returns LapsResponse for multiple laps, FastestLapResponse for single fastest lap. Examples: >>> # Get all laps from 2024 Monza race (all drivers) >>> all_laps = get_laps(2024, "Monza", "R") >>> # Get all laps for Verstappen in 2024 Monza race
>>> ver_laps = get_laps(2024, "Monza", "R", driver="VER")
>>> # Get fastest lap overall from 2024 Monaco qualifying
>>> fastest = get_laps(2024, "Monaco", "Q", lap_type="fastest")
>>> # Get Verstappen's fastest lap from the race
>>> ver_fastest = get_laps(2024, "Monza", "R", driver="VER", lap_type="fastest") |
| get_session_drivers | Get list of drivers who participated in a session. Retrieves all driver identifiers who took part in the specified session. Args: year: The season year (2018 onwards) gp: The Grand Prix name (e.g., 'Monza', 'Monaco') or round number session: Session type - 'FP1', 'FP2', 'FP3', 'Q', 'S', 'R' Returns: SessionDriversResponse: List of driver abbreviations in JSON-serializable format Examples: >>> # Get all drivers from 2024 Monza race >>> drivers = get_session_drivers(2024, "Monza", "R") >>> # Output: SessionDriversResponse with drivers list >>> # Get drivers from Free Practice 1
>>> fp1_drivers = get_session_drivers(2024, "Monaco", "FP1") |
| get_tire_strategy | Get tire strategy and compound usage for a session. Analyzes tire compounds used throughout a session, including compound types, tire life, and stint information. Essential for understanding race strategy and tire management. Args: year: The season year (2018 onwards) gp: The Grand Prix name or round number session: Session type - 'FP1', 'FP2', 'FP3', 'Q', 'S', 'R' driver: Optional driver identifier (3-letter code or number). If None, returns data for all drivers Returns: TireStrategyResponse: Tire data per lap in JSON-serializable format Examples: >>> # Get tire strategy for all drivers in 2024 Monza race >>> strategy = get_tire_strategy(2024, "Monza", "R") >>> # Get Verstappen's tire strategy
>>> ver_strategy = get_tire_strategy(2024, "Monza", "R", "VER") |
| get_lap_telemetry | Get detailed telemetry data for a specific lap. Retrieves high-frequency telemetry data including speed, throttle, brake, gear, RPM, and DRS usage throughout a lap. Essential for detailed performance analysis and driver comparison. Args: year: The season year (2018 onwards) gp: The Grand Prix name or round number session: Session type - 'FP1', 'FP2', 'FP3', 'Q', 'S', 'R' driver: Driver identifier - 3-letter code (e.g., 'VER') or number (e.g., 1) lap_number: The specific lap number to analyze Returns: LapTelemetryResponse: High-frequency telemetry data in JSON-serializable format Examples: >>> # Get telemetry for Verstappen's lap 15 in 2024 Monza race >>> telemetry = get_lap_telemetry(2024, "Monza", "R", "VER", 15) |
| compare_driver_telemetry | Compare telemetry data between two drivers. Retrieves and returns telemetry data for two drivers side-by-side, enabling detailed performance comparison. Useful for analyzing racing lines, braking points, and overall driving style differences. Args: year: The season year (2018 onwards) gp: The Grand Prix name or round number session: Session type - 'FP1', 'FP2', 'FP3', 'Q', 'S', 'R' driver1: First driver identifier (3-letter code or number) driver2: Second driver identifier (3-letter code or number) lap1: Lap number for driver1 (uses fastest lap if None) lap2: Lap number for driver2 (uses fastest lap if None) Returns: TelemetryComparisonResponse: Telemetry data for both drivers in JSON-serializable format Examples: >>> # Compare fastest laps between Verstappen and Hamilton >>> comparison = compare_driver_telemetry(2024, "Monza", "Q", "VER", "HAM") >>> # Compare specific laps
>>> comparison = compare_driver_telemetry(2024, "Monza", "R", "VER", "HAM", lap1=15, lap2=15) |
| get_session_weather | Get weather data throughout a session. Retrieves time-series weather information recorded during a session, including temperature, humidity, pressure, wind, and rainfall data. Essential for understanding session conditions and their impact on performance. Args: year: The season year (2018 onwards) gp: The Grand Prix name (e.g., 'Monza', 'Monaco') or round number session: Session type - 'FP1', 'FP2', 'FP3', 'Q', 'S', 'R' Returns: SessionWeatherDataResponse: Weather data throughout session in JSON-serializable format Examples: >>> # Get weather data from 2024 Spa race >>> weather = get_session_weather(2024, "Spa", "R") >>> # Check weather conditions during qualifying
>>> quali_weather = get_session_weather(2024, "Silverstone", "Q") |
| get_race_control_messages | Get official race control messages for a session. Retrieves all race control messages issued during a session, including flags, safety car periods, investigations, penalties, and track status changes. Essential for understanding session events and incidents. Args: year: The season year (2018 onwards) gp: The Grand Prix name (e.g., 'Monza', 'Monaco') or round number session: Session type - 'FP1', 'FP2', 'FP3', 'Q', 'S', 'R' Returns: RaceControlMessagesResponse: Race control messages in JSON-serializable format Examples: >>> # Get all race control messages from 2024 Monaco race >>> messages = get_race_control_messages(2024, "Monaco", "R") >>> # Check safety car deployments and flags
>>> race_msgs = get_race_control_messages(2024, "Spa", "R") |
| get_standings | Get F1 World Championship standings for drivers and constructors. Use this tool to:
This is the PRIMARY tool for all championship-related queries. The position 1 driver/constructor in the standings is the champion. This is for CHAMPIONSHIP STANDINGS, not race/session results. For race results, use get_session_results() instead. Args: year: The season year (e.g., 2024, 2023, 2022). Historical data available from 1950. round: Optional - Round number (int) or GP name (str, e.g., 'Austria', 'Monaco'). If None, returns final/current season standings. type: Optional - Filter for 'driver' or 'constructor'. If None, returns both. driver_name: Optional - Driver name to filter (e.g., 'Verstappen', 'Hamilton'). Matches first or last name. team_name: Optional - Team name to filter (e.g., 'Red Bull', 'Mercedes', 'Ferrari'). Returns: StandingsResponse: Championship standings including: - year: Season year - round: Round number (if specified) - round_name: Grand Prix name (if round was specified) - drivers: List of driver standings with position, points, wins, nationality, team - constructors: List of constructor standings with position, points, wins, nationality Examples: >>> # Find who won the 2021 drivers championship >>> standings = get_standings(2021, type='driver') >>> # Position 1 driver is the champion >>> # Find who won the 2020 constructors championship
>>> standings = get_standings(2020, type='constructor')
>>> # Position 1 constructor is the champion
>>> # Get current 2024 championship standings (both drivers and constructors)
>>> standings = get_standings(2024)
>>> # Get standings after Monaco GP 2024
>>> standings_monaco = get_standings(2024, round='Monaco')
>>> # Get standings after round 10 of 2023
>>> standings_r10 = get_standings(2023, round=10)
>>> # Find Verstappen's championship position in 2024
>>> max_standing = get_standings(2024, driver_name='Verstappen')
>>> # Get Red Bull's constructor standing after Monaco
>>> rb_standing = get_standings(2024, round='Monaco', team_name='Red Bull') |
| get_f1_news | Get Formula 1 news with flexible filtering options. A unified tool to retrieve all types of F1 news - latest updates, driver transfers, technical developments, calendar changes, regulations, contracts, and more. Use this tool to:
Args: source: News source - "formula1", "fia", "autosport", "motorsport", "the-race", "racefans", "planetf1", "crash", "gpblog", "f1-insider", "grandprix", "espnf1", "skysportsf1", or "all" (default: "all") limit: Maximum number of articles to return (1-50). Default: 10 category: News category to filter by: - "general": All F1 news (default) - "transfers": Driver moves, signings, and rumors - "contracts": Contract renewals, extensions, and negotiations - "technical": Technical updates, upgrades, and developments - "calendar": Race calendar changes and new venues - "regulations": FIA rules, penalties, and investigations - "management": Team leadership and organizational changes filter_text: Optional text to filter articles (searches in title and summary) Examples: "Hamilton", "Ferrari", "Red Bull", "2025" date_from: Optional start date to filter articles (format: "YYYY-MM-DD") date_to: Optional end date to filter articles (format: "YYYY-MM-DD") Returns: NewsResponse: News articles with titles, links, publication dates, summaries, and source information Examples: >>> # Get latest F1 news from all sources >>> news = get_f1_news() >>> # Get news from official F1 website only
>>> f1_news = get_f1_news(source="formula1", limit=20)
>>> # Get driver transfer news
>>> transfers = get_f1_news(category="transfers", limit=15)
>>> # Get transfer news about a specific driver
>>> sainz = get_f1_news(category="transfers", filter_text="Sainz")
>>> # Get technical developments
>>> tech = get_f1_news(category="technical", limit=20)
>>> # Get Ferrari technical news
>>> ferrari_tech = get_f1_news(category="technical", filter_text="Ferrari")
>>> # Get calendar changes
>>> calendar = get_f1_news(category="calendar")
>>> # Get contract news
>>> contracts = get_f1_news(category="contracts")
>>> # Get news for a specific date range
>>> recent = get_f1_news(date_from="2025-10-01", date_to="2025-10-05")
>>> # Get regulation news from FIA
>>> regs = get_f1_news(source="fia", category="regulations") |