get_event_info
Retrieve detailed Formula One Grand Prix information by specifying the season year and event name or round number using this tool for comprehensive race data.
Instructions
Get detailed information about a specific Formula One Grand Prix
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | Event name or round number (e.g., 'Monaco' or '7') | |
| year | Yes | Season year (e.g., 2023) |
Implementation Reference
- src/f1_mcp_server/f1_data.py:143-183 (handler)Core handler function implementing get_event_info tool logic using FastF1 API to fetch and serialize event data.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)}", }
- src/f1_mcp_server/server.py:298-318 (schema)MCP tool schema definition for get_event_info, specifying input parameters and description.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"], },
- src/f1_mcp_server/server.py:165-169 (registration)Tool dispatch/registration logic in the main MCP call_tool handler, validating inputs 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)
- f1-messenger-app/mcp-bridge.py:105-106 (registration)Registration of get_event_info in the MCP bridge's tool function mapping.'get_event_info': get_event_info, 'get_session_results': get_session_results,
- src/f1_mcp_server/server.py:29-29 (registration)Import of get_event_info function in the MCP server module.get_event_info,