mcpField
E
esports

esports

github.com/machina-sports其他261226 次安装今天更新
代码仓库

关于 esports

用于从免 API 密钥、免注册的公开来源获取电竞数据的技能。它涵盖 OpenDota 的 Dota 2 数据和 Leaguepedia Cargo 的《英雄联盟》电竞数据,并说明查询限流与分页方式。

主要功能

  1. 01Dota 2 比赛与战队数据
  2. 02Dota 2 联赛列表
  3. 03Leaguepedia 赛事查询
  4. 04Python 与命令行访问
  5. 05限流与分页说明

适用场景

  1. 01查看近期 Dota 2 职业比赛
  2. 02查询 Dota 2 战队或联赛
  3. 03查询 LoL 赛事和比赛表
  4. 04翻查较早的 Dota 2 比赛

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/machina-sports/sports-skills --skill esports

安装后在 Claude Code 中输入/esports确认已加载。

详细介绍

电竞数据

无需密钥,数据来自公开来源。无需 API 密钥,也无需注册。

  • Dota 2 → OpenDota(api.opendota.com)。返回真实 JSON。免费额度约为每分钟 60 次请求。
  • 《英雄联盟》电竞赛事 → Leaguepedia Cargo(lol.fandom.com)。返回结构化数据行。遵循 CC-BY-SA 许可——重用数据时请注明 Leaguepedia。

重要提示

  • 只有 Dota 2 提供比赛、战队和联赛数据(OpenDota)。LoL 使用 Leaguepedia Cargo。
  • **Leaguepedia 的速率限制非常严格。**触发限流时,HTTP 状态码为 200,但响应正文中会返回错误(Leaguepedia API error: ...),而不是 4xx 错误。结果会缓存约 30 分钟;请勿频繁请求。带有 order_by 的查询每次都会返回该限流错误正文,因此请勿在 lol_cargo_query 中使用 order_by,而应自行对数据行排序。
  • OpenDota 不支持日期筛选。get_pro_matches 返回最新的职业比赛(每次最多 100 场)。要获取更早的比赛,请将响应中的 next_less_than_match_id 作为 less_than_match_id 传入。
  • **匹配 Dota 战队时请使用 team_id,不要使用名称。**OpenDota 中有些记录的名称仅大小写不同(mouz,ID 为 161707,来自 2013 年;MOUZ,ID 为 9338413,是现在的战队)。
  • **这里不提供赔率。**无需密钥即可获取的电竞博彩公司赔率目前不可用。如需隐含概率信号,请使用 kalshi get_esports_odds --game=cs2 或 polymarket get_esports_events。
  • **仅限个人使用。**第三方服务条款仍然适用(OpenDota 使用 MIT 许可;Leaguepedia 使用 CC-BY-SA 许可)。

快速开始

命令行:

sports-skills esports get_pro_matches --limit=10
sports-skills esports get_pro_teams --limit=10
sports-skills esports get_leagues --tier=premium
sports-skills esports get_lol_tournaments --region=Korea --limit=5
sports-skills esports lol_cargo_query --tables=Teams --fields=Name,Region --limit=5

Python:

from sports_skills import esports

esports.get_pro_matches(limit=10)
esports.get_lol_tournaments(region="Brazil")

命令

命令描述
get_pro_matches最新的 Dota 2 职业比赛,按时间从新到旧排列;使用 less_than_match_id 向前翻页(OpenDota)
get_leaguesDota 2 联赛/锦标赛,按时间从新到旧排列,可按级别筛选(OpenDota)
get_pro_teams按评分排列的顶尖 Dota 2 战队(OpenDota)
get_match按 ID 查询 Dota 2 比赛详情(OpenDota)
get_lol_tournaments查询从两个月前的 1 日起开始的 LoL 电竞锦标赛,按时间从新到旧排列(Leaguepedia)
lol_cargo_query原始 Leaguepedia Cargo 查询(可查询任意表和字段)

Leaguepedia Cargo 参考

lol_cargo_query 需要 tables 和 fields。常用表(字段可能有所不同——请先使用小型查询进行验证):Tournaments(Name、DateStart、DateEnd、League、Region、Prizepool)、MatchSchedule(Team1、Team2、Winner、DateTime_UTC、BestOf)、ScoreboardGames、Players、Teams。完整架构: https://lol.fandom.com/wiki/Special:CargoTables。行键使用你请求的字段名(DateTime_UTC),即使 Cargo 返回的字段名中带有空格。

故障排除

  • Leaguepedia API error: You've exceeded your rate limit → 你触发了限流。请等待后重试;连接器会缓存约 30 分钟,以减少请求。
  • OpenDota 返回空的 matches/teams → 可能是临时问题;OpenDota 由志愿者运营,尽力提供服务,不保证服务等级。请重试。

评论

支持 Markdown