使用说明
F1 MCP服务器
该存储库包含两个全面的MCP(模型上下文协议)服务器,用于访问一级方程式赛车数据:
- FastF1 MCP服务器 (
fastf1_mcp_server.py)-使用FastF1库的高级服务器 - 基本F1 MCP服务器 (
f1_mcp_server.py)-使用Ergast API的简单服务器
FastF1 MCP服务器(推荐)
使用 FastF1库 它提供了对F1数据的完整访问,包括遥测、天气、赛道状态和高级分析。
特性
- 完整会话数据:练习、资格赛和比赛
- 遥测数据:速度、油门、刹车、档位、转速数据
- 天气信息:温度、湿度、风况
- 轨道状态:安全车时段、VSC、危险信号
- 搭接分析:详细的圈速、扇区、化合物
- 冠军榜:车手和建造师锦标赛
- 历史数据:1950年至今的结果
- 高级分析:驱动程序比较、统计数据、性能指标
- 缓存系统:使用本地缓存优化数据检索
安装
先决条件
- Python 3.8或更高版本
- 所需的Python包:
pip install fastf1 pandas numpy matplotlib scipy tqdm requests urllib3
设置
-
安装依赖项:
pip install -r requirements.txt -
运行服务器:
python fastf1_mcp_server.py
可用工具
核心会话工具
get_event_schedule-获取F1赛事日历get_session-加载特定会话数据get_session_results-获取会话结果
遥测和搭接数据
get_lap_times-获取驾驶员圈速get_telemetry-获取详细的遥测数据
天气和赛道状态
get_weather_data-获取天气状况get_track_status-获取跟踪状态更改
驾驶员和车队信息
get_driver_info-获取驾驶员详细信息get_team_info-获取团队信息
冠军榜
get_driver_standings-获得车手冠军get_constructor_standings-获得建筑商冠军
历史数据
get_historical_results-获取历史比赛结果get_lap_records-获取赛道圈记录
高级分析
calculate_driver_statistics-计算驾驶员统计数据compare_drivers-比较两位驾驶员的表现
配置
configure_cache-配置缓存设置get_cache_info-获取缓存信息
使用示例
{
"name": "get_session",
"arguments": {
"year": 2024,
"gp": "Monaco",
"session": "R"
}
}
{
"name": "get_telemetry",
"arguments": {
"year": 2024,
"gp": "Monaco",
"session": "R",
"driver": "VER",
"lap": 10
}
}
支持的会话
- FP1、FP2、FP3:自由练习课程
- Q:资格
- 平方:Sprint资格赛
- R:种族
- 冲刺:短跑比赛
支持的驱动程序代码
- 版本作者 : Max Verstappen
- 火腿:刘易斯·汉密尔顿
- 英雄联盟欧洲冠军联赛查尔斯·勒克莱尔
- SAI:卡洛斯·塞恩斯
- 或非:兰多·诺里斯
- 俄语:乔治·拉塞尔
- 每塞尔吉奥·佩雷斯
- 自动亮度优化费尔南多·阿隆索
- 还有更多。..
基本F1 MCP服务器
一个简单的MCP服务器,使用Ergast API提供基本的F1数据访问。
特性
- 驾驶员信息:获取任何F1赛季的全面车手名单
- 比赛结果:检索特定车手和赛季的详细比赛结果
- 统计分析:计算平均职位和绩效指标
- MCP合规性:完全符合MCP协议版本2024-11-05
- 稳健的错误处理:内置重试机制和错误响应
安装
先决条件
- Python 3.7或更高版本
- 所需的Python包:
pip install requests urllib3
设置
python f1_mcp_server.py
可用工具
get_drivers-获取一个赛季的车手名单get_driver_results-获取车手比赛结果calculate_average_position-计算平均完成位置
MCP客户端集成
两台服务器都支持标准的MCP协议方法:
initialize-初始化服务器连接tools/list-列出可用工具tools/call-执行工具功能resources/list-列出可用资源resources/read-读取资源内容
配置示例
添加到MCP客户端配置中:
{
"mcpServers": {
"fastf1": {
"command": "python",
"args": ["/path/to/DATA_F1_MCP/fastf1_mcp_server.py"]
}
}
}
可用资源
FastF1服务器
f1://schedule/current-当前赛季时间表f1://standings/drivers-车手冠军榜f1://standings/constructors-建筑商锦标赛排名
基本服务器
f1://drivers/2025-本赛季车手名单
API数据源
FastF1服务器
- FastF1库:来自官方来源的F1综合数据
- 埃加斯特API:历史数据和锦标赛信息
- F1官方API:实时数据和遥测
基本服务器
- 埃加斯特API1950年至今的F1历史数据
错误处理
两台服务器都实现了全面的错误处理:
- 网络错误:使用指数回退自动重试
- API错误:优雅地处理API速率限制和服务器错误
- 数据错误:丢失或无效数据的验证和回退
- MCP错误:标准JSON-RPC错误响应
常见错误代码
-32700:解析错误(JSON无效)-32601:未找到方法-32602:无效参数-32603:内部错误
发展
项目结构
DATA_F1_MCP/
├── fastf1_mcp_server.py # Advanced FastF1-based server
├── f1_mcp_server.py # Basic Ergast API server
├── requirements.txt # Python dependencies
├── setup.py # Package setup
├── examples.py # Usage examples
├── mcp-config.json # MCP configuration template
├── temp/ # Temporary files
└── README.md # This file
测试
要手动测试服务器,请执行以下操作:
# Test FastF1 server
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}}' | python fastf1_mcp_server.py
# Test basic server
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}}' | python f1_mcp_server.py
例子
运行示例以查看使用模式:
python examples.py
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
这个项目是开源的。请检查存储库以了解许可证详细信息。
致谢
支持
对于问题、疑问或贡献,请使用GitHub存储库的问题跟踪器。