Skip to main content
Glama
Machine-To-Machine

Formula One MCP Server (Python)

get_event_info

Retrieve detailed Formula One Grand Prix information by specifying the season year and event name or round number.

Instructions

Get detailed information about a specific Formula One Grand Prix

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearYesSeason year (e.g., 2023)
identifierYesEvent name or round number (e.g., 'Monaco' or '7')

Implementation Reference

  • The main handler function that executes the get_event_info tool logic, validating inputs, fetching event data from fastf1, serializing it to JSON-compatible dict, and handling errors.
    def get_event_info(year: Any, identifier: str) -> dict[str, Any]: """ Get information about a specific Formula One event. Args: year (int or str): The year of the F1 season identifier (str): Event name or round number Returns: dict: Status and event data or error information """ try: # Validate year year_int = validate_year(year) # Validate identifier if not identifier or not isinstance(identifier, str | int): raise ValueError("Invalid event identifier") logger.debug(f"Fetching event info for {year_int}, event: {identifier}") # Identifier can be event name or round number if str(identifier).isdigit(): event = fastf1.get_event(year_int, int(identifier)) else: event = fastf1.get_event(year_int, str(identifier)) # Convert Series to dict and clean non-serializable values event_dict = event.to_dict() clean_dict = {k: json_serial(v) for k, v in event_dict.items()} logger.info( f"Successfully retrieved event info for {year_int}, event: {identifier}" ) return {"status": "success", "data": clean_dict} except Exception as e: logger.error(f"Error retrieving event info: {str(e)}", exc_info=True) return { "status": "error", "message": f"Failed to retrieve event information: {str(e)}", }
  • Input schema definition for the get_event_info tool, specifying parameters year (number) and identifier (string). Included in the list_tools() registration.
    types.Tool( name="get_event_info", description=( "Get detailed information about a specific Formula One Grand Prix" ), inputSchema={ "type": "object", "properties": { "year": { "type": "number", "description": "Season year (e.g., 2023)", }, "identifier": { "type": "string", "description": ( "Event name or round number (e.g., 'Monaco' or '7')" ), }, }, "required": ["year", "identifier"], }, ),
  • Registration and dispatch logic in the main f1_tool handler, validating arguments and calling the get_event_info function.
    elif name == "get_event_info": if "identifier" not in arguments: raise ValueError("Missing required argument: identifier") identifier = str(arguments["identifier"]) result = get_event_info(sanitized_args["year"], identifier)
  • Import of the get_event_info handler function from f1_data module.
    from .f1_data import ( analyze_driver_performance, compare_drivers, get_championship_standings, get_driver_info, get_event_info, get_event_schedule, get_session_results, get_telemetry, )

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

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