mcpField
E
esports

esports

github.com/machina-sportsその他261226 回インストール今日更新
リポジトリ

esports について

APIキーや登録なしで公開ソースからeスポーツデータを取得するスキルです。OpenDotaのDota 2データとLeaguepedia CargoのLeague of Legends eスポーツデータを扱い、クエリ制限やページング方法も案内します。

主な機能

  1. 01Dota 2の試合・チームデータ
  2. 02Dota 2のリーグ一覧
  3. 03Leaguepediaの大会クエリ
  4. 04PythonとCLIからの利用
  5. 05レート制限とページングの案内

活用シーン

  1. 01最近のDota 2プロ試合を確認する
  2. 02Dota 2のチームやリーグを調べる
  3. 03LoLの大会・試合テーブルを検索する
  4. 04過去のDota 2試合をページングで取得する

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/esportsを入力して読み込まれたか確認します。

詳細

Esports Data

API キー不要の公開ソースです。API キーも登録も不要です。

  • Dota 2 → OpenDota(api.opendota.com)。実際の JSON データです。無料枠は約 60 リクエスト/分です。
  • League of Legends esports → 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 は最新のプロの試合を返します(1 回あたり最大 100 件)。それより古い試合を取得するには、レスポンスの next_less_than_match_id を less_than_match_id として渡してください。
  • Dota のチームは名前ではなく team_id で照合してください。 OpenDota には、大文字と小文字のみが異なる別々のレコードがあります(2013 年の mouz は 161707、現在の MOUZ は 9338413)。
  • ここではオッズを取得できません。 e スポーツのブックメーカーオッズは API キーなしでは利用できません。暗黙の確率を示すシグナルには、kalshi get_esports_odds --game=cs2 または polymarket get_esports_events を使用してください。
  • 個人利用向けです。 第三者の利用規約が適用されます(OpenDota は MIT、Leaguepedia は CC-BY-SA)。

クイックスタート

CLI:

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_matchesDota 2 の最新のプロの試合を新しい順に取得します。less_than_match_id を使って前のページを取得できます(OpenDota)
get_leaguesDota 2 のリーグ/トーナメントを新しい順に取得します。ティアで絞り込めます(OpenDota)
get_pro_teamsレーティング上位の Dota 2 チームを取得します(OpenDota)
get_matchID を指定して Dota 2 の試合の詳細を取得します(OpenDota)
get_lol_tournaments2 か月前の月初以降に開始する LoL e スポーツトーナメントを新しい順に取得します(Leaguepedia)
lol_cargo_queryLeaguepedia 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。Cargo 自体はフィールド名にスペースを含めて返しますが、行のキーには指定したフィールド名(DateTime_UTC)が使われます。

トラブルシューティング

  • Leaguepedia API error: You've exceeded your rate limit → レート制限が適用されています。時間をおいて再試行してください。コネクターは対策として約 30 分間キャッシュします。
  • OpenDota から matches/teams が空で返る → 一時的な問題です。OpenDota はボランティア運営のベストエフォート型インフラで、SLA はありません。再試行してください。

コメント