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

TableJSON Schema
NameRequiredDescriptionDefault
yearYesSeason year (e.g., 2023)

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)
Install Server

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