Lumify Sports Intelligence
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LUMIFY_API_KEY | No | Lumify API key (lmfy-...). Optional for tools/list; required for tools/call. Free instant key: https://lumify.ai/docs/ai |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 to see non-current/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_eventA | 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_eventsA | 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_eventsA | 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_oddsA | Get current betting odds for an event: per-bookmaker lines and last-updated time. bookmaker defaults to pinnacle; use 'all' for every book (costs 1 credit per book returned). Returns available:false with no charge if odds aren't posted for this event yet. Use get_odds_history for line movement over time instead of the current line. |
| get_odds_historyA | 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_splitsA | Get public betting splits (bets% and handle%) for an event: a consensus split plus a per-book breakdown, with a captured_at timestamp. Returns available:false with no charge if splits haven't been captured for this event yet. |
| get_intelligence | Get AI bet intelligence for an event: confidence scores, signal breakdowns, rationale, and narratives for each recommended bet, plus an overall analyst_take and match_overview. bookmaker defaults to pinnacle. Returns available:false with no charge if intelligence hasn't been computed yet for this event/bookmaker. |
| list_teamsA | 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_playerA | 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_eventsA | 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_seasonsA | List seasons per sport/league, optionally filtered by sport or to the current season only. 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| todays_games | Summarize today's games (optionally for one sport) with live scores. |
| event_bet_brief | Build an explainable betting brief for one event: odds, confidence, rationale, line moves, and public splits. |
| line_watch | Report line movement and where the public money is for one event. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| sports_catalog | Supported sports with their leagues and current season (JSON). The 'what can I query' entrypoint — resolve sport/league slugs and season ids here before calling list_events, list_teams, or search_players. |
| quickstart | Endpoint, zero-signup instant-key authentication, the full tool map, and the credit model — everything needed to make a first call. |
TDQS
Scored across 10 tools
The tools split cleanly across events, odds, teams, players, and seasons, and there are explicit cross-references (e.g., get_event vs batch_get_events vs list_events/query_events). The only mild overlap is that get_odds, get_odds_history, and get_splits all relate to betting data, but each targets a distinct data type: current lines, line movement, and splits.
Use of get_/list_/batch_/query_ conventions is mostly consistent: get_event, get_odds, get_player; list_teams, list_seasons; batch_get_events, query_events. One slight inconsistency is get_player_events (verb_noun_verb rather than get/get/list pattern) and list_teams/list_seasons vs batch_get_events, but overall naming is predictable.
10 tools is well-scoped for a sports intelligence API covering events, odds, teams, players, and seasons. Each tool maps to a distinct resource or data type, with no obvious bloat or redundancy.
The surface covers event retrieval (single, batch, query), odds, splits, teams, players, player events, and seasons. Notable gaps: there is no tool for listing or searching sports/leagues directly (list_sports is referenced but not present), and no get_team tool even though list_teams says to use get_team for full detail. Also search_players is referenced but not present. These are minor omissions since the described tools still cover core read-only workflows, but the cross-references reveal missing dependencies.