F1数据查询工具

一个本地MCP服务器,为Claude(或任何MCP兼容的AI客户端)提供对2018年以来F1比赛数据的访问,支持自然语言查询并获得基于真实遥测、计时和策略数据的回答。

  • by aashnakunk
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 aashnakunk/fastf1-mcp

使用说明

fastf1 mcp

本地MCP服务器,允许克劳德(或任何兼容MCP的AI客户端)访问一级方程式比赛数据。从2018年开始加载任何会话,用自然语言提问,并获得真实遥测、计时和策略数据支持的答案。

没有托管API。没有数据凭据。所有内容都在您的机器上本地运行。

安装

pip install fastf1-mcp

与Claude Desktop一起使用

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "f1": {
      "command": "fastf1-mcp"
    }
  }
}

重新启动克劳德桌面。然后问:

与Claude Code一起使用

claude mcp add f1 fastf1-mcp

然后在任何Claude Code会话中,问:

“加载2024年摩纳哥资格赛,告诉我谁获得了杆位”

“比较Verstappen和Leclerc在银石赛道的比赛速度”

“汉密尔顿在蒙扎的进站策略是什么?”

它的作用

MCP服务器公开了17个工具,Claude可以调用这些工具来获取特定的F1数据:

工具 它的答案
load_session 加载比赛、资格赛或练习赛
season_calendar “2024年有哪些比赛?”
race_result “谁赢了?”“领奖台是什么?”
qualifying_result “谁拿到杆位了?”,“Q3次?”
lap_times “勒克莱尔的表现有多稳定?”
fastest_laps “谁跑得最快?”
pit_stops “大家什么时候打的?”
tire_stints “他们用了什么化合物?”
driver_telemetry “Verstappen的最高速度是多少?”
head_to_head “比较诺里斯与皮亚斯特里”
weather “是湿的吗?”
session_summary “给我一个关于比赛的概述”
track_evolution “赛道变快了吗?”
overtake_analysis “谁获得的职位最多?”
identify_driver “44号车是谁?”
list_drivers “谁参加了这次会议?”
session_status “加载了哪个会话?”

模糊输入归一化

你不需要知道确切的驾驶员代码或种族名称。服务器解析自然语言:

你说 决心
“勒克莱尔”、“查尔斯”、“LEC”、“16”。查尔斯·勒克莱尔。
“checo”、“Perez”、“11” 塞尔吉奥·佩雷斯(PER)
“spa” 比利时大奖赛
“蒙扎” 意大利大奖赛
“银石” 英国大奖赛
“资格赛”、“quali”、“Q” 资格赛环节

运作原理

You ask Claude: "Who won the 2024 Bahrain race?"
     │
     ▼
Claude picks tool: load_session(year=2024, race="Bahrain", session="race")
     │
     ▼
fastf1-mcp loads data via FastF1 (cached locally after first download)
     │
     ▼
Claude picks tool: race_result()
     │
     ▼
fastf1-mcp returns structured JSON with the classification
     │
     ▼
Claude answers: "Verstappen won from Perez and Sainz..."
  • 第一负载 从F1服务器下载会话的时间(约10-30秒)
  • 每次装载后 是即时的(缓存在 ~/.cache/f1_mcp/)
  • 没有API密钥 F1数据所需——这是通过FastF1的公共计时数据
  • Claude只看到小的JSON工具结果,而不是原始遥测数据转储

数据覆盖

  • 季节: 2018年以后(FastF1限制)
  • 会议: 比赛、资格赛、冲刺、练习(FP1/FP2/FP3)
  • 数据: 结果、圈速、进站、轮胎时间、遥测(速度/油门/刹车)、天气、赛道信息

测试

pip install fastf1-mcp[test]

# Unit tests (no network, instant)
pytest tests/ -m "not integration" -v

# Full suite (downloads F1 data on first run, cached after)
pytest tests/ -v

133个测试,涵盖规范化、会话管理、工具执行和MCP协议(stdio JSON-RPC握手、工具列表、工具调用)。

用作Python库

您也可以在没有MCP的情况下直接导入包:

from f1_mcp.session import SessionManager

mgr = SessionManager()
mgr.load(2024, "Monaco", "qualifying")

print(mgr.qualifying_result())
print(mgr.lap_times("Leclerc"))
print(mgr.head_to_head("Verstappen", "Norris"))

许可证

麻省理工学院