betting
Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage…
Sports metadata via TheSportsDB free API (key=3). Team logos and badges, player photos, stadium info, league info, and biographical data across 100+ leagues. No API key required, zero config. Use when: user asks for a team logo, crest, badge, banner, jersey, kit, player photo or
$ npx -y skills add machina-sports/sports-skills --skill metadata --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/metadataContext preview
The summary Claude sees to decide when to auto-load this skill.
Sports metadata via TheSportsDB free API (key=3). Team logos and badges, player photos, stadium info, league info, and biographical data across 100+ leagues. No API key required, zero config. Use when: user asks for a team logo, crest, badge, banner, jersey, kit, player photo or
name: metadata description: | Sports metadata via TheSportsDB free API (key=3). Team logos and badges, player photos, stadium info, league info, and biographical data across 100+ leagues. No API key required, zero config. Use when: user asks for a team logo, crest, badge, banner, jersey, kit, player photo or headshot, stadium info, club description, or wants to search for teams or players by name across sports. Good for enriching responses from other skills with images and visual identifiers. Don't use when: user asks for scores, standings, fixtures, stats, or odds — 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), fastf1 (F1), volleyball-data (Dutch volleyball), xctf-data (NCAA XC/TF). Don't use for prediction markets — use polymarket or kalshi. license: MIT metadata: author: machina-sports version: "0.1.0"
Wraps the free [TheSportsDB](https://www.thesportsdb.com) API for team logos, player photos, and stadium info. No API key, no signup.
sports-skills metadata get_team_logo --team_name="Arsenal" sports-skills metadata get_team_info --team_name="Real Madrid" sports-skills metadata get_player_photo --player_name="Messi" sports-skills metadata search_teams --query="Manchester" sports-skills metadata search_players --query="LeBron"
Python SDK:
from sports_skills import metadata metadata.get_team_logo(team_name="Arsenal") metadata.get_team_info(team_name="Real Madrid") metadata.get_player_photo(player_name="Messi") metadata.search_teams(query="Manchester") metadata.search_players(query="LeBron")
CRITICAL: Before calling any metadata command, verify:
**Teams (logos, banners, stadium info):**
**Players (photos, bios):**
**Not covered:** MMA/UFC, Rugby, Esports, Boxing.
| Command | Required | Optional | Description | |---|---|---|---| | `get_team_logo` | team_name | sport | Team logo / badge URL | | `get_team_info` | team_name | | Full team info: stadium, description, social links, banner | | `get_player_photo` | player_name | | Player photo URL | | `search_teams` | query | | Fuzzy search for teams across sports | | `search_players` | query | | Fuzzy search for players across sports |
1. Call the sport-specific skill (e.g., `football get_season_standings`) for the standings table. 2. For each team in the standings, call `get_team_logo --team_name=<name>` to attach a badge URL. 3. Render the standings with logos alongside team names.
1. Call `get_team_info --team_name="<name>"` for stadium, description, founding year, social links. 2. The same response includes `badge` and `banner` URLs — no second call needed.
1. Call `search_teams --query="<partial-name>"` to disambiguate. 2. Use the exact `name` field from the result for follow-up `get_team_info` calls.
Example 1: Get a Premier League team logo User says: "What does the Arsenal logo look like?" Actions: 1. Call `get_team_logo(team_name="Arsenal")` — `sport` defaults to "Soccer", which is correct here. Result: Logo URL, sport, league, and country.
Example 2: NBA team — full name required User says: "Get the Lakers logo" Actions: 1. Call `get_team_logo(team_name="Los Angeles Lakers", sport="Basketball")` — both the full name AND the sport filter are needed. Result: Lakers badge from the NBA branch of TheSportsDB.
Example 3: Player photo User says: "Show me a photo of Messi" Actions: 1. Call `get_player_photo(player_name="Messi")`. Result: Player photo URL, sport, team, and nationality.
Example 4: Disambiguate "Manchester" User says: "Find me Manchester teams" Actions: 1. Call `search_teams(query="Manchester")`. Result: List of teams matching "Manchester" — Manchester United, Manchester City, etc. — each with sport, league, and country.
If a command is not listed in the Commands table above, it does not exist.
Error: `get_team_logo` returns the wrong team Cause: A short or ambiguous team name (e.g., "Lakers", "Arsenal") matched a different sport first Solution: Pass an explicit `sport` parameter and use the team's full official name
Error: `get_team_logo` / `get_team_info` say "No team named ... found" Cause: TheSportsDB's free search returned only teams whose names ar
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.
Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage…
College Basketball (CBB) data via ESPN public endpoints and the NCAA's official endpoints —…
College Football (CFB) data via ESPN public endpoints and the NCAA's official endpoints —…
Cricket data via ESPN public endpoints and Cricsheet open data — live-ish series scoreboards,…
Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia). Pro matches,…
Formula 1 data — race schedules, results, lap timing, driver and team info. Powered by the…