F1-MCP-Server 一级方程式赛车数据服务器
该项目实现了一个模型上下文协议(MCP)服务器,通过Python的FastF1库提供一级方程式赛车数据。受现有TypeScript服务器的启发,它通过FastF1以原生Python的方式提供了类似的F1数据功能。
服务介绍
一级方程式 MCP 服务器
这是一个提供一级方程式赛车数据的模型上下文协议 (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/
贡献指南
- 分叉仓库
- 创建一个特性分支:
git checkout -b feature-name - 提交你的更改:
git commit -am 'Add some feature' - 推送到分支:
git push origin feature-name - 提交一个拉取请求
许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
作者
- Machine To Machine
致谢
本项目利用了 FastF1,这是一个用于访问 Formula 1 数据的优秀 Python 包。我们感谢其维护者和贡献者。
本项目灵感来源于 rakeshgangwar/f1-mcp-server,该项目是用 TypeScript 编写的。f1_data.py 模块主要改编自他们的源代码。