Open-source agent skills for live sports data and prediction markets. Built for the Agent Skills spec. Works with sportsclaw, OpenClaw, Claude Code, Cursor, Copilot, Gemini CLI, Hermes Agent, and every major AI agent. Zero API keys. Zero signup.
$ npx -y skills add machina-sports/sports-skills --agent claude-code
What's inside
Open-source agent skills for live sports data and prediction markets. Built for the Agent Skills spec. Works with sportsclaw, OpenClaw, Claude Code, Cursor, Copilot, Gemini CLI, Hermes Agent, and every major AI agent.
Zero API keys. Zero signup. Just works for read-only sports data.
npx skills add machina-sports/sports-skills
Python package users (includes all sports modules in the base package):
pip install sports-skills
To upgrade to the latest version, run the install command with the --yes flag:
npx skills add machina-sports/sports-skills --yes
Agents should treat sports-skills as read-only by default:
Machine-readable capability and risk metadata lives in skills/catalog.json.
A collection of agent skills that wrap publicly available sports data sources and APIs. These skills don't provide proprietary data โ they give AI agents a structured interface to data that's already freely accessible on the web: ESPN scoreboards and box scores, Understat xG, nflverse tables, ClubElo ratings, Kalshi and Polymarket prices, RSS news feeds, and more.
Each skill is a SKILL.md file that any compatible AI agent can load and use immediately. Data comes from third-party public sources and is subject to their respective terms of use.
Full documentation lives with each skill, not in this README:
skills/<skill>/SKILL.md for agent instructions, plus skills/<skill>/references/ for the detailed command reference, data coverage, and examplesPersonal use only. These open-source skills rely on third-party public APIs and are intended for personal, non-commercial use. For commercial or production workloads with licensed data, SLAs, and enterprise support, see machina.gg.
Install everything with the one-liner above, or pick a single skill:
npx skills add machina-sports/sports-skills@nba-data
| Skill | Sport | Commands | Data Sources |
|---|---|---|---|
football-data | Football (Soccer) | 25 | ESPN, FPL, Understat, Transfermarkt, football-data.co.uk, ClubElo |
nfl-data | NFL | 22 | ESPN, nflverse |
nba-data | NBA | 28 | ESPN, NBA CDN, NBA Stats (stats.nba.com) |
wnba-data | WNBA | 16 | ESPN |
nhl-data | NHL | 22 | ESPN, NHL API (api-web.nhle.com) |
mlb-data | MLB | 23 | ESPN, MLB Stats API (statsapi.mlb.com) |
tennis-data | Tennis (ATP + WTA) | 5 | ESPN |
cfb-data | College Football (CFB) | 21 | ESPN, NCAA (official) |
cbb-data | College Basketball (CBB) | 25 | ESPN, NCAA (official) |
golf-data | Golf (PGA/LPGA/DP World) | 6 | ESPN |
volleyball-data | Volleyball (Dutch) | 10 | Nevobo |
xctf-data | Cross Country & Track | 5 | TFRRS, The Stride Report |
fastf1 | Formula 1 | 13 | FastF1 (free library) |
esports | Esports (Dota 2 + LoL) | 6 | OpenDota, Leaguepedia (Cargo) |
sports-news | Multi-sport News | 2 | Any RSS feed, Google News |
metadata | Team logos, player photos | 5 | TheSportsDB (free API) |
| Skill | Platform | Commands | Coverage |
|---|---|---|---|
kalshi | Kalshi (CFTC-regulated) | 16 | Soccer, Basketball, Baseball, Tennis, NFL, Hockey, Esports (CS2/LoL/Dota2) |
polymarket | Polymarket | 14 | NFL, NBA, MLB, Soccer, Tennis, Cricket, MMA, Esports โ read-only |
polymarket-trading | Polymarket CLOB | 7 | High-risk wallet-backed order placement/cancel; explicit user approval required |
| Skill | Purpose | Commands | Notes |
|---|---|---|---|
betting | Odds math & bet evaluation | 9 | Pure compute โ no API calls |
markets | ESPN โ Kalshi โ Polymarket orchestration | 14 | Unified dashboards, live ticks, cross-platform comparison |
sports-reporter | Original sports journalism | prompt-only | Composes other skills to write articles |
machina | Gateway to Machina premium / licensed data | prompt-only | Routes to machina-cli + MCP |
world-cup | Premium World Cup 2026 intelligence (read-only) | prompt-only | Routes to a hosted Machina MCP project |
Beyond ESPN's live layer, the US-sport skills carry a deeper analytics backend consumed directly from each league's own (or community) data source โ same skill, second source, one JSON envelope:
| Skill | Deep source | What it adds over ESPN | History |
|---|---|---|---|
nfl-data | nflverse | Season/weekly stat tables, EPA & win probability per play, betting lines, ESPN-id bridge | 1999+ |
nba-data | NBA Stats (stats.nba.com) | Advanced ratings/pace, per-shot court coordinates, play-by-play with locations, career splits, all-era player registry | 1946+ |
mlb-data | MLB Stats API (official) | Pitch-level data โ velocity, spin, plate coordinates, exit velocity, launch angle โ career splits by stat group, league leaders | 1901+ |
nhl-data | NHL API (official) | Play-by-play with on-ice x/y coordinates, cross-league career rows, skater/goalie leaders, historical standings | 1917+ |
cfb-data | NCAA (official) | FCS scoreboards, official game detail, drive-context play-by-play, scoring summaries, schools index | โ |
cbb-data | NCAA (official) | D2/D3 scoreboards, official game detail, March Madness bracket with live scores, schools index | โ |
The two sources in each skill use unrelated id systems โ every skill documents the join recipe (game date + team abbreviations/names), team filters accept both sources' abbreviation spellings, and passing the wrong system's id returns a guided error rather than an upstream failure.
Coverage still varies by league and source โ each skill documents its own limits (e.g. football data coverage: xG is top-5 leagues only, FPL stats are Premier League only).
Once installed, your agent can call commands directly from natural language:
"Show me all Premier League matches today"
"What are today's NFL scores?"
"Show me the AP Top 25 college football rankings"
"What are the Polymarket odds for the Champions League final?"
"Show me the lap data from the last Monaco Grand Prix"
Recommended agent policy (see the Autonomous Agent Contract): use the read-only data skills freely; never load polymarket-trading unless the user explicitly asks to trade; ask before machina / world-cup premium or MCP setup. After installing, restart your agent session (or reload skills, e.g. Hermes /reload-skills) so the new skill directories are indexed.
sports-skills.sh
โโโ skills/ # One folder per skill
โ โโโ <skill>/SKILL.md # Agent instructions (YAML frontmatter + Markdown)
โ โโโ <skill>/references/ # Command reference, data coverage, examples
โ โโโ catalog.json # Machine-readable capability & risk metadata
โโโ src/sports_skills/ # Python runtime used by the skills
โโโ site/ # sports-skills.sh (generated from the SKILL.md files)
โโโ README.md
Each skill follows the Agent Skills specification.
Works with every agent that supports the SKILL.md format: sportsclaw, Claude Code, OpenClaw (clawdbot / moltbot), Cursor, GitHub Copilot, VS Code Copilot, Gemini CLI, Windsurf, OpenCode, Kiro, Roo, and Trae.
sports-skills premium hands off to machina-cli for licensed and real-time data feeds:
sports-skills premium # detect + show next steps
sports-skills premium --install # install machina-cli first
sports-skills premium --json # machine-readable output
When a public API rate-limits or throttles a request, or a request needs data the free sources structurally cannot provide, the JSON response gains an additive upgrade field pointing at sports-skills premium โ on both the CLI and the Python SDK. Suppress it with SPORTS_SKILLS_NO_UPGRADE_HINTS=1.
Licensed data skills โ Sportradar, Stats Perform (Opta), API-Football, Data Sports Group โ are coming soon via Machina Sports. Same interface, same JSON envelope, licensed data underneath, built for commercial and production use with SLAs and enterprise support. For early access or enterprise needs, see machina.gg.
We're actively expanding to cover more sports and data sources โ and always looking for contributions. Whether it's a new sport, a new league, a better data source, or improvements to existing skills, PRs are welcome.
skills/<your-skill>/SKILL.mdSee the existing SKILL.md files and the Agent Skills spec for format details.
Join the Machina Sports Discord to discuss ideas, get help, or coordinate on new skills.
This project does not own, license, or redistribute any sports data. Each skill is a thin wrapper that accesses publicly available third-party sources on behalf of the user.
| Source | Access Method | Official API |
|---|---|---|
| ESPN | Public web endpoints | No โ undocumented, may change without notice |
| Understat | Public web data | No โ community access, subject to their ToS |
| FPL | Public API | Semi-official โ widely used by the community |
| Transfermarkt | Public web data | No โ subject to their ToS |
| football-data.co.uk | Public CSV downloads | No โ free community resource, subject to their ToS |
| ClubElo | Public API | Yes โ api.clubelo.com (free) |
| openfootball | Open-source dataset | Yes โ football.json (CC0/Public Domain) |
| FastF1 | Open-source library | Yes โ FastF1 (MIT) |
| Kalshi | Official public API | Yes โ Trade API v2 |
| Polymarket | Official public APIs | Yes โ Gamma + CLOB |
| NBA Stats (stats.nba.com) | Public web endpoints | No โ undocumented; throttles by client and volume |
| MLB Stats API (statsapi.mlb.com) | Official public API | Yes โ open, unauthenticated; responses carry MLB's copyright notice |
| NHL API (api-web.nhle.com) | Official public API | Semi-official โ open and unauthenticated, undocumented |
| NCAA (data.ncaa.com, sdataprod.ncaa.com) | Public web endpoints | No โ undocumented; game detail rides frontend GraphQL queries |
| Nevobo | Official public API | Yes โ Nevobo API (open, unauthenticated) |
| TFRRS | Public web data | No โ community access, subject to their ToS |
| The Stride Report | Public RSS feed | No โ standard RSS syndication, subject to their ToS |
| RSS / Google News | Standard RSS protocol | Yes โ RSS is designed for syndication |
Important:
This project is built on top of great open-source work and public APIs:
nfl_data_py / nflreadpy), powering schedules, weekly rosters, normalized stats, and play-by-play in the NFL skill.MIT โ applies to the skill code and wrappers in this repository. Does not grant any rights to the underlying third-party data.
Built by Machina Sports. The Operating System for sports AI.
.github/
workflows/
build-site.yml
ci.yml
publish.yml
.gitignore
.hermes.md
AGENTS.md
CHANGELOG.md
CLAUDE.md
docs/
superpowers/
plans/
2026-06-03-cricket-data.md
specs/
2026-06-03-cricket-data-design.md
LICENSE
pyproject.toml
README_PYPI.md
README.md
reports/
health/
2026-02-18.json
2026-02-18.md
2026-02-19.json
2026-02-19.md
2026-02-20.json
2026-02-20.md
scripts/
nightly_health_check.py
nightly_improve.py
README.md
schema_baseline.json
site/
build.py
Dockerfile
templates/
base.html
index.html
skill.html
styles.css
skills/
betting/
references/
api-reference.md
SKILL.md
catalog.json
cbb-data/
references/
api-reference.md
conference-ids.md
team-ids.md
scripts/
validate_params.sh
SKILL.md
cfb-data/
references/
api-reference.md
conference-ids.md
team-ids.md
scripts/
validate_params.sh
SKILL.md
cricket-data/
references/
api-reference.md
competitions.md
scripts/
validate_params.sh
SKILL.md
esports/
SKILL.md
fastf1/
references/
api-reference.md
commands.md
schemas.md
scripts/
validate_params.sh
SKILL.md
football-data/
references/
api-reference.md
commands.md
data-coverage.md
schemas.md
scripts/
validate_params.sh
SKILL.md
golf-data/
references/
api-reference.md
majors.md
player-ids.md
scripts/
validate_params.sh
SKILL.md
kalshi/
references/
api-reference.md
api.md
commands.md
series-tickers.md
scripts/
validate_params.sh
SKILL.md
machina/
SKILL.md
markets/
references/
api-reference.md
SKILL.md
metadata/
SKILL.md
mlb-data/
references/
api-reference.md
team-ids.md
scripts/
validate_params.sh
SKILL.md
nba-data/
references/
api-reference.md
team-ids.md
scripts/
validate_params.sh
SKILL.md
nfl-data/
references/
api-reference.md
team-ids.md
scripts/
validate_params.sh
SKILL.md
nhl-data/
references/
api-reference.md
team-ids.md
scripts/
validate_params.sh
SKILL.md
polymarket/
polymarket-trading/
SKILL.md
references/
api-reference.md
api.md
commands.md
scripts/
validate_params.sh
SKILL.md
sports-news/
references/
api-reference.md
rss-feeds.md
scripts/
validate_params.sh
SKILL.md
sports-reporter/
references/
api-reference.md
article-templates.md
sport-mapping.md
scripts/
validate_params.sh
SKILL.md
tennis-data/
references/
api-reference.md
grand-slams.md
player-ids.md
scoring.md
scripts/
validate_params.sh
SKILL.md
volleyball-data/
references/
api-reference.md
competition-ids.md
SKILL.md
wnba-data/
references/
api-reference.md
team-ids.md
scripts/
validate_params.sh
SKILL.md
world-cup/
SKILL.md
xctf-data/
references/
api-reference.md
scripts/
validate_params.sh
SKILL.md
src/
sports_skills/
__init__.py
__main__.py
_espn_base.py
_ncaa.py
_premium.py
_response.py
betting/
__init__.py
_calcs.py
cbb/
__init__.py
_connector.py
cfb/
__init__.py
_connector.py
cli.py
cricket/
__init__.py
_cricsheet.py
_espn.py
esports/
__init__.py
_connector.py
f1/
__init__.py
_connector.py
football/
__init__.py
_connector.py
golf/
__init__.py
_connector.py
kalshi/
__init__.py
_connector.py
markets/
__init__.py
_connector.py
metadata/
__init__.py
_connector.py
mlb/
__init__.py
_connector.py
_stats.py
nba/
__init__.py
_cdn.py
_connector.py
_stats.py
news/
__init__.py
_connector.py
nfl/
__init__.py
_connector.py
_nflverse.py
nhl/
__init__.py
_connector.py
_stats.py
polymarket/
__init__.py
_cli.py
_connector.py
py.typed
tennis/
__init__.py
_connector.py
volleyball/
__init__.py
_nevobo.py
wnba/
__init__.py
_connector.py
xctf/
__init__.py
_connector.py
tests/
__init__.py
fixtures/
clubelo_snapshot_sample.csv
mlb_stats/
game_775296_boxscore.json
game_775296_playByPlay.json
people_660271_stats.json
people_search.json
schedule.json
standings.json
stats_leaders.json
teams.json
mlb_summary_401815943.json
nba_stats/
boxscoreadvancedv3.json
commonallplayers.json
leaguedashteamstats.json
leaguegamelog.json
playbyplayv3.json
playercareerstats.json
shotchartdetail.json
nba_summary_401859967.json
ncaa/
gql_47928f2cabc7_6306261.json
gql_6b1232714a35_6351148.json
gql_7f86673d4875_6306261.json
gql_93a02c7193c8_6306261.json
gql_babb939def47_6306261.json
gql_e651c2602fb9_basketball-men.json
schedule_basketball_men_d1_2024_02_schedule_all_conf.json
schedule_football_fbs_2024_schedule_all_conf.json
schools.json
scoreboard_basketball_men_d1_2025_02_28_scoreboard.json
scoreboard_football_fbs_2024_13_scoreboard.json
nhl_stats/
club_schedule_season_TBL_20242025.json
gamecenter_2023030417_boxscore.json
gamecenter_2023030417_play_by_play.json
player_8478402_landing.json
score_2024_06_24.json
search_player.json
skater_stats_leaders_20242025_2.json
standings_1967_04_01.json
nhl_summary_401874176.json
wnba_summary_401857321.json
test_agent_contract.py
test_betting_validation.py
test_betting.py
test_cli.py
test_cricket.py
test_espn_transport.py
test_esports.py
test_game_summary.py
test_imports.py
test_kalshi.py
test_markets_matching.py
test_markets.py
test_mlb_stats.py
test_nba_stats.py
test_ncaa.py
test_nfl.py
test_nhl_stats.py
test_premium.py
test_schemas.py
test_unit.py
test_volleyball.py
test_xctf.py
uv.lockFAQ
sports-skills is a Claude Code plugin with 25 hand-picked skills for data work, indexed on Flowy. Install it with the command on its page. It includes betting, cbb-data, cfb-data. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.