Skip to main content
Glama
Surya96t

fastf1-mcp-server

fastf1-mcp

CI

一个 MCP 服务器,通过 FastF1 库向 AI 助手提供一级方程式 (F1) 数据。您可以向 Claude(或任何兼容 MCP 的客户端)询问有关比赛结果、单圈时间、遥测数据、积分榜等信息。


功能特性

  • 21 个工具,涵盖积分榜、比赛结果、单圈时间、遥测数据、进站记录和排位赛

  • 4 个 MCP 资源,用于获取赛程、车手、车队和赛道参考数据

  • 5 个引导式提示词,用于比赛回顾、排位赛分析、策略深度解析和周末前瞻

  • 异步安全的 LRU 会话缓存 — 首次加载后,重复查询可瞬间完成

  • 基于距离的遥测采样 — 将大型原始数据集压缩至 ≤ 500 个点

  • 所有错误均以结构化字典形式返回 — 服务器绝不会因输入错误而崩溃


要求

  • Python 3.12+

  • uv (推荐) 或 pip


安装

使用 uv (推荐)

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

使用 pip

pip install fastf1-mcp-server

运行服务器

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

# or directly
python -m fastf1_mcp

MCP Inspector (开发/调试)

# 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 .

两者都会在 http://localhost:6274 打开检查器。


Claude Desktop 配置

将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) 或 %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"
      }
    }
  }
}

保存后重启 Claude Desktop。工具面板中将出现 fastf1 服务器。


配置

所有设置均从带有 FASTF1_MCP_ 前缀的环境变量中读取。

变量

默认值

描述

FASTF1_MCP_FASTF1_CACHE_PATH

~/.fastf1_cache

FastF1 会话文件的磁盘缓存路径

FASTF1_MCP_MAX_CACHED_SESSIONS

10

内存中保留的最大会话数 (LRU)

FASTF1_MCP_DEFAULT_TELEMETRY_SAMPLES

200

默认遥测采样点数

FASTF1_MCP_MAX_TELEMETRY_SAMPLES

500

遥测采样点数上限

FASTF1_MCP_LOG_LEVEL

INFO

Python 日志级别


工具

快速查询 (Ergast API — 1950 年至今)

工具

描述

get_schedule

获取某赛季的 F1 赛历。

get_driver_standings

获取车手年度积分榜。

get_constructor_standings

获取车队年度积分榜。

get_driver_info

获取车手信息。

get_race_results_historical

获取历史比赛结果(2018 年之前或会话数据不可用时)。

get_circuit_info

获取赛道信息。

会话数据 (FastF1 实时计时 — 2018 年至今)

工具

描述

get_session_results

获取会话分类/结果。

get_lap_times

获取某位车手在某场会话中的所有单圈时间。

get_fastest_laps

获取某场会话中的最快圈速(每位车手一圈)。

get_race_pace

计算所有车手的平均比赛配速。

get_stint_analysis

分析某场比赛的轮胎停站策略。

get_pit_stops

获取某场比赛的所有进站记录。

get_qualifying_breakdown

获取按 Q1/Q2/Q3 分段的排位赛结果。

遥测数据 (FastF1 实时计时 — 2018 年至今)

工具

描述

get_lap_telemetry

获取特定单圈的遥测数据。

compare_telemetry

比较同一会话中两位车手的遥测数据。

get_speed_trap_data

获取某场会话中所有车手的测速陷阱和最高速度数据。

get_sector_times

获取每位车手的最佳分段时间和理论最佳单圈。

实用工具

工具

描述

list_events

列出某赛季的所有赛事。

list_drivers

列出某赛季的所有车手,可选择筛选特定赛事。

get_cache_status

检查服务器内存中会话缓存的状态。

clear_cache

清除内存存储中的缓存会话。


资源

URI

描述

f1://schedule/{year}

某赛季的完整赛历

f1://drivers/{year}

某赛季参赛的所有车手

f1://constructors/{year}

某赛季的所有车队

f1://circuits

所有 F1 赛道(历史总计)


提示词

提示词

参数

功能

race_recap

year, event

调用结果 + 最快圈速 + 进站记录 + 停站分析,然后叙述比赛过程

qualifying_analysis

year, event

Q 分段 + 分段计时 + 最快圈速分析

driver_comparison

year, driver1, driver2

赛季级对比:积分榜、比赛、排位赛

strategy_analysis

year, event

停站 + 进站时机 + 比赛配速 — 解释谁赢得了策略博弈

weekend_preview

year, event

赛道详情 + 近期历史 + 冠军争夺背景


查询示例 (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)

开发

# 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/

数据源与覆盖范围

数据源

覆盖范围

用途

Ergast API (通过 FastF1)

1950 年至今

积分榜、赛历、历史结果、赛道信息

FastF1 实时计时

2018 年至今

单圈时间、遥测、排位赛、进站、轮胎数据

注意: FastF1 会话数据仅从 2018 年起可用。对于更早的赛季,请使用 get_race_results_historical

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