machina-sports/sports-skills

cfb-data

College Football (CFB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, rankings, injuries, futures, team/player stats, and news for FBS, plus official FCS scoreboards, N…

Zobacz źródło
Oryginalny dokument Skill

Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.

College Football Data (CFB)

Before writing queries, consult references/api-reference.md for endpoints, conference IDs, team IDs, and data shapes.

Setup

Before first use, check if the CLI is available:

bash
which sports-skills || pip install sports-skills

If pip install fails with a Python version error, the package requires Python 3.10+. Find a compatible Python:

bash
python3 --version  # check version
# If < 3.10, try: python3.12 -m pip install sports-skills
# On macOS with Homebrew: /opt/homebrew/bin/python3.12 -m pip install sports-skills

No API keys required.

Quick Start

Prefer the CLI — it avoids Python import path issues:

bash
sports-skills cfb get_scoreboard
sports-skills cfb get_rankings
sports-skills cfb get_standings --group=8

CRITICAL: Before Any Query

CRITICAL: Before calling any data endpoint, verify:

  • Season year is derived from the system prompt's currentDate — never hardcoded.
  • For standings, the group parameter is set to the correct conference ID (see references/api-reference.md).
  • If only a team name is provided, use get_teams to resolve the team ID.

Choosing the Season

Derive the current year from the system prompt's date (e.g., currentDate: 2026-02-28 → current year is 2026).

  • If the user specifies a season, use it as-is.
  • If the user says "current", "this season", or doesn't specify: The CFB season runs August–January. If the current month is February–July (offseason), use season = current_year - 1. From August onward, use the current year.

Important: College vs. Pro Differences

  • Standings are per-conference — use the group parameter to filter
  • Rankings replace leaders — college uses AP Top 25, Coaches Poll, and CFP rankings
  • Ranked teams have a rank field (null = unranked) on scoreboard competitors
  • Week-based schedule — like NFL, college football uses week numbers

Commands

CommandDescription
get_scoreboardLive/recent college football scores
get_standingsStandings by conference (use group parameter)
get_teamsAll 750+ FBS college football teams
get_team_rosterFull roster for a team
get_team_scheduleSchedule for a specific team
get_game_summaryDetailed box score and scoring plays
get_rankingsAP Top 25, Coaches Poll, CFP rankings
get_newsCollege football news
get_play_by_playFull play-by-play for a game
get_win_probabilityWin probability timeline for a completed game
get_scheduleSeason schedule by week
get_injuriesInjury reports across all teams
get_futuresFutures/odds markets (National Championship, Heisman, etc.)
get_team_statsTeam statistical profile
get_player_statsPlayer statistical profile
get_ncaa_scoreboardOfficial NCAA scoreboard — FBS and FCS
get_ncaa_scheduleWhich weeks have games (official index)
get_ncaa_gameOfficial NCAA game information
get_ncaa_boxscoreOfficial NCAA box score
get_ncaa_play_by_playOfficial play-by-play with drive context
get_ncaa_scoring_summaryOfficial scoring summary
get_ncaa_schoolsNCAA schools index (all divisions)

See references/api-reference.md for full parameter lists and return shapes.

Official NCAA Backend

The get_ncaa_* commands read the NCAA's own endpoints (sdataprod.ncaa.com + ncaa.com) — coverage ESPN does not carry:

  • FCS scoreboards via division="fcs" — ESPN's college coverage is

FBS-centric.

  • Official game detail: get_ncaa_game, get_ncaa_boxscore,

get_ncaa_play_by_play (with drive context), get_ncaa_scoring_summary.

  • The schools index (~1,200 schools, all divisions): get_ncaa_schools.

NCAA game ids (e.g. 6306261, from get_ncaa_scoreboard) and ESPN event ids share nothing — join on game date plus team names. NCAA reissues game ids, so take them from a fresh get_ncaa_scoreboard call rather than storing them. Football divisions are fbs/fcs (not d1-d3). get_ncaa_schedule numbers the weeks get_ncaa_scoreboard takes (16+ are the postseason, FCS playoffs included). Scoring-summary field goals carry distance_yards, taken from the play-by-play. All get_ncaa_* commands except get_ncaa_schools ride NCAA's GraphQL persisted queries, whose hashes rotate when ncaa.com redeploys; when that happens they say so explicitly, and the ESPN-backed get_scoreboard / get_schedule cover the same FBS games.

Examples

Example 1: Current rankings User says: "What are the college football rankings?" Actions:

  1. Call get_rankings()

Result: AP Top 25, Coaches Poll, and CFP rankings with rank, previous rank, record

Example 2: Conference standings User says: "Show me SEC football standings" Actions:

  1. Derive season year from currentDate
  2. Call get_standings(group=8, season=<derived_year>) (group 8 = SEC)

Result: SEC standings with W-L records per team

Example 3: Team schedule User says: "What's Alabama's schedule this season?" Actions:

  1. Derive season year from currentDate
  2. Call get_team_schedule(team_id="333", season=<derived_year>)

Result: Alabama's full season schedule with opponent, date, score (if played)

Example 4: Weekly scores User says: "Show me this week's college football scores" Actions:

  1. Call get_scoreboard()

Result: All live and recent CFB games with scores and ranked status

Example 5: Heisman favorites User says: "Who's the Heisman favorite?" Actions:

  1. Call get_futures(limit=10)

Result: Top Heisman Trophy candidates with odds values

Example 6: Team statistics User says: "Show me Alabama's team stats" Actions:

  1. Derive season year from currentDate
  2. Call get_team_stats(team_id="333", season_year=<derived_year>)

Result: Alabama's season stats by category with value, rank, and per-game averages

Commands that DO NOT exist — never call these

  • ~~get_odds~~ / ~~get_betting_odds~~ — not available. For prediction market odds, use the polymarket or kalshi skill.
  • ~~search_teams~~ — does not exist. Use get_teams instead.
  • ~~get_box_score~~ — does not exist. Use get_game_summary instead.
  • ~~get_player_ratings~~ — does not exist. Use get_player_stats instead.
  • ~~get_bcs_rankings~~ / ~~get_playoff_rankings~~ — does not exist. Use get_rankings instead.

If a command is not listed in the Commands table above, it does not exist.

Error Handling

When a command fails, do not surface raw errors to the user. Instead:

  1. If no events found for a date, check if it's in the off-season (CFB runs August–January)
  2. If standings are empty without a group filter, try with a specific conference group
  3. Only report failure with a clean message after exhausting alternatives

Troubleshooting

Error: sports-skills command not found Cause: Package not installed Solution: Run pip install sports-skills

Error: No games found Cause: CFB is seasonal (August–January); off-season scoreboard will be empty Solution: Use get_rankings or get_news year-round; use get_schedule to find when the season starts

Error: Too many teams returned Cause: get_teams returns 750+ FBS teams Solution: Help users narrow down by suggesting specific team IDs from references/api-reference.md, or use ESPN URLs to look up IDs

Error: Rankings empty in off-season Cause: Rankings are only published during the season and early off-season Solution: Use get_news in the offseason; rankings resume in August

z tego samego repozytorium

Więcej Skills

Wszystkie Skills
machina-sports
Społeczność

cricket-data

Cricket data via ESPN public endpoints and Cricsheet open data — live-ish series scoreboards, standings, match summaries and news (ESPN), plus historical ball-by-ball, player stats, and player registry (Cricsheet, ODC-BY 1.0). Zero config, no API keys. Use when: user asks about cricket scores, IPL/BBL/PSL/international series, points tables, match details, cricket news, ball-by-ball history, or player career stats. Don't use when: user asks about other sports — use football-data (soccer), nfl-da

instalacje
2
GitHub Stars
243
Aktualizacja
5 paź
machina-sports
Społeczność

fastf1

Formula 1 data — race schedules, results, lap timing, driver and team info. Powered by the FastF1 library. Covers F1 sessions, qualifying, practice, race results, sector times, tire strategy. Use when: user asks about F1 race results, qualifying, lap times, driver stats, team info, the F1 calendar, or Formula 1 data. Don't use when: user asks about other motorsports (MotoGP, NASCAR, IndyCar, WEC, Formula E). Don't use for F1 betting odds or predictions — use kalshi or polymarket instead. Don't u

instalacje
2
GitHub Stars
243
Aktualizacja
5 paź
machina-sports
Społeczność

nfl-data

NFL data via ESPN public endpoints plus an nflverse backend for schedules, weekly rosters, play-by-play, and normalized player/team stat tables. Zero config, no API keys. Use when: user asks about NFL scores, standings, team rosters, schedules, game stats, box scores, play-by-play, injuries, transactions, betting futures, depth charts, team/player statistics, NFL news, or which players are trending in fantasy adds/drops. Don't use when: user asks about football/soccer (use football-data), colleg

instalacje
2
GitHub Stars
242
Aktualizacja
5 paź
machina-sports
Społeczność

football-data

Football (soccer) data across the world's major leagues — standings, schedules, match stats, xG, transfers, player profiles, head-to-head history, team strength (Elo), and match forecasts. Zero config, no API keys. Covers Premier League, La Liga, Bundesliga, Serie A, Ligue 1, MLS, Champions League, World Cup, Championship, Eredivisie, Primeira Liga, Serie A Brazil, Russian Premier League, Scottish/Belgian/Turkish top flights, European Championship, and more (call getcompetitions for the live lis

instalacje
2
GitHub Stars
229
Aktualizacja
12 wrz