Skip to main content
Glama
Surya96t

fastf1-mcp-server

fastf1-mcp

CI

Un servidor MCP que expone datos de Fórmula 1 a asistentes de IA a través de la biblioteca FastF1. Pregúntale a Claude (o a cualquier cliente compatible con MCP) sobre resultados de carreras, tiempos de vuelta, telemetría, clasificaciones y más.


Características

  • 21 herramientas que cubren clasificaciones, resultados de carreras, tiempos de vuelta, telemetría, paradas en boxes y clasificación

  • 4 recursos MCP para datos de referencia de calendario, pilotos, constructores y circuitos

  • 5 prompts guiados para resúmenes de carreras, análisis de clasificación, análisis profundo de estrategias y previas de fin de semana

  • Caché de sesión LRU segura para asincronía: las consultas repetidas son instantáneas tras la primera carga

  • Muestreo de telemetría basado en distancia: grandes conjuntos de datos sin procesar comprimidos a ≤ 500 puntos

  • Todos los errores se devuelven como diccionarios estructurados: el servidor nunca se bloquea ante una entrada incorrecta


Requisitos

  • Python 3.12+

  • uv (recomendado) o pip


Instalación

Con uv (recomendado)

git clone https://github.com/yourname/fastf1-mcp
cd fastf1-mcp
uv sync

Con pip

pip install fastf1-mcp-server

Ejecución del servidor

# via uv (development)
uv run fastf1-mcp-server

# or directly
python -m fastf1_mcp

Inspector MCP (desarrollo / depuración)

# Option A — official npx inspector
npx @modelcontextprotocol/inspector uv --directory . run fastf1-mcp-server

# Option B — fastmcp wrapper
uv run fastmcp dev inspector -m fastf1_mcp.server --with-editable .

Ambos abren el inspector en http://localhost:6274.


Configuración de Claude Desktop

Añade lo siguiente a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "fastf1": {
      "command": "uv",
      "args": ["run", "fastf1-mcp-server"],
      "cwd": "/absolute/path/to/fastf1-mcp",
      "env": {
        "FASTF1_MCP_LOG_LEVEL": "INFO",
        "FASTF1_MCP_MAX_CACHED_SESSIONS": "10"
      }
    }
  }
}

Reinicia Claude Desktop después de guardar. El nombre del servidor fastf1 aparecerá en el panel de herramientas.


Configuración

Todos los ajustes se leen de variables de entorno con el prefijo FASTF1_MCP_.

Variable

Predeterminado

Descripción

FASTF1_MCP_FASTF1_CACHE_PATH

~/.fastf1_cache

Caché en disco para archivos de sesión de FastF1

FASTF1_MCP_MAX_CACHED_SESSIONS

10

Sesiones máximas mantenidas en memoria (LRU)

FASTF1_MCP_DEFAULT_TELEMETRY_SAMPLES

200

Puntos de muestra de telemetría predeterminados

FASTF1_MCP_MAX_TELEMETRY_SAMPLES

500

Límite máximo de puntos de muestra de telemetría

FASTF1_MCP_LOG_LEVEL

INFO

Nivel de registro de Python


Herramientas

Búsqueda rápida (API de Ergast — 1950-presente)

Herramienta

Descripción

get_schedule

Obtiene el calendario de carreras de F1 para una temporada.

get_driver_standings

Obtiene la clasificación del campeonato de pilotos.

get_constructor_standings

Obtiene la clasificación del campeonato de constructores.

get_driver_info

Obtiene información del piloto.

get_race_results_historical

Obtiene resultados históricos de carreras (antes de 2018 o cuando los datos de sesión no están disponibles).

get_circuit_info

Obtiene información del circuito.

Datos de sesión (FastF1 Live Timing — 2018-presente)

Herramienta

Descripción

get_session_results

Obtiene la clasificación/resultados de la sesión.

get_lap_times

Obtiene todos los tiempos de vuelta de un piloto en una sesión.

get_fastest_laps

Obtiene las vueltas más rápidas en una sesión, una por piloto.

get_race_pace

Calcula el ritmo de carrera promedio para todos los pilotos.

get_stint_analysis

Analiza los stints de neumáticos para una carrera.

get_pit_stops

Obtiene todas las paradas en boxes de una carrera.

get_qualifying_breakdown

Obtiene los resultados de clasificación divididos por Q1/Q2/Q3.

Telemetría (FastF1 Live Timing — 2018-presente)

Herramienta

Descripción

get_lap_telemetry

Obtiene datos de telemetría para una vuelta específica.

compare_telemetry

Compara la telemetría entre dos pilotos en la misma sesión.

get_speed_trap_data

Obtiene datos de trampa de velocidad y velocidad máxima para todos los pilotos en una sesión.

get_sector_times

Obtiene los mejores tiempos de sector y la mejor vuelta teórica para cada piloto.

Utilidad

Herramienta

Descripción

list_events

Lista todos los eventos en una temporada.

list_drivers

Lista todos los pilotos en una temporada, opcionalmente filtrados por un evento específico.

get_cache_status

Comprueba el estado de la caché de sesión en memoria del servidor.

clear_cache

Borra las sesiones cacheadas del almacenamiento en memoria.


Recursos

URI

Descripción

f1://schedule/{year}

Calendario completo de carreras para una temporada

f1://drivers/{year}

Todos los pilotos que compitieron en una temporada

f1://constructors/{year}

Todos los constructores en una temporada

f1://circuits

Todos los circuitos de F1 (históricos)


Prompts

Prompt

Argumentos

Qué hace

race_recap

year, event

Llama a resultados + vueltas rápidas + paradas en boxes + stints, luego narra la carrera

qualifying_analysis

year, event

Desglose de Q + tiempos de sector + análisis de mejores vueltas

driver_comparison

year, driver1, driver2

Cara a cara a nivel de temporada: clasificaciones, carreras, clasificación

strategy_analysis

year, event

Stints + tiempos de boxes + ritmo de carrera — explica quién ganó la batalla estratégica

weekend_preview

year, event

Detalles del circuito + historia reciente + contexto del campeonato


Ejemplos de consultas (Claude Desktop)

Who won the 2024 Monaco Grand Prix and what was the strategy?
→ use race_recap prompt or call get_session_results + get_stint_analysis

Compare Verstappen and Leclerc's telemetry in 2024 Monaco qualifying
→ compare_telemetry(2024, "Monaco", "Q", "VER", "LEC")

Who had the fastest theoretical lap in 2024 Silverstone qualifying?
→ get_sector_times(2024, "Silverstone", "Q")

Show me the 2024 constructor standings after round 10
→ get_constructor_standings(2024, after_round=10)

Desarrollo

# Install dev dependencies
uv sync --dev

# Run tests
uv run pytest

# Run tests with coverage
uv run pytest --cov=fastf1_mcp

# Lint
uv run ruff check src/

Fuentes de datos y cobertura

Fuente

Cobertura

Usado para

API de Ergast (vía FastF1)

1950 – presente

Clasificaciones, calendarios, resultados históricos, información de circuitos

FastF1 Live Timing

2018 – presente

Tiempos de vuelta, telemetría, clasificación, paradas en boxes, datos de neumáticos

Nota: Los datos de sesión de FastF1 solo están disponibles a partir de 2018. Usa get_race_results_historical para temporadas anteriores.


Licencia

MIT

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/Surya96t/fastf1-mcp'

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