{"schema_version":"v1","generated_at":"2026-09-02T03:36:46.108Z","server":{"name":"bigballsports","display_name":"Big Balls Sports Data","version":"1.0.0"},"transport":{"base_url":"https://api.bigballsdata.com","auth":{"type":"bearer","header":"Authorization","format":"Bearer <api_key>","key_url":"https://bigballsdata.com/dashboard/keys"},"openapi_url":"https://bigballsdata.com/openapi.json"},"mcp_server":{"endpoint":"https://mcp.bigballsdata.com/mcp","transport":"streamable-http","protocol_version":"2025-06-18","server_card_url":"https://bigballsdata.com/.well-known/mcp/server-card.json","auth":{"schemes":["oauth2","bearer"],"oauth":{"protected_resource_metadata":"https://mcp.bigballsdata.com/.well-known/oauth-protected-resource/mcp","dynamic_client_registration":true,"note":"Connect and follow the 401 challenge: the server names its authorization server per RFC 9728, and that server supports Dynamic Client Registration, so no client credentials need to be created ahead of time and no API key is pasted."},"bearer":{"header":"Authorization","format":"Bearer <api_key>","key_url":"https://bigballsdata.com/dashboard/keys"}},"tools_note":"The `tools` array in this document is a REST catalogue and is NOT this server's tool set — the two share only `get_standings`. Call `tools/list` on `endpoint` for the authoritative list."},"tools":[{"name":"get_scores","description":"Live and recent matches for a sport or league. Required: sport. Optional: league, date (ISO YYYY-MM-DD), status (scheduled|live|finished|postponed|cancelled), limit. Returns an array of match rows, each with `id`, `sport`, `league`, `home`/`away` (team objects with name/short_name/logo_url), `kickoff_utc`, `status`, `score` (a {home, away} object, null before a result), `linescore`, and `has_odds`. There is no `period_scores` or `start_time` field.","inputSchema":{"type":"object","properties":{"sport":{"type":"string","description":"Sport key.","enum":["football","basketball","baseball","ice_hockey","cricket","mma","boxing","formula1","american_football"]},"league":{"type":"string","description":"League key (e.g. epl, nba). Omit for all leagues in the sport."},"date":{"type":"string","description":"ISO YYYY-MM-DD. Defaults to today UTC."},"status":{"type":"string","description":"Filter by match status.","enum":["live","scheduled","final"]}},"required":["sport"]},"endpoint":{"method":"GET","path":"/v1/matches"}},{"name":"get_odds","description":"Pre-match and in-play odds aggregated across bookmakers for a single match. Required: match_id and sport (sport scopes the match lookup). EDGE PLAN OR HIGHER — Free / Solo / Trio receive a 403 naming the tier. Returns an array of odds objects per market (moneyline, spread, total) with averaged decimal prices; bookmaker identities are never exposed.","inputSchema":{"type":"object","properties":{"match_id":{"type":"string","description":"Canonical match id (returned by get_scores or get_match)."},"sport":{"type":"string","description":"Sport key of the match.","enum":["football","basketball","baseball","ice_hockey","cricket","mma","boxing","formula1","american_football"]},"market":{"type":"string","description":"Filter to a single market.","enum":["moneyline","spread","total"]}},"required":["match_id","sport"]},"endpoint":{"method":"GET","path":"/v1/matches/{id}/odds"},"minPlan":"edge"},{"name":"get_standings","description":"Current league table. Required: sport, league. Optional: season (e.g. \"2025-26\"). Returns an array of standing rows with team_id, rank, played, won, drawn, lost, points, goal_difference.","inputSchema":{"type":"object","properties":{"sport":{"type":"string","description":"Sport key.","enum":["football","basketball","baseball","ice_hockey","cricket","mma","boxing","formula1","american_football"]},"league":{"type":"string","description":"League key."},"season":{"type":"string","description":"Season identifier. Defaults to current season."}},"required":["sport","league"]},"endpoint":{"method":"GET","path":"/v1/standings"}},{"name":"get_stats","description":"Per-match team box-score statistics (possession, shots, xG, cards, corners, …). Required: match_id. EDGE PLAN OR HIGHER — Free / Solo / Trio receive a 403 naming the tier. Returns stats keyed by canonical metric names; unknown vendor metrics are dropped.","inputSchema":{"type":"object","properties":{"match_id":{"type":"string","description":"Canonical match id for match-level stats."},"team_id":{"type":"string","description":"Optional team filter."}},"required":["match_id"]},"endpoint":{"method":"GET","path":"/v1/matches/{id}/statistics"},"minPlan":"edge"},{"name":"get_events","description":"Match timeline: goals, cards, substitutions, scoring plays. Required: match_id and sport (sport scopes the match lookup). Returns events ordered by sequence with type (goal, card_yellow, card_red, substitution, penalty_scored, etc.), elapsed minutes, and player references.","inputSchema":{"type":"object","properties":{"match_id":{"type":"string","description":"Canonical match id."},"sport":{"type":"string","description":"Sport key of the match.","enum":["football","basketball","baseball","ice_hockey","cricket","mma","boxing","formula1","american_football"]},"type":{"type":"string","description":"Filter events. Default: goals.","enum":["goals","all"]}},"required":["match_id","sport"]},"endpoint":{"method":"GET","path":"/v1/matches/{id}/events"}},{"name":"get_players","description":"Player profiles and current-team affiliations. Required: one of player_id, team_id, or sport+name. Returns canonical player records with full_name, display_name, current_team_id, position, date_of_birth, nationality.","inputSchema":{"type":"object","properties":{"player_id":{"type":"string","description":"Canonical player id for direct lookup."},"team_id":{"type":"string","description":"List the active roster for a team."},"sport":{"type":"string","description":"Required when searching by name.","enum":["football","basketball","baseball","ice_hockey","cricket","mma","boxing","formula1","american_football"]},"name":{"type":"string","description":"Partial-match search; requires sport."}},"required":[]},"endpoint":{"method":"GET","path":"/v1/players"}},{"name":"list_sports","description":"Catalogue of supported sports. No required params. Returns an array of sport records, each with `slug`, `name`, and `aliases` (an array of accepted alternate names). NOTE: this does NOT include leagues — list leagues separately with GET /v1/leagues?sport=<slug>.","inputSchema":{"type":"object","properties":{},"required":[]},"endpoint":{"method":"GET","path":"/v1/sports"}},{"name":"get_match","description":"Single match envelope combining scores, odds, lineups, events, and stats in one response. Required: match_id. Returns a match object with the canonical envelope per field carrying its own value, confidence, freshness, and provenance metadata.","inputSchema":{"type":"object","properties":{"match_id":{"type":"string","description":"Canonical match id."},"fields":{"type":"string","description":"Comma-separated subset of fields to include (default: all)."}},"required":["match_id"]},"endpoint":{"method":"GET","path":"/v1/matches/{id}"}}]}