mcpField
T
tennis-data

tennis-data

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

tennis-data について

tennis-dataは、sports-skillsのコマンドラインからATPとWTAのテニスデータを取得するスキルです。スコアボード、ランキング、カレンダー、選手情報に加え、専用のWTA APIコマンドでエントリーリストや最近の結果を取得できます。

主な機能

  1. 01開催中または最近のスコアボードを取得
  2. 02ATPとWTAの選手ランキングを表示
  3. 03シーズンの大会カレンダーを確認
  4. 04選手プロフィールとニュースを検索
  5. 05WTAのエントリーリストと最近の結果を取得

活用シーン

  1. 01開催中の大会の試合を確認
  2. 02いずれかのツアーのランキングを確認
  3. 03カレンダーで大会日程を検索
  4. 04WTAのエントリーリストや選手の最近の結果を確認

インストール

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

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

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api-reference.md
grand-slams.md
player-ids.md
scoring.md
scripts/
validate_params.sh

詳細

テニスデータ(ATP + WTA)

クエリを作成する前に、エンドポイント、ID の規則、データ形式について references/api-reference.md を参照してください。

クイックスタート

Python のインポートパスの問題を避けるため、CLI を優先してください。

sports-skills tennis get_scoreboard --tour=atp
sports-skills tennis get_rankings --tour=wta
sports-skills tennis get_calendar --tour=atp --year=2026
sports-skills tennis get_wta_entry_list --tournament_id=901 --year=2025
sports-skills tennis get_wta_player_results --player_id=320760 --year=2025 --limit=10

重要:クエリを実行する前に

重要:データエンドポイントを呼び出す前に、次の点を確認してください。

  • tour パラメーターが指定されていること(atp または wta)。デフォルト値はありません。
  • 年はシステムプロンプトの currentDate から導出すること。ハードコードしないでください。

tour パラメーター

ESPN を利用するコマンドのほとんどでは、--tour=atp または --tour=wta が必要です。

  • ATP:男子プロテニスツアー
  • WTA:女子プロテニスツアー

ユーザーが指定しない場合は、どちらのツアーかを確認するか、コマンドを2回呼び出して両方を表示してください。

コマンド

コマンド説明
get_scoreboardツアーのライブ/最近の大会スコア
get_rankingsATP または WTA の選手ランキング
get_calendarシーズン全体の大会カレンダー
get_player_info個別のテニス選手プロフィール
get_newsテニスニュース記事
get_wta_entry_list1大会の WTA エントリーリスト(シングルス選手とダブルスチーム) — WTA API
get_wta_player_resultsWTA 選手の直近の試合結果(期間限定)、新しい順 — WTA API

パラメーターと戻り値の形式の全容については、references/api-reference.md を参照してください。

WTA API コマンドでは WTA 固有の ID を使用

get_wta_entry_list と get_wta_player_results は、ESPN ではなく公開 WTA API(api.wtatennis.com)を参照します。

  • tournament_id と player_id は WTA 独自の数値 ID で、先頭にゼロのない正の整数です(例:大会 901、選手 320760)。get_rankings/get_player_info/get_scoreboard で得られる ESPN ID は使用できません。また、両者の ID を対応付ける方法はありません。
  • get_wta_player_results が返すのは直近の結果の期間限定ウィンドウ(最大 limit 件、任意で1つの year 内)であり、キャリア全体の履歴ではありません。合計件数はありません。has_more はさらに試合があることだけを示し、history_complete は常に false です。count をキャリアやシーズンの合計として提示しないでください。
  • 結果の日付は、各試合が行われた日ではなく、大会の開始日(tournament_start_date)です。試合日として提示しないでください。
  • 同一大会内の試合はプロバイダーの順序を保ちますが、実際の試合順であるとは限りません。大会内の正確な時系列を断定しないでください。
  • winner_code はプロバイダーの生のサイドコードです。勝敗は導出されません。この値から勝者を断定しないでください。
  • どちらのコマンドも WTA が公開したスナップショット(source.fetched_at、キャッシュ期間は最大10分)を返します。完全なデータやライブデータと表現しないでください。SPORTS_SKILLS_REPLAY=replay/fill の場合、source.fetched_at は null で、source.served_at はローカルでの提供時刻にすぎず、データの鮮度を示すものではありません。

ワークフロー

ライブ大会の確認
  1. get_scoreboard --tour=<atp|wta>
  2. 現在の試合をラウンドごとに提示します。
  3. 選手情報には get_player_info --player_id=<id> を使用します。
ランキングの確認
  1. get_rankings --tour=<atp|wta> --limit=20
  2. ポイントと順位の推移を添えてランキングを提示します。
シーズンカレンダー
  1. get_calendar --tour=<atp|wta> --year=<year>
  2. 特定の大会に絞り込みます。
WTA エントリーリスト
  1. get_wta_entry_list --tournament_id=<wta_id> --year=<year>
  2. 各種目(format:シングルス/ダブルス)をシードとエントリー種別とともに提示します。これはエントリーリストであり、ドローではありません。
WTA 選手の調子
  1. get_wta_player_results --player_id=<wta_id> --year=<year> --limit=20
  2. 大会ごとにまとめ、直近の count 試合であることを伝えます。has_more が true の場合は、さらに過去の試合が存在するものの取得されていないことも伝えてください。

例

例 1:ライブの試合 ユーザーの発言:「現在行われているATPの試合は何ですか?」 操作:

  1. get_scoreboard(tour="atp") を呼び出します 結果:大会のラウンドごとに整理された、現在の試合とスコア、状況が表示されます

例 2:女子ランキング ユーザーの発言:「WTAランキングを見せてください」 操作:

  1. get_rankings(tour="wta", limit=20) を呼び出します 結果:順位、名前、ポイント、順位の推移を含む、WTA上位20選手が表示されます

例 3:グランドスラムの開催日 ユーザーの発言:「今年の全仏オープンはいつですか?」 操作:

  1. currentDate から年を導き出します
  2. get_calendar(tour="atp", year=<derived_year>) を呼び出します
  3. 結果から「Roland Garros」(全仏オープンの正式名称)を検索します 結果:全仏オープンの開催日、開催地(パリ)、サーフェス(クレー)が表示されます

存在しないコマンド — 絶対に呼び出さないでください

  • get_matches — 存在しません。現在の試合のスコアを確認するには、get_scoreboard を使用してください。
  • get_draw — 存在しません。大会のドロー情報はこのAPIでは利用できません。
  • get_head_to_head — 存在しません。対戦成績はこのAPIでは利用できません。
  • get_standings — 存在しません。テニスでは順位表ではなく、get_rankings を使用します。
  • get_match_stats — 存在しません。ESPNはテニスの試合ごとの統計(サービスエース、ダブルフォルト、ブレークポイント)を公開していません。スコアボードの statistics リストは空で、グランドスラム決勝でも試合ごとの統計エンドポイントは「No competitor stats found」を返します。セットスコアのみ利用できます。

上記のコマンド表に記載されていないコマンドは存在しません。

トラブルシューティング

エラー:get_scoreboard から試合が返されない 原因:テニスの大会は特定の週に開催されるため、今週は大会が予定されていない可能性があります 解決方法:get_calendar(tour=...) を呼び出して、次の大会の開催予定を確認してください

エラー:ランキングが空です 原因:ランキングは毎週月曜日に更新されるため、更新中の短い時間帯である可能性があります 解決方法:コマンドは前週のデータを自動的に再試行します。それでも空の場合は、数分後に再試行してください

エラー:選手プロフィールの取得に失敗します 原因:選手IDが正しくありません 解決方法:get_rankings を使用して現在のランキング一覧から選手IDを確認するか、ESPNのテニスURLで確認してください

エラー:get_wta_entry_list / get_wta_player_results がIDを拒否する、またはHTTP 404を返す 原因:ESPN ID(または数値以外の値)が渡されています。これらのコマンドが受け取るのは、WTA固有の数値IDのみです 解決方法:WTA独自の大会ID/選手IDを使用してください。ESPN IDで代用しないでください

エラー:get_wta_player_results --year=... が「outside year ... inconclusive」で失敗します 原因:WTA APIが別の年の試合を返しているため、年のフィルターが無視された可能性があります 解決方法:そのシーズンの結果を確認できなかったことを伝えてください。year を指定せずに再試行し、その試合を該当シーズンのものとして提示することは避けてください

エラー:get_wta_entry_list が count: 0 で成功します 原因:WTAがその大会と年のエントリーリストをまだ公開していないか、そのIDと年の組み合わせが存在しません 解決方法:note フィールドを確認し、エントリーリストを利用できないことをユーザーに伝えてください。選手が空のリストとして報告しないでください

エラー:スコアの更新が遅れているように見える、またはライブで更新されない 原因:スコアはポイントごとではなく、セットまたは試合の終了後に更新されます 解決方法:これは想定された動作です。最新のセットスコアを確認するには、get_scoreboard を定期的に再読み込みしてください

コメント