Skip to main content
Glama

Pitstop

intervals.py2.85 kB
from clients.openf1_client import OpenF1Client from typing import Optional from models.live import IntervalsResponse, IntervalData # Initialize OpenF1 client openf1_client = OpenF1Client() def get_live_intervals( year: int, country: str, session_name: str = "Race", driver_number: Optional[int] = None ) -> IntervalsResponse: """ Get real-time gaps and intervals between drivers from OpenF1. Args: year: Season year (2023+, OpenF1 data availability) country: Country name (e.g., "Monaco", "Italy", "United States") session_name: Session name - 'Race', 'Qualifying', 'Sprint', 'Practice 1/2/3' (default: 'Race') driver_number: Optional filter by driver number (1-99) Returns: IntervalsResponse with gap to leader and interval to car ahead Example: get_live_intervals(2024, "Monaco", "Race") → All intervals during race get_live_intervals(2024, "Monaco", "Race", 1) → Verstappen's gaps """ # Get meeting and session info meetings = openf1_client.get_meetings(year=year, country_name=country) if not meetings: return IntervalsResponse( session_name=session_name, year=year, country=country, intervals=[], total_data_points=0 ) # Get sessions for this meeting sessions = openf1_client.get_sessions(year=year, country_name=country, session_name=session_name) if not sessions: return IntervalsResponse( session_name=session_name, year=year, country=country, intervals=[], total_data_points=0 ) session = sessions[0] session_key = session['session_key'] # Get intervals data interval_data = openf1_client.get_intervals( session_key=session_key, driver_number=driver_number ) # Convert to Pydantic models intervals = [ IntervalData( date=data['date'], driver_number=data['driver_number'], gap_to_leader=data.get('gap_to_leader'), interval=data.get('interval'), session_key=data['session_key'], meeting_key=data['meeting_key'] ) for data in interval_data ] return IntervalsResponse( session_name=session_name, year=year, country=country, intervals=intervals, total_data_points=len(intervals) ) if __name__ == "__main__": # Test with 2024 Monaco GP print("Testing get_live_intervals with 2024 Monaco GP...") result = get_live_intervals(2024, "Monaco", "Race") print(f"Total data points: {result.total_data_points}") if result.intervals: print(f"First interval: Driver {result.intervals[0].driver_number} - Gap: {result.intervals[0].gap_to_leader}")

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/praneethravuri/pitstop'

If you have feedback or need assistance with the MCP directory API, please join our Discord server