tennis-data について
tennis-dataは、sports-skillsのコマンドラインからATPとWTAのテニスデータを取得するスキルです。スコアボード、ランキング、カレンダー、選手情報に加え、専用のWTA APIコマンドでエントリーリストや最近の結果を取得できます。
主な機能
- 01開催中または最近のスコアボードを取得
- 02ATPとWTAの選手ランキングを表示
- 03シーズンの大会カレンダーを確認
- 04選手プロフィールとニュースを検索
- 05WTAのエントリーリストと最近の結果を取得
活用シーン
- 01開催中の大会の試合を確認
- 02いずれかのツアーのランキングを確認
- 03カレンダーで大会日程を検索
- 04WTAのエントリーリストや選手の最近の結果を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ machina-sports/ sports-skills --skill tennis-dataインストール後、Claude Code で/tennis-dataを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-reference.mdgrand-slams.mdplayer-ids.mdscoring.mdscripts/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_rankings | ATP または WTA の選手ランキング |
get_calendar | シーズン全体の大会カレンダー |
get_player_info | 個別のテニス選手プロフィール |
get_news | テニスニュース記事 |
get_wta_entry_list | 1大会の WTA エントリーリスト(シングルス選手とダブルスチーム) — WTA API |
get_wta_player_results | WTA 選手の直近の試合結果(期間限定)、新しい順 — 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はローカルでの提供時刻にすぎず、データの鮮度を示すものではありません。
ワークフロー
ライブ大会の確認
get_scoreboard --tour=<atp|wta>- 現在の試合をラウンドごとに提示します。
- 選手情報には
get_player_info --player_id=<id>を使用します。
ランキングの確認
get_rankings --tour=<atp|wta> --limit=20- ポイントと順位の推移を添えてランキングを提示します。
シーズンカレンダー
get_calendar --tour=<atp|wta> --year=<year>- 特定の大会に絞り込みます。
WTA エントリーリスト
get_wta_entry_list --tournament_id=<wta_id> --year=<year>- 各種目(
format:シングルス/ダブルス)をシードとエントリー種別とともに提示します。これはエントリーリストであり、ドローではありません。
WTA 選手の調子
get_wta_player_results --player_id=<wta_id> --year=<year> --limit=20- 大会ごとにまとめ、直近の
count試合であることを伝えます。has_moreがtrueの場合は、さらに過去の試合が存在するものの取得されていないことも伝えてください。
例
例 1:ライブの試合 ユーザーの発言:「現在行われているATPの試合は何ですか?」 操作:
get_scoreboard(tour="atp")を呼び出します 結果:大会のラウンドごとに整理された、現在の試合とスコア、状況が表示されます
例 2:女子ランキング ユーザーの発言:「WTAランキングを見せてください」 操作:
get_rankings(tour="wta", limit=20)を呼び出します 結果:順位、名前、ポイント、順位の推移を含む、WTA上位20選手が表示されます
例 3:グランドスラムの開催日 ユーザーの発言:「今年の全仏オープンはいつですか?」 操作:
currentDateから年を導き出しますget_calendar(tour="atp", year=<derived_year>)を呼び出します- 結果から「Roland Garros」(全仏オープンの正式名称)を検索します 結果:全仏オープンの開催日、開催地(パリ)、サーフェス(クレー)が表示されます
存在しないコマンド — 絶対に呼び出さないでください
— 存在しません。現在の試合のスコアを確認するには、get_matchesget_scoreboardを使用してください。— 存在しません。大会のドロー情報はこのAPIでは利用できません。get_draw— 存在しません。対戦成績はこのAPIでは利用できません。get_head_to_head— 存在しません。テニスでは順位表ではなく、get_standingsget_rankingsを使用します。— 存在しません。ESPNはテニスの試合ごとの統計(サービスエース、ダブルフォルト、ブレークポイント)を公開していません。スコアボードのget_match_statsstatisticsリストは空で、グランドスラム決勝でも試合ごとの統計エンドポイントは「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 を定期的に再読み込みしてください