Skip to main content
Glama
rakeshgangwar

Formula One MCP Server

get_event_schedule

Retrieve the Formula One race calendar for a specific season by entering the year. Access event schedules, including race dates and locations, for accurate planning and updates.

Instructions

Get Formula One race calendar for a specific season

Input Schema

NameRequiredDescriptionDefault
yearYesSeason year (e.g., 2023)

Input Schema (JSON Schema)

{ "properties": { "year": { "description": "Season year (e.g., 2023)", "type": "number" } }, "required": [ "year" ], "type": "object" }

Implementation Reference

  • The core handler function that executes the tool logic: fetches the F1 event schedule for the given year using fastf1.get_event_schedule(year), processes the pandas DataFrame into a JSON-serializable list of event dictionaries using json_serial helper, and returns success/error response.
    def get_event_schedule(year): """Get the event schedule for a specified season""" try: year = int(year) schedule = fastf1.get_event_schedule(year) # Convert DataFrame to JSON serializable format result = [] for _, row in schedule.iterrows(): event_dict = row.to_dict() # Clean and convert non-serializable values clean_dict = {k: json_serial(v) for k, v in event_dict.items()} result.append(clean_dict) return {"status": "success", "data": result} except Exception as e: return {"status": "error", "message": str(e), "traceback": traceback.format_exc()}
  • Defines the tool schema including name, description, and input schema requiring a 'year' number parameter for input validation.
    { name: 'get_event_schedule', description: 'Get Formula One race calendar for a specific season', inputSchema: { type: 'object', properties: { year: { type: 'number', description: 'Season year (e.g., 2023)', }, }, required: ['year'], }, },
  • Registers the get_event_schedule function (along with others) in a dictionary used by main() to dynamically invoke the correct handler based on sys.argv[1].
    functions = { "get_event_schedule": get_event_schedule, "get_event_info": get_event_info, "get_session_results": get_session_results, "get_driver_info": get_driver_info, "analyze_driver_performance": analyze_driver_performance, "compare_drivers": compare_drivers, "get_telemetry": get_telemetry, "get_championship_standings": get_championship_standings }
  • MCP tool call handler case that proxies the request to the Python implementation by calling executePythonFunction with the tool name and year argument.
    case 'get_event_schedule': { const typedArgs = args as EventScheduleArgs; result = await executePythonFunction('get_event_schedule', [typedArgs.year.toString()]); break;
  • Helper utility function used in get_event_schedule to serialize pandas/numpy/datetime objects into JSON-compatible formats.
    def json_serial(obj): """Helper function to convert non-JSON serializable objects to strings""" if isinstance(obj, (datetime, pd.Timestamp)): return obj.isoformat() if isinstance(obj, (np.integer, np.floating)): return float(obj) if isinstance(obj, np.floating) else int(obj) if pd.isna(obj): return None return str(obj)

Other Tools

Related Tools

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

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