](https://mseep.ai/app/panth1823-formula1-mcp)
Formula 1 MCP服务器! 🏎️💨
基于TypeScript的一级方程式MCP服务器,带来刺激 实时和历史F1赛车数据 通过模型上下文协议直接到达您的指尖。
API状态: ✅ 21/22个OpenF1端点+10个Ergast端点工作\ 上次测试时间: 2025年11月10日\ 活动工具: 29个MCP工具(所有历史数据免费,直播需要付费的OpenF1帐户)\ 访问权限: 🎉 无需认证 历史数据!
特性
- ✅ 免费历史数据访问 -无需身份验证!
- ✅ F1综合数据 -会话、驾驶员、天气、遥测(2023年通过OpenF1发布)
- ✅ 遗留数据 -历史种族信息(1950年至今,通过Ergast API提供)
- ✅ 通过标准化的REST API访问F1会话数据
- ✅ 实时遥测数据(车速、油门、刹车、转速、DRS、档位)
- ✅ 车手和制造商排名
- ✅ 天气数据(空气/轨道温度、湿度、风、降雨量)
- ✅ 带坐标的电路信息
- ✅ 带有音频URL的团队无线电通信
- ✅ 比赛控制信息、旗帜和处罚
- ✅ 停车数据和轮胎策略
- ✅ 圈数和扇区分析
- ✅ 位置跟踪和间隔
- ⚠️ 直播 (MQTT)-需要付费的OpenF1帐户(当前已禁用)
📊 API访问和定价
什么是免费的?(无需帐户)✅
所有历史数据都是免费的! 这包括:
- ✅ 2023年至今的所有会议(OpenF1)
- ✅ 1950年至今的所有种族(Ergast)
- ✅ 遥测、圈速、位置、进站
- ✅ 团队无线电录音、比赛控制信息
- ✅ 天气数据、驾驶员信息、超车
- ✅ Beta功能:会话结果、起始网格
什么需要付费帐户? ⚠️
仅在直播比赛期间进行实时流媒体播放:
- ❌ MQTT WebSocket流(实时更新)
- ❌ F1活动期间的实时数据
- 📝 申请付费访问 如有需要
注: 在没有付费帐户(待测试)的情况下,REST API端点可能仍在比赛周末为延迟/最近的数据工作。
有关详细的端点测试结果,请参阅 OPENF1_API_ACCESS_REPORT.md.
入门指南
安装
- 克隆仓库:
git clone https://github.com/Panth1823/formula1-mcp
cd formula1-mcp- 安装:
npm install- 构建:
npm run build就是这样!历史数据不需要API密钥或身份验证。
用法
添加到您的Claude Desktop配置中:
{
"mcpServers": {
"formula1": {
"command": "node",
"args": ["
/build/index.js"],
"cwd": "
",
"enabled": true
}
}
}配置位置:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
可用工具
🏎️ 实时数据工具
这些工具在F1活动时段(比赛周末)返回实时数据。当没有会话处于活动状态时,它们会返回空数组或最后可用的数据。
注: 实时MQTT流需要付费的OpenF1帐户。比赛周末期间的REST API访问可能不付费(待测试)。
1. getLiveCarData
获取所有驾驶员的汽车遥测数据(速度、油门、刹车、转速、DRS、档位)。
参数: 无\ 退货: 汽车遥测数据阵列(如果没有活动会话,则为空)\ 免费访问: ⚠️ 将在下一个比赛周末进行测试
2. getLivePositions
获取当前赛道位置和差距。
参数: 无\ 退货: 有间隙的位置数据数组(如果没有活动会话,则为空)\ 免费访问: ⚠️ 将在下一个比赛周末进行测试
3. getLiveRaceControl
获取最近的比赛控制信息(旗帜、处罚、安全车)。
参数: 无\ 退货: 种族控制消息数组\ 数据来源: MQTT流(实时)或REST API(回退)
4. getLiveTeamRadio
通过音频URL获取最近的团队无线电通信。
参数: 无\ 退货: 团队无线电信息阵列\ 数据来源: MQTT流(实时)或REST API(回退)
5. getLiveWeather
获取当前天气状况。
参数: 无\ 退货: 气象数据对象\ 数据来源: MQTT流(实时)或REST API(回退)
6. getStreamingStatus
检查流媒体连接状态和数据可用性。
参数: 无\ 退货: 连接状态和数据计数器
7. startStreaming
手动启动MQTT流连接。
参数: 无\ 要求: MQTT_ENABLED=真实有效的凭据
8. stopStreaming
停止流式传输并清除实时数据缓存。
参数: 无
______________________________________________________________________
历史数据工具
1. getLiveTimingData (增强)
获取当前/最新会话的实时圈速数据。现在活动时使用流媒体!
参数:
- 无需
注: 如果活动,则返回MQTT流中的实时数据,否则使用REST API。如果没有活动的实时会话,则可能返回空。
2. getCurrentSessionStatus
获取当前会话的状态信息。
参数:
- 无需
⚠️ 警告: 此端点可能无法可靠工作。OpenF1 API没有标准 /session_status 终点。
3. getDriverInfo
从OpenF1获取实时驱动程序信息(需要会话上下文)。
参数:
driverId(字符串):驾驶员编号(例如,“1”、“44”、“33”)
注: 对于历史驾驶员数据,请使用 getDriverInformation 相反。
4. getHistoricalSessions ⭐ 关键的
查找历史事件的会话密钥。 你必须先使用这个 得到 session_key 其他工具所需的值。
参数:
year(数字,可选):季节年份(例如2023年、2024年)circuit_short_name(字符串,可选):赛道名称(例如“摩纳哥”、“银石”、“蒙扎”)country_name(字符串,可选):国家名称(例如“意大利”、“比利时”)session_name(字符串,可选):会话类型(例如,“比赛”、“资格赛”、“练习1”)
例子: 查找2024年摩纳哥比赛: year=2024, circuit_short_name="Monaco", session_name="Race"
5. getHistoricRaceResults
获取特定历史比赛的比赛结果。
参数:
year(数字):季节年份(例如2023年)round(数字):种族编号(例如1、2、3)
6. getDriverStandings
获得车手总冠军排名。
参数:
year(数字):季节年份(例如2023年)
7. getConstructorStandings
获得建筑商锦标赛积分榜。
参数:
year(数字):季节年份(例如2023年)
8. getLapTimes
获取特定驾驶员的圈速。
参数:
year(数字):季节年份(例如2023年)round(数字):种族编号(例如1、2、3)driverId(string):驱动程序标识符(例如,“max_verstappen”、“lewis_hamilton”)
9. getWeatherData
获取会话的天气数据。
参数:
sessionKey(字符串, 必需):会话标识符来自getHistoricalSessions
退货: 空气/轨道温度、湿度、压力、风速/风向、降雨量
10. getCarData
获取详细的汽车遥测数据。
参数:
driverNumber(字符串, 必需):驾驶员的车牌号(例如“1”、“44”、“33”)sessionKey(字符串, 必需):会话标识符来自getHistoricalSessionsfilters(字符串,可选):附加过滤器(例如,“速度>=300”)
退货: 速度、油门百分比、制动状态、转速、档位、DRS状态(每个会话18K+个数据点)
11. getPitStopData
获取进站信息。
参数:
driverNumber(字符串,可选):驾驶员的车牌号sessionKey(字符串,可选):会话标识符
12. getTeamRadio
获取团队无线电通信。
参数:
sessionKey(字符串, 必需):会话标识符来自getHistoricalSessionsdriverNumber(字符串,可选):要过滤的驾驶员车号
退货: 无线电消息URL和时间戳
13. getRaceControlMessages
获取比赛控制信息(旗帜、事故、安全车时段)。
参数:
sessionKey(字符串, 必需):会话标识符来自getHistoricalSessions
退货: 消息、类别、旗帜(黄色、红色、安全车)、受影响的驾驶员人数
14. getRaceCalendar
获取F1比赛日历。
参数:
year(数字):季节年份(例如2023年)
15. getCircuitInfo
获取详细的电路信息。
参数:
circuitId(字符串):电路标识符(例如“monza”、“spa”)
16. getSeasonList
获取可用的F1赛季列表。
参数:
limit(数字,可选):要返回的季节数
17. getQualifyingResults
获取资格赛结果。
参数:
year(数字):季节年份(例如2023年)round(数字):种族编号(例如1、2、3)
18. getDriverInformation
从Ergast API获取详细的驱动程序信息。
参数:
driverId(string):驱动程序标识符(例如,“max_verstappen”、“lewis_hamilton”)
19. getConstructorInformation
从Ergast API获取详细的构造函数信息。
参数:
constructorId(string):构造函数标识符(例如,“red_bull”、“mercedes”)
20. clearCache
清除F1数据的本地缓存。
参数:
- 无需
数据源
- 直播: OpenF1 MQTT -使用OAuth2进行实时MQTT/WebSocket流式传输
- 实时/最新数据: OpenF1 API -实时遥测、位置、天气(REST)
- 历史数据: 埃加斯特API -完整的F1历史(1950-2024)
重要提示: 埃加斯特API计划在2024赛季后停止更新。2025+替代历史资源计划。
文档
- 快速发送任务_发送消息.md -5分钟内开始直播
- LIVE_DATA_Implement.md -完整的技术文档
- COMPREHENSIVE_TEST_RESULTS.md -API测试结果和验证
- API使用_分析.md -功能使用分析
已知问题
- getCurrentSessionStatus -可能无法可靠工作(端点在官方OpenF1 API中不存在)
- 摩纳哥2024 -返回0个会话(数据可能并非适用于所有电路)
- 短跑比赛 -尚不支持(Ergast端点返回速率限制)
例子
直播(新增!):
- “目前在比赛中的位置是什么?”→ Use
getLivePositions - “向我展示Verstappen的实时遥测数据”→ Use
getLiveCarData - “最新比赛控制信息”→ Use
getLiveRaceControl - “当前天气状况”→ Use
getLiveWeather - “流媒体是否处于活动状态?”→ Use
getStreamingStatus
查找会话:
- “查找2024年巴林大奖赛赛段”→ Use
getHistoricalSessions - “获取2023年摩纳哥资格赛的比赛密钥”→ Use
getHistoricalSessions
历史查询:
- “显示2023年摩纳哥大奖赛成绩”→ Use
getHistoricRaceResults - “获取2024年的当前排名”→ Use
getDriverStandings+getConstructorStandings - “2023年汉密尔顿在银石赛道的圈速”→ Use
getLapTimes
实时数据(需要session_key):
- “银石赛道的天气”→ Use
getHistoricalSessions然后getWeatherData - “Verstappen遥测”→ Use
getCarData带有驾驶员编号和会话密钥 - “团队无线电信息”→ Use
getTeamRadio使用会话密钥
一般信息:
- “显示2024日历”→ Use
getRaceCalendar - “跟我说说刘易斯·汉密尔顿”→ Use
getDriverInformation - “蒙扎赛道信息”→ Use
getCircuitInfo
调试
使用 MCP检查员 用于调试。
测试
该项目包括全面的API测试和真实世界的验证:
# Test OpenF1 API (12 tests)
npm run test:openf1
# Test Ergast API (14 tests)
npm run test:ergast
# Test both APIs (26 tests)
npm run test:apis最新测试结果: ✅ 26/26项测试通过(100%)\ 看 COMPREHENSIVE_TEST_RESULTS.md 查看详细结果。
帮助
- 漏洞? 在这里报告
- 问题?打开一个问题
- 想帮忙吗?提交PR
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
