Skip to main content
Glama
notsedano

Formula One MCP Server

get_driver_info

Retrieve Formula One driver details including performance data and statistics for specific seasons, events, and sessions.

Instructions

Get information about a specific Formula One driver

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearYesSeason year (e.g., 2023)
event_identifierYesEvent name or round number (e.g., 'Monaco' or '7')
session_nameYesSession name (e.g., 'Race', 'Qualifying', 'Sprint', 'FP1', 'FP2', 'FP3')
driver_identifierYesDriver identifier (number, code, or name; e.g., '44', 'HAM', 'Hamilton')

Implementation Reference

  • Core handler function that implements the get_driver_info tool logic. Loads F1 session data using fastf1 library and retrieves specific driver information.
    def get_driver_info(
        year: Any, event_identifier: str, session_name: str, driver_identifier: str
    ) -> dict[str, Any]:
        """
        Get information about a specific Formula One driver.
    
        Args:
            year (int or str): The year of the F1 season
            event_identifier (str): Event name or round number
            session_name (str): Session type (Race, Qualifying, Sprint, etc.)
            driver_identifier (str): Driver number, code, or name
    
        Returns:
            dict: Status and driver information or error information
        """
        try:
            # Validate year
            year_int = validate_year(year)
    
            logger.debug(
                f"Fetching driver info for {year_int}, "
                f"event: {event_identifier}, session: {session_name}, "
                f"driver: {driver_identifier}"
            )
            session = fastf1.get_session(year_int, event_identifier, session_name)
            # Load session without telemetry for faster results
            session.load(telemetry=False)
    
            driver_info = session.get_driver(driver_identifier)
    
            # Convert to JSON serializable format
            driver_dict = driver_info.to_dict()
            clean_dict = {k: json_serial(v) for k, v in driver_dict.items()}
    
            logger.info(f"Successfully retrieved driver info for {driver_identifier}")
            return {"status": "success", "data": clean_dict}
        except Exception as e:
            logger.error(f"Error retrieving driver info: {str(e)}", exc_info=True)
            return {
                "status": "error",
                "message": f"Failed to retrieve driver information: {str(e)}",
            }
  • MCP tool registration in list_tools() including name, description, and JSON schema for input validation.
    types.Tool(
        name="get_driver_info",
        description=("Get information about a specific Formula One driver"),
        inputSchema={
            "type": "object",
            "properties": {
                "year": {
                    "type": "number",
                    "description": "Season year (e.g., 2023)",
                },
                "event_identifier": {
                    "type": "string",
                    "description": (
                        "Event name or round number (e.g., 'Monaco' or '7')"
                    ),
                },
                "session_name": {
                    "type": "string",
                    "description": (
                        "Session name (e.g., 'Race', 'Qualifying', "
                        "'Sprint', 'FP1', 'FP2', 'FP3')"
                    ),
                },
                "driver_identifier": {
                    "type": "string",
                    "description": (
                        "Driver identifier (number, code, or name; "
                        "e.g., '44', 'HAM', 'Hamilton')"
                    ),
                },
            },
            "required": [
                "year",
                "event_identifier",
                "session_name",
                "driver_identifier",
            ],
        },
    ),
  • Dispatch logic in the MCP call_tool handler that invokes the get_driver_info function with validated arguments.
    result = get_driver_info(
        sanitized_args["year"],
        str(arguments["event_identifier"]),
        str(arguments["session_name"]),
        str(arguments["driver_identifier"]),
    )
  • Tool mapping/registration in the MCP bridge application for direct function calls.
    'get_driver_info': get_driver_info,

Latest Blog Posts

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/notsedano/f1-mcp-server'

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