F1-MCP-Server 一级方程式赛车数据服务器

@Machine-To-Machine/f1-mcp-server
0 Stars 379 次浏览 Machine-To-Machine 更新于 2026-08-23

该项目实现了一个模型上下文协议(MCP)服务器,通过Python的FastF1库提供一级方程式赛车数据。受现有TypeScript服务器的启发,它通过FastF1以原生Python的方式提供了类似的F1数据功能。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

一级方程式 MCP 服务器

PyPI version
Python Versions

smithery badge

这是一个提供一级方程式赛车数据的模型上下文协议 (MCP) 服务器。此包提供了查询 F1 数据的各种工具,包括赛事日程、车手信息、遥测数据和比赛结果。

特性

  • 赛事日程:访问任何赛季的一级方程式完整赛历
  • 赛事信息:关于特定大奖赛事件的详细数据
  • 会话结果:来自比赛、排位赛、冲刺赛和练习赛的全面结果
  • 车手信息:访问特定会话的车手详情
  • 性能分析:通过圈速统计分析车手的表现
  • 车手比较:在同一会话中比较多个车手的表现
  • 遥测数据:访问特定圈数的详细遥测数据
  • 锦标赛排名:查看任何赛季的车手和制造商排名

安装

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 f1-mcp-server:

npx -y @smithery/cli install @Machine-To-Machine/f1-mcp-server --client claude

手动安装

uv 管理的 Python 项目中,通过以下方式添加依赖:

uv add f1-mcp-server

或者,对于使用 pip 进行依赖管理的项目:

pip install f1-mcp-server

要在您的项目中运行服务器:

uv run f1-mcp-server

或者,在隔离环境中全局运行它:

uvx f1-mcp-server

直接从源代码安装:

git clone https://github.com/Machine-To-Machine/f1-mcp-server.git
cd f1-mcp-server
pip install -e .

使用方法

命令行

服务器可以在两种模式下运行:

标准 I/O 模式(默认):

uvx run f1-mcp-server

SSE 传输模式(用于 Web 应用程序):

uvx f1-mcp-server --transport sse --port 8000

Python API

from f1_mcp_server import main

# Run the server with default settings
main()

# Or with SSE transport settings
main(port=9000, transport="sse")

API 文档

服务器通过 MCP 提供了以下工具:

工具名称 描述
get_event_schedule 获取特定赛季的一级方程式赛历
get_event_info 获取关于特定一级方程式大奖赛的详细信息
get_session_results 获取特定一级方程式会话的结果
get_driver_info 获取关于特定一级方程式车手的信息
analyze_driver_performance 分析一级方程式会话中车手的表现
compare_drivers 比较多名一级方程式车手之间的表现
get_telemetry 获取特定一级方程式圈数的遥测数据
get_championship_standings 获取一级方程式锦标赛排名

请参阅 FastF1 文档以获取有关底层数据的详细信息:FastF1 文档

依赖项

  • anyio (>=4.9.0)
  • click (>=8.1.8)
  • fastf1 (>=3.5.3)
  • mcp (>=1.6.0)
  • numpy (>=2.2.4)
  • pandas (>=2.2.3)
  • uvicorn (>=0.34.0)

开发

设置开发环境

git clone https://github.com/Machine-To-Machine/f1-mcp-server.git
cd f1-mcp-server
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"

代码质量

# Run linting
uv run ruff check .

# Run formatting check
uv run ruff format --check .

# Run security checks
uv run bandit -r src/

贡献指南

  1. 分叉仓库
  2. 创建一个特性分支: git checkout -b feature-name
  3. 提交你的更改: git commit -am 'Add some feature'
  4. 推送到分支: git push origin feature-name
  5. 提交一个拉取请求

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

作者

  • Machine To Machine

致谢

本项目利用了 FastF1,这是一个用于访问 Formula 1 数据的优秀 Python 包。我们感谢其维护者和贡献者。

本项目灵感来源于 rakeshgangwar/f1-mcp-server,该项目是用 TypeScript 编写的。f1_data.py 模块主要改编自他们的源代码。

相关 MCP 服务