F1数据服务

Open-F1-MCP-Server是一个提供实时和历史F1赛车数据的开源API服务,支持赛道、车手、圈速、进站和超车等数据的查询与分析。

  • by AryaAkman
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 AryaAkman/Open-F1-MCP-Server

使用说明

Open-F1-MCP-服务器

这个项目实现了用于Open Formula 1的MCP服务器

如需更多详细信息,请查阅 Open F1 MCP 服务器的实现

我是一名高中生,想知道我的项目是否受到大家的喜爱和/或被使用。如果你喜欢或使用了这个MCP服务器,请在GitHub上给它点赞并分享给你的朋友们——谢谢!!

阿雅·阿克曼

什么是开放式F1(Formula 1)

开放式一级方程式(赛车) 这是一个提供实时和历史一级方程式赛车数据的开源API。

该API提供了丰富的信息,包括圈速、赛车数据、无线电通讯等。无论你是想创建交互式仪表板、深入分析比赛,还是开发每次你喜爱的车手领先时都会亮起的联网设备,OpenF1都能帮你实现。


工具(截至v1.2版本)

获取会话:

检索F1赛车比赛场次。可按年份、国家、赛道、比赛类型等进行筛选。返回的比赛场次详情包括场次标识符(session_key)、日期、地点和类型。

Parameter	        Description
year		        Filter by year (e.g., 2023, 2024).
country_name	    Filter by country name (e.g., 'Monaco', 'Italy').
circuit_short_name	Filter by circuit short name (e.g., 'Monza', 'Monaco').
session_name    	Filter by session name (e.g., 'Race', 'Qualifying', 'Sprint').
session_key	    	Get specific session by its unique session_key.
date_start	    	Filter by start date (ISO format: YYYY-MM-DD). Supports filters like >= and <=.
Other filters		session_type, location, country_code, meeting_key, gmt_offset

获取驱动程序:

检索驾驶员信息。可以获取所有当前驾驶员的信息,或者通过会话密钥进行过滤,以获取参与特定会话的驾驶员。返回的驾驶员详细信息包括姓名、编号、车队、国家和头像URL。

Parameter	    	Description
session_key	    	Optional. Filter drivers by session_key to get participants from a specific session.
driver_number	   	Optional. Filter by driver number (e.g., 1, 44, 16).
team_name        	Optional. Filter by team name (e.g., 'Red Bull Racing', 'Ferrari').

获取圈数:

检索特定比赛、车手和圈次的圈数据。返回详细的圈次信息,包括圈时间、分段时间、持续时间和位置。

Parameter	    	Description
session_key	    	Required for meaningful results. Filter by the unique session key.
driver_number	   	Optional. Filter by driver number (e.g., 1, 44, 16).
lap_number	    	Optional. Filter by a specific lap number.

获取进站信息(或:获取加油/维修站信息)

检索特定会话中的进站数据。返回详细的进站信息,包括进站时长、圈数和计时。

Parameter	    	Description
session_key	        Required for meaningful results. Filter by the unique session key.
driver_number		Optional. Filter by driver number (e.g., 1, 44, 16).
pit_duration		Optional. Upper bound for pit duration in seconds (e.g., 30.0 for stops under 30 seconds).

获取超车信息(或:记录超车事件)

获取超车数据,显示驾驶员之间的位置变化。超车指的是一个驾驶员(超车驾驶员)与另一个驾驶员(被超车驾驶员)交换位置。返回的信息包括涉及的驾驶员、圈数以及事件发生的时间。

Parameter	                Description
session_key	    	        Required for meaningful results. Filter by the unique session key.
overtaking_driver_number    Optional. Filter by the driver number of the driver who performed the overtake (e.g., 1, 44).
overtaken_driver_number		Optional. Filter by the driver number of the driver who was overtaken (e.g., 16, 63).

安装说明:

1. 安装依赖项:

在bash中使用pip安装mcp和httpx


2. 添加/更新Claude桌面配置(claude_desktop_config.json):

{
  "mcpServers": {
    "Open-F1": {
      "command": "python",
      "args": ["/path/to/OpenF1MCPServer.py"]
    }
  }
}

3. 重启Claude桌面应用并验证安装

前往Claude桌面版 -> 文件 -> 设置 -> 开发者

在屏幕右侧,查找“本地MCP服务器”下并进行验证

  • “Open-F1”亮相
  • 该状态为“运行中”(以蓝色背景突出显示)

使用示例

以下示例提示可以提供关于如何利用此MCP服务器的思路

  • 与会话(比赛)相关的使用示例

    • “给我展示2024年所有的F1赛事”

    • “获取2023年摩纳哥站比赛详情”

  • 与驱动程序相关的使用示例

    • “谁在会话9158中进行了驾驶?”(使用会话密钥)

    • “给我展示2024年蒙扎大奖赛中所有法拉利车队的车手”

  • 与圈次信息相关的使用示例

    • “获取2024年摩纳哥大奖赛中所有车手的第10圈数据”

    • “马克斯·维斯塔潘在上一场比赛中的最快圈速是多少?”

    • “比较第9158场次中,1号车手和44号车手在第一圈的各赛段用时”

  • 与进站(Pit Stop)相关的使用示例

    • “给我展示2025年新加坡大奖赛的所有进站情况”

    • “在第9158场比赛中为驾驶员1进行进站维修”

    • “找出上一场比赛中所有在25秒以内完成的进站”

    • “2025年摩纳哥大奖赛中,哪位车手的进站换胎速度最快?”

    • “比较红牛车队和法拉利车队车手的进站时间”

    • “显示2025年新加坡站所有超过30秒的进站时间”

  • 与超车相关的使用示例

    • “给我展示2024年摩纳哥大奖赛的所有超车瞬间”

    • “在9158次会话中,驾驶员1超车了多少次?”

    • “上一场比赛中是谁超越了44号车手?”

    • “给我显示所有涉及16号车手的超车行为”

    • “在9158场比赛中,哪一圈的超车次数最多?”

    • “显示驾驶员1和16之间的所有比赛”(可以使用两个参数)


服务器处理对OpenF1的API调用,并返回格式化数据,供Claude解析并展示给您