From machina-sports-sports-skills
Bridges ESPN live sports schedules with Kalshi and Polymarket prediction markets for unified odds comparison, entity search, and bet evaluation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/machina-sports-sports-skills:marketsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Bridges ESPN live schedules (NBA, NFL, MLB, NHL, WNBA, CFB, CBB) with Kalshi and Polymarket prediction markets. Before writing queries, consult `references/api-reference.md` for supported sport codes, command parameters, and price normalization formats.
Bridges ESPN live schedules (NBA, NFL, MLB, NHL, WNBA, CFB, CBB) with Kalshi and Polymarket prediction markets. Before writing queries, consult references/api-reference.md for supported sport codes, command parameters, and price normalization formats.
sports-skills markets get_todays_markets --sport=nba
sports-skills markets search_entity --query="Lakers" --sport=nba
sports-skills markets compare_odds --sport=nba --event_id=401234567
sports-skills markets get_sport_markets --sport=nfl
sports-skills markets get_sport_schedule --sport=nba
sports-skills markets normalize_price --price=0.65 --source=polymarket
sports-skills markets evaluate_market --sport=nba --event_id=401234567
sports-skills markets match_markets --sport=mlb --date=2026-06-06
sports-skills markets get_market_price --venue=kalshi --ticker=KXMENWORLDCUP-26-FR
sports-skills markets get_price_history --venue=kalshi --ticker=KXMENWORLDCUP-26-FR --interval=1d
Python SDK:
from sports_skills import markets
markets.get_todays_markets(sport="nba")
markets.search_entity(query="Lakers", sport="nba")
markets.compare_odds(sport="nba", event_id="401234567")
markets.get_sport_markets(sport="nfl")
markets.get_sport_schedule(sport="nba", date="2025-02-26")
markets.normalize_price(price=0.65, source="polymarket")
markets.evaluate_market(sport="nba", event_id="401234567")
markets.match_markets(sport="mlb", date="2026-06-06")
markets.get_market_price(venue="kalshi", ticker="KXMENWORLDCUP-26-FR", at_time="2026-05-01T12:00:00+00:00")
markets.get_price_history(venue="polymarket", token_id="<token_id>", interval="1h")
CRITICAL: Before calling any orchestration command, verify:
sport code is provided for sport-aware commands (get_todays_markets, compare_odds, get_sport_markets, evaluate_market).espn = American odds, polymarket = 0-1 probability, kalshi = 0-100 integer.--sport=nba maps automatically to the correct Polymarket sport code and Kalshi series ticker.sport → series_id; Kalshi uses KXNBA, KXNFL, etc.sports-skills markets get_todays_markets --sport=nba
Returns each game with ESPN info, DraftKings odds, matching Kalshi markets, and matching Polymarket markets.
get_sport_schedule --sport=nbacompare_odds --sport=nba --event_id=<id>evaluate_market --sport=nba --event_id=<id>betting.evaluate_bet: devig → edge → Kellymatch_markets --sport=mlb --date=2026-06-06kalshi.market_tickers[i] and polymarket.markets[i].token_ids[j] straight into get_market_price to compare prices.get_market_price --venue=kalshi --ticker=<ticker> --at_time=2026-05-01 for a single point-in-time price (both yes/no sides, 0-1).get_price_history --venue=kalshi --ticker=<ticker> --interval=1d for the full series — same {timestamp, price} shape on either venue.Example 1: Today's games with prediction market odds User says: "What NBA games are on today and what are the prediction market odds?" Actions:
get_todays_markets(sport="nba")
Result: Unified dashboard with each game's ESPN info and Kalshi/Polymarket pricesExample 2: Cross-platform team search User says: "Find me Lakers markets on Kalshi and Polymarket" Actions:
search_entity(query="Lakers", sport="nba")
Result: All Lakers markets across both exchanges with prices and volumeExample 3: Odds comparison for a specific game User says: "Compare the odds for this Celtics game across ESPN and Polymarket" Actions:
get_sport_schedule(sport="nba")compare_odds(sport="nba", event_id="<id>")
Result: Normalized side-by-side comparison with automatic arbitrage checkExample 4: Full market evaluation User says: "Is there edge on the Chiefs game?" Actions:
get_sport_schedule(sport="nfl")evaluate_market(sport="nfl", event_id="<id>")
Result: Fair probability, edge percentage, EV, Kelly fraction, and bet recommendationExample 5: Browse all markets for a sport User says: "Show me all NFL prediction markets" Actions:
get_sport_markets(sport="nfl")
Result: All open NFL markets across Kalshi and PolymarketExample 6: Price conversion User says: "Convert a Polymarket price of 65 cents to American odds" Actions:
normalize_price(price=0.65, source="polymarket")
Result: Common structure with implied probability (0.65), American odds (-185.7), and decimal (1.54)Example 7: Pair a game across venues User says: "Find the Mets game on both Kalshi and Polymarket" Actions:
match_markets(sport="mlb", date="<game date>")
Result: The game paired across venues — Kalshi market tickers and Polymarket moneyline token IDs side by sideExample 8: Historical price User says: "What was France's World Cup price a month ago?" Actions:
get_market_price(venue="kalshi", ticker="KXMENWORLDCUP-26-FR", at_time="2026-05-03T12:00:00+00:00")
Result: Yes/no prices (0-1) as of that moment; use get_price_history for the full curveget_oddscompare_odds to see odds across sources.search_marketssearch_entity instead.get_scheduleget_sport_schedule instead.If a command is not listed in references/api-reference.md, it does not exist.
Error: No markets returned for a sport
Cause: Sport code may be missing or incorrect
Solution: Check references/api-reference.md for valid sport codes. Use the exact code (e.g., nba, epl, laliga)
Error: compare_odds returns no data for an event
Cause: The event_id is incorrect or the game has not been indexed yet
Solution: Call get_sport_schedule(sport=...) to retrieve the correct event_id first
Error: One source shows warnings in the response Cause: Kalshi or Polymarket is temporarily unavailable Solution: The module returns partial results — use what is available. Retry the unavailable source separately using the kalshi or polymarket skill directly
Error: normalize_price returns unexpected American odds value
Cause: Wrong source parameter — Kalshi uses 0-100 integers, Polymarket uses 0-1 decimals
Solution: Verify the source. Kalshi price of 65 requires source="kalshi", Polymarket price of 0.65 requires source="polymarket"
npx claudepluginhub machina-sports/sports-skillsRead-only access to Polymarket sports prediction markets: live odds, prices, order books, events, and market search. Covers major sports leagues. No auth required.
Fetches live sports scores, schedules, and events for NBA, NFL, NCAAF, MLB, and Soccer. Designed for AI agents powering prediction market strategies on Polymarket or Kalshi with MoonPay wallet integration.
Queries Polymarket prediction market odds and events via CLI. Search for markets, get current prices, list events by category. Supports sports betting, politics, crypto, elections. No API key needed.