
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, NCAA game detail with drive context, and the schools index. Zero config, no API keys. Use when: user asks about college football scores, standings, rankings, team rosters, schedules, game results, play-by-play, injuries, betting futures, team/player statistics, CFB news, or FCS games. Don't use when: user asks about NFL (use nfl-data), college basketball (use cbb-data), or non-sports topics.
- Installs
- 691
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/machina-sports/sports-skills --skill cfb-data- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads cfb-data automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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:
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:
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:
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
groupparameter is set to the correct conference ID (seereferences/api-reference.md). - If only a team name is provided, use
get_teamsto 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
groupparameter to filter - Rankings replace leaders — college uses AP Top 25, Coaches Poll, and CFP rankings
- Ranked teams have a
rankfield (null = unranked) on scoreboard competitors - Week-based schedule — like NFL, college football uses week numbers
Commands
| Command | Description |
|---|---|
get_scoreboard | Live/recent college football scores |
get_standings | Standings by conference (use group parameter) |
get_teams | All 750+ FBS college football teams |
get_team_roster | Full roster for a team |
get_team_schedule | Schedule for a specific team |
get_game_summary | Detailed box score and scoring plays |
get_rankings | AP Top 25, Coaches Poll, CFP rankings |
get_news | College football news |
get_play_by_play | Full play-by-play for a game |
get_win_probability | Win probability timeline for a completed game |
get_schedule | Season schedule by week |
get_injuries | Injury reports across all teams |
get_futures | Futures/odds markets (National Championship, Heisman, etc.) |
get_team_stats | Team statistical profile |
get_player_stats | Player statistical profile |
get_ncaa_scoreboard | Official NCAA scoreboard — FBS and FCS |
get_ncaa_schedule | Which weeks have games (official index) |
get_ncaa_game | Official NCAA game information |
get_ncaa_boxscore | Official NCAA box score |
get_ncaa_play_by_play | Official play-by-play with drive context |
get_ncaa_scoring_summary | Official scoring summary |
get_ncaa_schools | NCAA 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:
- 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:
- Derive season year from
currentDate - 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:
- Derive season year from
currentDate - 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:
- 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:
- 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:
- Derive season year from
currentDate - 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— not available. For prediction market odds, use the polymarket or kalshi skill.get_betting_odds— does not exist. Usesearch_teamsget_teamsinstead.— does not exist. Useget_box_scoreget_game_summaryinstead.— does not exist. Useget_player_ratingsget_player_statsinstead./get_bcs_rankings— does not exist. Useget_playoff_rankingsget_rankingsinstead.
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:
- If no events found for a date, check if it's in the off-season (CFB runs August–January)
- If standings are empty without a group filter, try with a specific conference group
- 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
FAQ
What does the cfb-data skill do?
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, NCAA game detail with drive context, and the schools index. Zero config, no API keys. Use when: user asks about college football scores, standings, rankings, team rosters, schedules, game results, play-by-play, injuries, betting futures, team/player statistics, CFB news, or FCS games. Don't use when: user asks about NFL (use nfl-data), college basketball (use cbb-data), or non-sports topics.
How do I install cfb-data?
Run npx skills add https://github.com/machina-sports/sports-skills --skill cfb-data in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cfb-data/ (personal) or .claude/skills/cfb-data/ (project).
Which AI agents can use cfb-data?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is cfb-data safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains cfb-data?
It is published by machina-sports in machina-sports/sports-skills. It has 691 recorded installs.
More from machina-sports/sports-skills
football-data
machina-sports/sports-skills
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, Serie B, Eredivisie, Primeira Liga, Serie A Brazil, Russian Premier League, Scottish/Belgian/Turkish top flights, European Championship, and more (call getcompetitions for the live list). Use when: user asks about football/soccer standings, fixtures, match stats, xG, lineups, player values, transfers, injury news, league tables, daily fixtures, player profiles, head-to-head records, team strength/Elo ratings, or match odds/forecasts. Don't use when: user asks about American football/NFL (use nfl-data), college football (use cfb-data), NBA (use nba-data), WNBA (use wnba-data), college basketball (use cbb-data), NHL (use nhl-data), MLB (use mlb-data), tennis (use tenn
betting
machina-sports/sports-skills
Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement. Pure computation, no API calls. Works with odds from any source: ESPN (American odds), Polymarket (decimal probabilities), Kalshi (integer probabilities). Use when: user asks about bet sizing, expected value, edge analysis, Kelly criterion, arbitrage, parlays, line movement, odds conversion, or comparing odds across sources. Also use when you have odds from ESPN and a prediction market price and want to evaluate whether a bet has positive expected value. Don't use when: user asks for live odds or market data — use polymarket, kalshi, or the sport-specific skill to fetch odds first, then use this skill to analyze them.
polymarket
machina-sports/sports-skills
Polymarket sports prediction markets — read-only live odds, prices, order books, events, series, and market search. No auth required. Covers NFL, NBA, MLB, football (EPL, UCL, La Liga), tennis, cricket, MMA, esports. Supports moneyline, spreads, totals, and player props. Use when: user asks about sports betting odds, prediction markets, win probabilities, market sentiment, or "who is favored to win" questions and only needs read-only market intelligence. Don't use when: user asks about actual match results, scores, or statistics — use the sport-specific skill. Don't use for historical match data. Don't use for news — use sports-news instead. Don't use for placing, cancelling, or managing orders — use the separate polymarket-trading skill only after explicit user approval.
sports-news
machina-sports/sports-skills
Sports news via RSS/Atom feeds and Google News. Fetch headlines, search by query, filter by date. Covers football news, transfer rumors, match reports, and any sport via Google News. Use when: user asks for recent news, headlines, transfer rumors, or articles about any sport. Good for "what's the latest on [team/player]" questions. Supports any Google News query and curated RSS feeds (BBC Sport, ESPN, The Athletic, Sky Sports). Don't use when: user asks for structured data like standings, scores, statistics, or xG — use the sport-specific skill instead: football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), or fastf1 (F1). Don't use for prediction market odds — use polymarket or kalshi. News results are text articles, not structured data.
kalshi
machina-sports/sports-skills
Kalshi prediction markets — events, series, markets, trades, and candlestick data. Public API, no auth required for reads. US-regulated exchange (CFTC). Covers football (EPL, UCL, La Liga), basketball, baseball, tennis, NFL, hockey event contracts. Use when: user asks about Kalshi-specific markets, event contracts, CFTC-regulated prediction markets, or candlestick/OHLC price history on sports outcomes. Don't use when: user asks about actual match results, scores, or statistics — use the sport-specific skill: football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), or fastf1 (F1). Don't use for general "who will win" questions unless Kalshi is specifically mentioned — try polymarket first (broader sports coverage). Don't use for news — use sports-news instead.
nba-data
machina-sports/sports-skills
NBA data via ESPN public endpoints, the NBA live CDN, and NBA Stats (stats.nba.com) — scores, standings, rosters, schedules, game summaries, play-by-play, injuries, futures, depth charts, leaders, and news, plus an analytics backend: advanced ratings, per-shot court coordinates, career splits, and history to 1946. Zero config, no API keys. Use when: user asks about NBA scores, standings, team rosters, schedules, game stats, box scores, play-by-play, injuries, transactions, betting futures, depth charts, team/player statistics, NBA news, shot charts, advanced ratings/pace, career stats, or historical NBA seasons. Don't use when: user asks about WNBA (use wnba-data), college basketball (use cbb-data), or other sports.
Popular media & creative skills
hyperframes
heygen-com/hyperframes
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
media-use
heygen-com/hyperframes
Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
hyperframes-registry
heygen-com/hyperframes
About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.
ai-video-generation
101-skills/superpowers
Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse
ai-image-generation
101-skills/superpowers
Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image