protogrid

Search / com.sportstatsapi/sports-data

SportStatsAPI

R0· no sign-in

Fixtures, live scores, results, tables and match facts for 1,881 competitions in 8 sports.

v1.36.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality67needs work
Trust83of 100
Uptime, 30 days100%
Latency p50430 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "sports-data": {
      "type": "http",
      "url": "https://mcp.sportstatsapi.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SPORTS_DATA_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http sports-data https://mcp.sportstatsapi.com/mcp --header "Authorization: Bearer ${SPORTS_DATA_TOKEN}"
[mcp_servers.sports-data]
url = "https://mcp.sportstatsapi.com/mcp"
bearer_token_env_var = "SPORTS_DATA_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sports-data": {
      "type": "remote",
      "url": "https://mcp.sportstatsapi.com/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:SPORTS_DATA_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "sports-data": {
      "type": "http",
      "url": "https://mcp.sportstatsapi.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SPORTS_DATA_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=sports-data&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLnNwb3J0c3RhdHNhcGkuY29tL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke1NQT1JUU19EQVRBX1RPS0VOfSJ9fQ%3D%3D"
}
{
  "servers": {
    "sports-data": {
      "type": "http",
      "url": "https://mcp.sportstatsapi.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SPORTS_DATA_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "sports-data": {
      "httpUrl": "https://mcp.sportstatsapi.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SPORTS_DATA_TOKEN}"
      }
    }
  }
}
extensions:
  "sports-data":
    enabled: true
    name: "sports-data"
    type: streamable_http
    uri: "https://mcp.sportstatsapi.com/mcp"
    headers:
      "Authorization": "Bearer ${SPORTS_DATA_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${SPORTS_DATA_TOKEN}. The registry never accepts secret values.

Quality 67 / 100needs work

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations34 of 34 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_golf_leaderboard (destructiveHint); get_mma_fighter (destructiveHint); get_team (destructiveHint); …
  • warn
    tools.token_costabout 9,406 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes103 tool changes in 30 days
  • fail
    stability.rug_pull7 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

34 tools, about 9,406 tokens to load them all · tool set 513c199773a3 · tools last changed 2026-10-16 · checked 2026-10-19 20:06 UTC

Tool changes

  • get_snooker_darts_tournamentchangedinput schema
  • get_snooker_darts_playerchangedinput schema
  • get_runner_formchangedinput schema
  • get_raceschangedinput schema
  • get_race_briefingchangedinput schema
  • get_racechangedinput schema
  • get_motorsport_eventchangedinput schema
  • get_mma_fighterchangedinput schema
  • get_mma_eventchangedinput schema
  • get_golf_playerchangedinput schema

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-12d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.sportstatsapi.com/mcp streamable-httpnoneyes100%430 ms2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-052026-10-19

Tools (34)

find_horsesread-onlyFind horses, jockeys and trainers by name, with their ids (for get_runner_form), most recently seen first.
find_leaguesread-onlyFind leagues (competitions) of a sport and their ids, optionally by name or country (also matches official_name, the competition's official or Wikidata name where known). Free.
find_teamsread-onlyFind teams by name, with their ids, country, venue and leagues.
get_boxing_eventread-onlyOne boxing event with every bout from the main event down: weight class, world titles at stake (WBA, WBC, IBF, WBO, Ring), fighters, result, method (KO, TKO, UD, SD, MD, RTD, DQ, TD, NC, draw), round, time, rounds scheduled.
get_boxing_eventsread-onlyBoxing events of the last and the current year from Wikipedia: fight cards and world title fights, with date, venue, city, status and the main event's winner (cite the attribution). The current world champions: get_standings with sport boxing.
get_boxing_fighterread-onlyA boxer (fighter_id): birth date, country, height, reach, stance and professional record (Wikipedia/Wikidata), world titles held now, latest bouts; or find boxers by name.
get_golf_leaderboardread-onlyA golf tournament's leaderboard: position (tied), to par, strokes per round, thru and today while live, earnings, missed cut or withdrawn, and per-player stats (birdies, eagles, driving distance and accuracy, greens in regulation, putts); holes=true adds hole-by-hole scores.
get_golf_playerread-onlyA golfer's profile (country, birth date and place, PGA Tour rank) and season results from our leaderboards with events, wins, top 10s, cuts made and earnings (player_id); or find golfers by name.
get_golf_tournamentsread-onlyGolf tournaments of the PGA Tour and LPGA by date: course, location, purse, status and the leader or winner. Leaderboards exist for the PGA Tour only. The season money list: get_standings with sport golf.
get_h2hread-onlyHead-to-head of two teams (soccer by default; any team sport with results: basketball, baseball, hockey, handball, volleyball, American football) over every meeting in our data (all competitions, no friendlies): won, drawn and lost from team_a's side (home_team_* fields = team_a), goals (the sport's score: points, runs, sets won), each side's biggest win, the last 5 meetings, with sentences (lang de, es, it, fr). history_from: our data starts there, so say 'since' that date. Tennis: get_player with vs. Facts only. Insights feature.
get_league_factsread-onlyWhat finished matches changed, newest first: the match story (comebacks, late winners, red cards), runs started or ended, table places and zones, each also as a sentence (lang de, es, it, fr). Use for 'what happened in this league today'. Facts only. Insights feature.
get_live_matchesread-onlyMatches in play right now, with score and minute or period, and the TV channels showing them where known.
get_matchread-onlyOne match: teams, score, status, events (goals, cards...), venue, referee; where known TV channels by country and, after the match, a highlights video link. Soccer adds timeline: the events normalised (minute, extra_minute, team home/away, kind goal, penalty, own_goal, missed_penalty, yellow, second_yellow, red, substitution or var, player, assist, player_in/player_out, detail: card reason or VAR outcome; minute null = not known; no headers or xG per shot: not in our data) and referee_stats: the referee's season in the league (games, cards and penalties per game, with league_matches_with_referee of league_matches_played).
get_match_briefingread-onlyReady briefing for one match (any sport but cricket): form, current streaks, home and away records, head-to-head, table position and gaps, stakes, schedule; for soccer also injuries, lineups, players one league appearance or goal short of a club milestone (milestone_next) and, after the match, the story (comeback, late winner, red cards), runs it ended (streak_ended_*: 'first defeat after 11 unbeaten') and long waits it ended that our data can date (first_since_*: first win at the opponent's ground, first clean sheet, top of the table for the first time since a day; history_from: nothing is claimed before it). The head-to-head block has goals and each side's biggest win. Soccer before kickoff: players suspended (suspended_out) or one booking from a ban, by the league's card rules. Each statement also as a sentence (lang de, es, it, fr). Facts only, no predictions. Insights feature. Prefer this for 'tell me about this match'.
get_match_detailsread-onlyDetail of one match: statistics or box score, lineups, injuries (soccer: per player type, expected_return and matches_missed; null = not known, never guess), play-by-play, a cricket scorecard (batting, bowling, fall of wickets), rugby scoring events, esports maps and games with player lines, or the singles and doubles of a table tennis team match with set scores.
get_matchesread-onlyMatches (fixtures and results) by day or date range, optionally of one league, or one team's matches in every competition (team_id; without status or dates its latest results, then live, then next matches; with status scheduled only the next ones, with finished only the latest results). Without a date or team: today (UTC). Where known: TV channels by country (where to watch) and a highlights video link.
get_mma_eventread-onlyOne MMA card from the main event down (weight class, fighters, winner, method, round, time, judges' scores, fight stats), or with bout_id one fight.
get_mma_eventsread-onlyMMA (UFC) fight cards by date: name, date, status and the main event with its result once known.
get_mma_fighterread-onlyAn MMA fighter's record (wins, losses, draws, no contests; wins and losses by KO/TKO, submission, decision) from the bouts held since 2026, with the last fights; where Wikipedia/Wikidata has the fighter also the profile (birth date, height, reach, stance, nationality, weight class, team), the career record and the fights before 2026 (cite the attribution). Or find fighters by name.
get_motorsport_eventread-onlyOne motorsport weekend with its sessions (practice, qualifying, sprint, race; start in UTC, status), or with session_id one session's results: position, driver, team, time or gap, laps, grid, pit stops, DNF/DNS/DSQ.
get_motorsport_eventsread-onlyMotorsport race weekends (Formula 1, MotoGP, Moto2, Moto3, Formula 2, Formula E, IndyCar, NASCAR) by start date: round, name, country, circuit, dates, status and the race winner once known. With overview: every series with its season, next and last event.
get_playerread-onlyPlayer profile: position, nationality, birth date, height, team, career and photo link where known; cricket and tennis also Wikidata values (birth date, height, batting or playing hand, bowling style, role, country; cite the attribution); tennis also the ATP/WTA rank, or with vs the head-to-head of two players; soccer also bio: known_as, full_name, short_name, birth_date, age, nationality, position, number, club, market_value_eur (null = not in our data; there are no contract dates), and season_stats: the current season (or season) in every competition we hold statistics for, total and per competition (apps, minutes, goals, assists, cards, shots, rating; null = not in our data; matches_with_stats of team_matches_played says how complete it is); NBA, MLB and NFL players also season_stats: the season line per team from the data provider's team feeds (stats by category as the feed names them; season null for the NBA, whose feed names none, as_of when read).
get_raceread-onlyOne horse race card: runners with number, horse, jockey, trainer, weight, rating, recent form where the feed has it, best current price and morning line; once settled the result (positions, starting prices, finish codes such as PU or F) and results_final.
get_race_briefingread-onlyReady briefing for one horse race from our results: field size, distance, going, class, the favourite, each runner's form figures and last run, jockey and trainer strike rates over the last 30 days; after the race the winner, starting price and whether the favourite won. Each statement also as a sentence (lang de, es, it, fr). Facts only.
get_racesread-onlyHorse races of a day (default today, UTC), optionally of one region or racecourse: off time, course, race name, distance, going, class, number of runners, status (NS, live, result_pending, FT).
get_runner_formread-onlyLast runs of a horse, jockey or trainer in our stored results, latest first: date, course, distance, going, position and field size, starting price; plus wins, top-three finishes and strike rate over those runs.
get_snooker_darts_playerread-onlyA snooker or darts player (player_id): country, world ranking, birth date (Wikidata), titles and finals in the stored seasons, latest matches; or find players by name.
get_snooker_darts_tournamentread-onlyA snooker or darts tournament with its whole draw (qualifying first, the final last): round, players, seeds, frames/legs/sets won, best of, three-dart averages where listed; snooker also the century breaks per player.
get_snooker_darts_tournamentsread-onlySnooker (World Snooker Tour ranking and invitational events) or darts (PDC majors, World Series, Players Championships, European Tour) tournaments of the current and last season from Wikipedia: dates, venue, prize fund, winner, final score. The world ranking: get_standings with sport snooker or darts.
get_standingsread-onlyLeague table of a league; for soccer also the top scorers, most assists or most cards (top_scorers), every player's season statistics sorted by goals, assists, minutes, rating, xg or apps (player_stats), every team's season statistics with ranks such as the best defence (team_stats), the referees with cards and penalties per game (referees), the roll of honour with champions and runners-up per season and their sources (champions), home attendance per team and league (attendance), the xG table with expected points against real points (xg_table), players banned or one booking away from a ban (suspensions) and past seasons' final tables (season); for every sport with results Elo-style team ratings of a league or the whole sport (ratings); for tennis the ATP or WTA singles ranking (tour); for motorsport a series' drivers or teams championship (series, kind); for golf the season money list with wins (tour); for snooker and darts the world ranking (WPBSA, PDC Order of Merit); for boxing the current world champions per weight class and body; for cricket the points table of a series or league.
get_teamread-onlyTeam profile: country, founded, venue, leagues, logo link; rating: its Elo-style rating (rank of of in its league, matches_rated, rated_from, the last 10 changes); next: its next 5 matches in every competition (more: get_matches with team_id; fixture congestion: get_team_briefing). Soccer also coach: the current head coach from Wikidata with appointment date and won/drawn/lost since (record_complete false: our matches start later, at record_from, so say the record covers only that; cite the attribution), and squad_value_eur: the current squad's summed market value over players_with_value of squad_players. Options: squad (the players); soccer: coach (adds previous_coach and previous_club), facts (runs, first since, milestones; Insights feature), season_stats (the current season per league: home/away records, goals, clean sheets, biggest win and defeat, xG over matches_with_xg, home attendance over matches_with_attendance, the team's rank per metric), transfers (the latest 20), honours (titles and runners-up with sources), injuries (players out for coming matches: type, expected_return null = not known, never guess one; matches_missed a lower bound when matches_missed_complete is false). For an MLB, NBA, WNBA, NHL or NFL team, injuries returns its current injury report and season_stats its season statistics instead of the profile.
get_team_briefingread-onlyReady briefing for one team (any sport but cricket; for tennis a player): form, streaks (overall, home, away; streak_season_best: the longest of the season), home and away record, table place and gaps, last and next match, congestion (games_last_7d, games_last_14d in every competition, rest_days from the last match to the next), injuries (soccer); what its last match ended (runs; soccer: first_since_* waits); soccer player milestones for the club (debut, first goal, 50/100/150 league appearances, 25/50/75 league goals, milestone_next before the next match; only when our statistics hold the whole season); each also as a sentence (lang de, es, it, fr). Facts only. Insights feature.
get_transfersread-onlySoccer transfers from player profiles: player, from and to team, date, season, window (summer, winter, other by the date), type (transfer, loan, loan_return, free, promoted, swap, unknown) and fee_eur where the feed gives an amount (often null: say the fee is not known, never 0). Filter by league (moves in or out of its current teams), team (direction in or out), season and window; sort by fee for the biggest moves. Moves dated after today (mostly planned loan ends) are left out; planned true returns only those. Profiles are re-read every 30 days, so the latest moves can be missing.
list_sportsread-onlySports available, with whether each has upcoming matches. Free. Horse racing has its own tools (get_races, get_race, get_race_briefing, find_horses, get_runner_form), motorsport too (get_motorsport_events, get_motorsport_event; get_standings with sport motorsport), MMA (get_mma_events, get_mma_event, get_mma_fighter), golf (get_golf_tournaments, get_golf_leaderboard, get_golf_player; get_standings with sport golf), snooker and darts (get_snooker_darts_tournaments, get_snooker_darts_tournament, get_snooker_darts_player; get_standings with sport snooker or darts), boxing (get_boxing_events, get_boxing_event, get_boxing_fighter; get_standings with sport boxing for the current world champions).

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.sportstatsapi/sports-data",
  "title": "SportStatsAPI",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.sportstatsapi.com/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Optional: Bearer <your SportStatsAPI key>. Without a key, list_sports and find_leagues are free and other tools are paid per call with x402 (USDC on Base)."
        }
      ]
    }
  ],
  "version": "1.36.0",
  "websiteUrl": "https://sportstatsapi.com/ai-agents/",
  "description": "Fixtures, live scores, results, tables and match facts for 1,881 competitions in 8 sports."
}