Lumify Sports Intelligence
About
Agent-ready sports intelligence API: live scores, odds, line movement, public betting splits, and explainable bet confidence — via 16 MCP tools at https://lumify.ai/mcp. Get a free key instantly — no signup, email, or ca
Details
- Author
- Lumify
- Downloads
- 1,883
- Transport
- SSE
- Categories
- AI, API
Jump to
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Lumify Sports IntelligenceCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
{
"mcpServers": {
"lumify": {
"type": "http",
"url": "https://lumify.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
list_sports
List supported sports with their leagues and current season. Returns each sport's id, slug, name, team-sport flag, and its leagues (each with its current_season). Use list_seasons with current_only=false for historical seasons.
list_events
List events (schedules and live scores), paginated by id (after_id). Filter by sport, league, status, date range, season, or team_id (resolve teams via list_teams / get_team). Returns event id, name, sport/league, start time, status, and venue for each; pass include_scores to also inline participants + scores (intended for small result sets — use get_event for one event's full detail, or query_events for free-text/natural-language filters instead of structured params).
get_event
Get a single event with participants and venue. Optionally inline current odds and/or bet intelligence (+1 credit each, only charged when that data is actually available). Raises a not-found error if event_id doesn't exist. Use list_events / query_events to discover ids first, or batch_get_events to fetch several ids in one call.
batch_get_events
Get multiple events by id in one call — for agents that already have a list of ids and want full detail for each without one call per event. Max 25 ids. Returns full detail for every id that exists plus a not_found list for any that don't (never billed). Use get_event for a single id, or list_events / query_events to discover ids first.
query_events
Search events with a natural-language query instead of structured filters — e.g. 'live nfl games today' or 'college basketball this week'. Rule-based (not an LLM): recognizes sport (nfl/nba/mlb/nhl/tennis/soccer/ncaaf/ncaab + aliases like hockey, american football, college basketball), status (live/final/upcoming/…), dates (today/tomorrow, this week, next N days, YYYY-MM-DD ranges). Bare 'football' is ambiguous and left unrecognized. Response includes interpreted filters, equivalent REST call, and unrecognized_terms. Prefer list_events when you already know the structured filters you want.
get_live_score
Get a lightweight live score snapshot for an event: status, period, clock, per-participant score and period-by-period scores, and last-updated time. Cheaper and faster than get_event when you only need the score, not participants or venue. Raises a not-found error if event_id doesn't exist.
get_odds
Get current betting odds for an event: per-bookmaker lines and last-updated time. bookmaker defaults to pinnacle (1 credit). Use 'all' or a comma-separated list for multiple books (2 credits). Default is main lines (is_main=true); set include_alts for alternate spread/total rungs. Final events include result (won/lost/push/void) graded from the stored score. MLB, tennis, and migrated soccer mains also include fair_price and consensus mirrored from published assessments. Returns available:false with no charge if odds aren't posted for this event yet. Use get_odds_history for line movement over time.
get_odds_history
Get line-movement history for an event: a list of past odds snapshots (movements), each with its own timestamp, up to limit entries. bookmaker defaults to pinnacle. Use get_odds instead if you only need the current line.
get_stats
Get raw, deterministic team/player and match statistics for a soccer, MLB, tennis, NFL, NCAAF, NBA, NCAAB, or NHL event — no market/odds data (use get_odds for that) and no scoring, weighting, confidence, or narrative attached; use get_intelligence for Lumify's judgment layer. The payload shape is sport-specific — soccer/MLB/NFL/NCAAF/NBA/NCAAB/NHL use teams.home/away; tennis uses players.player_1/player_2 + match.scoreboard; never share field names across sports. Soccer: team strength (league-table PPG or FIFA rank), recent form, head-to-head history, rest days, home/away splits, and boxscore rates (shots/SoT for & against, possession, corners, cards, saves/save rate, plus Phase 1C offsides/tackles/interceptions/blocked_shots/assists — team assists is summed from ESPN's per-player goalAssists, since ESPN has no team-level assists stat) over explicit windows rates_l5/rates_season. Shot location is not on ESPN's team box — not exposed. MLB: season-to-date W/L record + run differential, recent form (runs scored/allowed), H2H, rest days, team batting/pitching rates (rates_l5/rates_season — AVG/OBP/SLG/OPS/ERA/WHIP/K9/BB9 plus RBI/TB/triples), starting pitcher's own season ERA/WHIP/K9/BB9 once the post-final box lineup lands (pregame probable SP stays on get_intelligence), lineup from completed-game box scores, and this event's player_box (per-player batting/pitching counting stats — no per-player AVG/ERA; settleables stay on player-props). Tennis (main-draw singles only): Stage-1 FlashLive history (match context, rankings, set scoreboard, rest days, recent/surface form, tour lookback record, H2H) plus Stage-2 career_rates / career_surface from persisted Tennis API aggregates (serve/return, break points, match-surface W/L) — request path is DB-only. NFL Stage-1: season W/L + point differential, recent form (points scored/allowed), H2H, rest days, and team offense/defense rates (total/passing/rushing yards, attempts, turnovers, third_down_pct) from persisted ESPN team boxes — no per-player block on this endpoint (player game stats are persisted for a future player-props surface). NCAAF Stage-1: same football-native shape as NFL (season W/L + point differential, form, H2H, rest, offense/defense rates from ESPN college-football team boxes) — scoped to sport=ncaaf so rates never mix with NFL. NBA Stage-1: season W/L + point differential, recent form (points scored/allowed), H2H, rest days, and team box rates (rebounds/assists/steals/blocks/turnovers/fouls per game plus fg_pct/three_point_pct/free_throw_pct as ratio-of-sums over persisted made/attempt pairs) — no per-player block, same player-props deferral as NFL. NCAAB Stage-1: same basketball-native shape as NBA from ESPN mens-college-basketball team boxes — scoped to sport=ncaab. NHL Stage-1: season W/L + goal differential (OT/shootout losses count as losses), recent form (goals scored/allowed), H2H, rest days, and team box rates (shots_on_goal/hits/penalty_minutes/power_play_goals/giveaways/takeaways/blocked_shots per game) from the NHL Web API boxscore endpoint — no per-skater/goalie block, same player-props deferral as NFL/NBA. NFL/NCAAF/NBA/NCAAB preseason games are excluded from form/rates/record/H2H via lumify_events.season_type; NHL never ingests preseason games at all, so no filter is needed there. Form/record/rest/H2H count status final/complete only (walkovers excluded as unplayed; retirements count). Returns available:false with no charge if participants haven't resolved, or tennis draw_type is not exactly 'singles' (doubles and qualifying are out of scope, same as the tennis predictive stack).
get_splits
Get public betting splits (bets% and handle%) for an event: a consensus split plus a per-bookmaker breakdown (bookmakers[].bookmaker uses the same odds slugs as get_odds, e.g. draftkings — not upstream short keys like dk), with a captured_at timestamp. Available for MLB, NBA, NHL, and NFL. Not available for tennis, soccer, or NCAAF (upstream does not expose splits). Returns available:false with no charge if splits haven't been captured for this event yet or the sport is unsupported.
get_intelligence
Get AI bet intelligence for an event. Branch on sport/league and on the presence of probability (probability model) vs. confidence_score (points model). Probability customer surface (MLB, soccer/MLS, tennis): probability, interval, fair_price, market, edge, tier, plus Price fair/edges_by_book/best — framework plumbing (p_model, p_market, blend_w, sufficiency, phase, model_version, drivers, alignment) is omitted. edge/tier null and has_recommend false today — fair-price + line-shopping, not picks; price gap ≠ EV. Predictive MLB may also return a Search-backed match_overview + top-level rationale[] (context overlay, not a pick) generated on first request and reused after — distinct from bets[].rationale on points sports. Points model (NFL, NCAAF, unmigrated soccer): confidence scores, signals, bets[].rationale, narratives. Match-level tokens (OVER, UNDER, ML_DRAW) have null player_role/player_id/team_id/player_name. bookmaker defaults to pinnacle and is a no-op for probability-model sports. Returns available:false with no charge if intelligence hasn't been computed yet.
list_teams
List teams, paginated by id (after_id). Filter by sport, league, conference, division, country, active status, or name (q, partial match). Returns each team's id, slug, name, city, conference/division, and venue. Use get_team for full detail on one id once resolved here.
search_players
Search players by name, sport, country, ranking, or active status, paginated by id (after_id). Returns each player's id, name, position, current team, and tennis ranking if applicable. Use get_player for full detail on one id, or get_player_events for a player's schedule/results.
get_team
Get a single team profile with its home venue. Raises a not-found error if team_id doesn't exist. Resolve ids via list_teams.
get_player
Get a single player profile: name, sport, country, position/handedness, physical stats, current team, and tennis ranking if applicable. Raises a not-found error if player_id doesn't exist. Resolve ids via search_players.
get_player_events
List a player's events (schedule/results), paginated by id (after_id). Defaults to ±30 days around today when no date filter is given. Resolve player_id via search_players first.
list_seasons
List seasons per sport/league. By default returns only currently active seasons; pass current_only=false to include historical seasons. Optionally filter by sport. Returns each season's id, year, phase, start/end dates, and whether it is_current. Use list_sports for just each sport's current season.
estimate_cost
Estimate the credit cost of one or more planned tool calls before making them — no credits are spent. Costs are data-dependent (e.g. odds/intelligence/splits not yet ingested for an event are free, and batch_get_events ids that don't exist cost nothing), so this returns a [min_credits, max_credits] range per call rather than a single number. Pass the exact tool name and arguments you're considering, e.g. {"tool": "get_event", "arguments": {"event_id": 123, "include_odds": true}}.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"lumify sports intelligence": {
"lumify": {
"type": "http",
"url": "https://lumify.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
}
McpServers
{
"lumify": {
"type": "http",
"url": "https://lumify.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
Agent-ready sports intelligence API: live scores, odds, line movement, public betting splits, and explainable bet confidence — via 16 MCP tools at https://lumify.ai/mcp. Get a free key instantly — no signup, email, or card — at https://lumify.ai/docs/ai.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.

