Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

SportStatsAPI

REMOTE · MCP.SPORTSTATSAPI.COM

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

+3 this week 75 Trust /100

Last scanned (4 hours ago)

Scores higher than 64% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Entertainment and Games

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security74
Transport & Reachability100
Schema Quality & AI Usability58
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 9092 tokens (~252/item across 36 items; 36 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management50
  • Stability check failed: schema churn in the 28 days we've observed: 0 tool removals, 11 breaking changes, 0 auth/transport breaks, 23 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 36 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 37 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47.

  • 3 Nov 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • “get_match_details” reworded the description of “part” cosmetic
  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40.

  • 1 Nov 26 0
    • Tool “get_match” rewrote its description, which is the text the model reads security
  • 31 Oct 26 +1
    • The server rewrote its instructions, which are the text every model session reads security
  • 30 Oct 26 0
    • “get_match_details” reworded the description of “part” cosmetic
    • “get_summary” reworded the description of “sport” cosmetic

    2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27.

  • 27 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://mcp.sportstatsapi.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.sportstatsapi.com CN=YE2,O=Let's Encrypt,C=US 29 Oct 2026 27 Jan 2027 ECDSA 256 ECDSA-SHA384 5380f3d32adfd01948747214148e56a13a8
SANs: api.sportstatsapi.com, mcp.sportstatsapi.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.sportstatsapi.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
sportstatsapi.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
x-content-type-options nosniff

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.sportstatsapi.com/mcp Verified 200
http (plaintext) http://mcp.sportstatsapi.com/mcp HTTPS enforced 301 https://mcp.sportstatsapi.com/mcp
MCP tools · 36 exposed · ~8,578 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
find_horses ~74

Find horses, jockeys and trainers by name, with their ids (for get_runner_form), most recently seen first.

NameTypeReqDescription
limitinteger–max results per kind (default 20, max 50)
namestringyespart of a horse, jockey or trainer name (2-64 characters)

No output schema declared.

No examples provided.

find_leagues ~153

Find 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.

NameTypeReqDescription
futureboolean–only leagues with upcoming matches
langstring–language of team, league and country names: de, es, it or fr (default English)
querystring–text the league or country name must contain, e.g. 'Premier League' or 'Germany'
sportstringyessport: soccer, basketball, baseball, hockey, tennis, handball, volleyball, american-football, cricket, rugby (union), rugby-league, esports or table-tennis

No output schema declared.

No examples provided.

find_teams ~113

Find teams by name, with their ids, country, venue and leagues.

NameTypeReqDescription
langstring–language of team, league and country names: de, es, it or fr (default English)
league_idinteger|string–only teams of this league
limitinteger–max teams (default 20, max 100)
namestringyespart of the team name, e.g. 'Bayern'
sportstringyessport (see list_sports)

No output schema declared.

No examples provided.

get_boxing_event ~100

One 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.

NameTypeReqDescription
event_idinteger|stringyesevent code (or number) from get_boxing_events

No output schema declared.

No examples provided.

get_boxing_events ~172

Boxing 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.

NameTypeReqDescription
date_fromstring–YYYY-MM-DD
date_tostring–YYYY-MM-DD
kindstring–card (a whole card) or title_fight (a world title fight from a champion's record)
limitinteger–max events (default 20, max 100)
offsetinteger–skip this many events (paging)
seasonstring–year (default: the last and the current year)
statusstring–scheduled, live, finished or no_results

No output schema declared.

No examples provided.

get_boxing_fighter ~90

A 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.

NameTypeReqDescription
fighter_idinteger|string–fighter code (or number) from a bout or the champions
namestring–part of a boxer's name, to find the id

No output schema declared.

No examples provided.

get_bracket ~298

A knock-out bracket: rounds in playing order, ties with their legs, aggregate (soccer: goals after extra time), the side that advanced and how (score, aggregate, extra_time, penalties, walkover, next_round), and from: the tie a side won to get there. Soccer cups and the European knock-out phases (league_id, season); tennis draws (league_id: the category id, season: a year), rebuilt from who beat whom (qualifying first; seeds, entry types and draw order where a Wikipedia draw is linked); snooker and darts tournaments (tournament_id). Rounds we cannot prove from stored matches have status missing with a reason and no ties; pairings are never guessed (snooker and darts add 'winner of A v B' placeholders only where the draw's tree is proven).

NameTypeReqDescription
league_idinteger|string–soccer: the cup's league code (or number), from find_leagues; tennis: the tournament's category id
seasonstring–soccer: 2025-26, 2025/2026 or 2025 (default: the latest season with knock-out rounds); tennis: a year (default: the latest edition)
sportstringyessoccer, tennis, snooker or darts
tournament_idinteger|string–snooker or darts: tournament code (or number) from get_snooker_darts_tournaments

No output schema declared.

No examples provided.

get_facts ~188

Ready fact sentences for a match or team, most important first: form, streaks, records, head-to-head, table and stakes; after a match the story and the runs it ended. Each fact: type, importance, text (lang de, es, it or fr). summary: the top ones as one paragraph. Facts only, no predictions. The same facts as get_match_briefing and get_team_briefing without the data blocks. Insights feature.

NameTypeReqDescription
idinteger|stringyesmatch or team code (or number)
kindstringyesmatch or team (tennis: a player); a league: get_league_facts
langstring–language of team, league and country names: de, es, it or fr (default English)
sportstring–sport (default soccer; not cricket or table-tennis)

No output schema declared.

No examples provided.

get_golf_leaderboard ~111

A 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.

NameTypeReqDescription
holesboolean–also each player's hole-by-hole scores (large)
tournament_idinteger|stringyestournament code (or number) from get_golf_tournaments

No output schema declared.

No examples provided.

get_golf_player ~116

A 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.

NameTypeReqDescription
namestring–part of a golfer's name, to find the id
player_idinteger|string–player code (or number) from a leaderboard: profile and the season's results
seasoninteger–season of the results (default: the latest)

No output schema declared.

No examples provided.

get_golf_tournaments ~169

Golf 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.

NameTypeReqDescription
date_fromstring–tournaments ending on or after YYYY-MM-DD
date_tostring–tournaments starting on or before YYYY-MM-DD
limitinteger–max tournaments (default 20, max 100)
offsetinteger–skip this many tournaments (paging)
seasoninteger–season (year)
statusstring–scheduled, live, finished, no_results or incomplete
tourstring–pga or lpga (LPGA: schedule only, no leaderboards)

No output schema declared.

No examples provided.

get_h2h ~227

Head-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.

NameTypeReqDescription
langstring–language of team, league and country names: de, es, it or fr (default English)
sportstring–team sport (default soccer; see list_sports; tennis: get_player with vs)
team_ainteger|stringyesteam code (or number) from find_teams or a match
team_binteger|stringyesthe other team's id

No output schema declared.

No examples provided.

get_league_facts ~175

What 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.

NameTypeReqDescription
langstring–language of team, league and country names: de, es, it or fr (default English)
league_idinteger|string–only this league (from find_leagues)
min_importanceinteger–only facts of at least this importance, 0-100 (default 50)
sincestring–only matches updated after this RFC 3339 time
sportstring–sport (default soccer; see list_sports)

No output schema declared.

No examples provided.

get_live_matches ~82

Matches in play right now, with score and minute or period, and the TV channels showing them where known.

NameTypeReqDescription
langstring–language of team, league and country names: de, es, it or fr (default English)
league_idinteger|string–only this league
sportstringyessport (see list_sports)

No output schema declared.

No examples provided.

get_match ~330

One 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). Matches with a page on our website (soccer, basketball, hockey, tennis, volleyball, handball, baseball, American football, cricket): summary, ready paragraphs on the match from our data (table places, form, meetings, season; cricket: the result, the innings, the best performances, before the start form and meetings in the format), with key_facts before kick-off and what_it_means after the result, summary_as_of when written; only until kick-off and once finished, English only (no lang). Quote them as facts; never add predictions.

NameTypeReqDescription
langstring–language of team, league and country names: de, es, it or fr (default English)
match_idinteger|stringyesmatch code (or number) from get_matches
sportstringyessport (see list_sports)

No output schema declared.

No examples provided.

get_match_briefing ~318

Ready 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), and summary: the most important sentences as one paragraph in that language. Facts only, no predictions. Insights feature. Prefer this for 'tell me about this match'.

NameTypeReqDescription
formatstring–md for a short Markdown text instead of JSON
langstring–language of team, league and country names: de, es, it or fr (default English)
match_idinteger|stringyesmatch code (or number) from get_matches
sportstring–sport (default soccer; see list_sports)

No output schema declared.

No examples provided.

get_match_details ~291

Detail 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.

NameTypeReqDescription
langstring–language of team, league and country names: de, es, it or fr (default English)
match_idinteger|stringyesmatch code (or number) from get_matches
partstringyesstats, lineups or injuries (soccer); stats (box score) or play_by_play (basketball, baseball, hockey, tennis, american-football, as the source sends them); box_score or plays (soccer, basketball, hoc…
sportstringyessport (see list_sports)

No output schema declared.

No examples provided.

get_matches ~376

Matches (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.

NameTypeReqDescription
datestring–day YYYY-MM-DD (UTC); without date, date_from, date_to, team_id or league_id: today only (UTC)
date_fromstring–first day YYYY-MM-DD of a range
date_tostring–last day YYYY-MM-DD of a range
gamestring–esports: cs2, dota2, lol or valorant
langstring–language of team, league and country names: de, es, it or fr (default English)
league_idinteger|string–league code (or number) from find_leagues
league_namestring–exact league name, picks one division where several share a league id
limitinteger–max matches (default 20, max 100)
offsetinteger–skip this many matches (paging)
sportstringyessport (see list_sports)
statusstring–scheduled, finished or live, or a status as the API reports it, e.g. FT or NS; with team_id finished lists the latest first; with team_id and no status or date: latest results then next matches
team_idinteger|string–only this team's matches in every competition (team code (or number) from find_teams; not tennis); without a date all of them

No output schema declared.

No examples provided.

get_mma_event ~95

One MMA card from the main event down (weight class, fighters, winner, method, round, time, judges' scores, fight stats), or with bout_id one fight.

NameTypeReqDescription
bout_idinteger|string–bout code (or number) from a card: that fight with its stats instead
event_idinteger|string–event code (or number) from get_mma_events: the full card

No output schema declared.

No examples provided.

get_mma_events ~109

MMA (UFC) fight cards by date: name, date, status and the main event with its result once known.

NameTypeReqDescription
date_fromstring–events on or after YYYY-MM-DD
date_tostring–events on or before YYYY-MM-DD
limitinteger–max events (default 20, max 100)
offsetinteger–skip this many events (paging)
statusstring–scheduled, live, finished or cancelled

No output schema declared.

No examples provided.

get_mma_fighter ~147

An 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.

NameTypeReqDescription
fighter_idinteger|string–fighter code (or number) from a bout: the record, recent fights, profile and history
namestring–part of a fighter's name, to find the id

No output schema declared.

No examples provided.

get_player ~665

Player profile with summary: ready paragraphs from our data (club, season numbers, form; English, no lang; summary_as_of; absent when not fresh or for a player under 18); 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 and season_stats: the season record (current year, or season) from our singles main-draw matches since 2026-04-01 (won, lost, per surface and level, retirements counted, walkovers not, finals, titles), 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); with matches, last_matches: the player's last N matches (date, league, opponent, venue, score, result, started, minutes, goals, assists, cards, shots, rating, goalkeepers conceded and clean sheet; null = not in our data; matches without statistics or that he missed are not listed); 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); WNBA, NCAA and hockey (NHL, Liiga, SHL, DEL) players the same, summed from our box scores; with matches, US-sport players (NBA, WNBA, NCAA, MLB, NFL, NHL) last_matches: the last N games from our box scores (date, league, opponent, venue, score, result, stats by category as in season_stats but per game; null = not in the box); handball players (Swedish and Austrian lower leagues) the same…

NameTypeReqDescription
langstring–language of team, league and country names: de, es, it or fr (default English)
matchesinteger–soccer, NBA, MLB, NFL, NHL (and WNBA, NCAA): also last_matches, the player's last N matches or games (1-50) with his line in each
player_idinteger|stringyesplayer code (or number) from a squad or lineup
seasonstring–soccer: season_stats of this season (2025-26, or 2025) instead of the current one; tennis: a year (2026)
sportstringyessport (see list_sports)
vsinteger|string–tennis: another player's id, for the head-to-head of the two instead

No output schema declared.

No examples provided.

get_race ~84

One 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.

NameTypeReqDescription
race_idinteger|stringyesrace code (or number) from get_races

No output schema declared.

No examples provided.

get_race_briefing ~149

Ready 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.

NameTypeReqDescription
formatstring–md for a short Markdown text instead of JSON
langstring–language of team, league and country names: de, es, it or fr (default English)
race_idinteger|stringyesrace code (or number) from get_races

No output schema declared.

No examples provided.

get_races ~158

Horse 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, unlisted).

NameTypeReqDescription
datestring–UTC race day YYYY-MM-DD (default today)
limitinteger–max races (default 20, max 100)
meeting_idinteger|string–racecourse (meeting) code (or number) from a race
offsetinteger–skip this many races (paging)
regionstring–usa, uk (Great Britain), ie (Ireland), australia, hk, singapore, dubai, sa or france

No output schema declared.

No examples provided.

get_racing_stats ~128

Stats from our stored results. kind jockey or trainer: runs, wins, places and strike rate over the last 14 and 30 days, overall and per region. kind course (last 365 days): favourite win rate, top jockeys and trainers by wins, draw by distance band in thirds of the stalls with sample sizes.

NameTypeReqDescription
idinteger|stringyesjockey or trainer code (or number) from find_horses or a race card; for a course the racecourse (meeting) code of a race
kindstringyesjockey, trainer or course

No output schema declared.

No examples provided.

get_runner_form ~112

Last 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.

NameTypeReqDescription
idinteger|stringyeshorse, jockey or trainer code (or number) from find_horses or a race card
kindstring–horse (default), jockey or trainer
limitinteger–runs (default 10, max 50)

No output schema declared.

No examples provided.

get_snooker_darts_player ~99

A 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.

NameTypeReqDescription
namestring–part of a player's name, to find the id
player_idinteger|string–player code (or number) from a draw or ranking
sportstringyessnooker or darts

No output schema declared.

No examples provided.

get_snooker_darts_tournament ~98

A 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.

NameTypeReqDescription
sportstringyessnooker or darts
tournament_idinteger|stringyestournament code (or number) from get_snooker_darts_tournaments

No output schema declared.

No examples provided.

get_snooker_darts_tournaments ~198

Snooker (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.

NameTypeReqDescription
kindstring–snooker: ranking, non_ranking; darts: ranked, non_ranked, world_series, players_championship, european_tour
limitinteger–max tournaments (default 20, max 100)
offsetinteger–skip this many tournaments (paging)
seasonstring–snooker 2026-27, darts 2026 (default: the current and the last season)
sportstringyessnooker or darts
statusstring–scheduled, live, finished or no_results

No output schema declared.

No examples provided.

get_standings ~1,426

League table of a league, with summary: ready paragraphs on the league from our data (the race at the top and bottom, form side, scoring, top scorer, champions; English; summary_as_of; absent when not fresh; with lang de, es, it or fr in sold sports and a plan with Insights: the most important facts of the league's matches of the last 14 days in that language, from our fact templates only, else English; summary_lang says which); 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 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.

NameTypeReqDescription
attendanceboolean–soccer: the league season's home attendance instead of the table: league average and record, per team average, record and rank; matches_with_attendance of matches_played says how complete (often low:…
championsboolean–soccer: the league's (or cup's) roll of honour instead of the table: champion and runner_up per season, each with its sources (wikipedia: the final tables of the last 10 seasons, top leagues; provide…
historyboolean–the league's table round by round instead of the table (position charts; sports with the data provider league tables, not cricket): soccer from our results for the current and previous season plus st…
langstring–language of team, league and country names: de, es, it or fr (default English)
league_idinteger|string–league code (or number) from find_leagues (not for tennis)
player_statsstring–soccer: goals, assists, minutes, rating, xg or apps for every player's season statistics in the league sorted by it, instead of the table (computed from our matches; matches_with_stats of team_matche…
ratingsboolean–any sport with results: Elo-style team ratings (tennis: players) instead of the table, highest first, of the league (league_id) or of the whole sport without it; matches_rated and rated_from say how…
refereesboolean–soccer: the league's referees instead of the table: games, yellow and red cards and penalties per game (computed from our match data, top leagues; league_matches_with_referee of league_matches_played…
seasonstring–soccer: a past season's final table (2016-17, or 2016 for Brazil and MLS; the last 10 seasons of the top leagues, from Wikipedia: cite the attribution) instead of the current table; tennis: a year (2…
sportstringyessport (see list_sports)
suspensionsboolean–soccer: the league's suspension watch instead of the table: players banned now (status suspended, matches_left) and one booking away from a ban (next_threshold, next_ban), from the league's official…
team_idinteger|string–with history: only this team
team_statsstring–soccer: ppg, goals_for, goals_against (best defence), clean_sheets, failed_to_score, xg_for, xg_against or attendance for every team's season statistics (home/away records, xG, attendance, ranks per…
top_scorersstring–soccer: goals, assists or cards for the league's top scorers, most assists or most cards instead of the table
tourstring–tennis: atp or wta (the singles ranking, top 100); golf: pga (default) or lpga
xg_tablestring–soccer: xpts, xg_diff or points_minus_xpts for the league's xG table instead of the table: xG for and against, expected points (xpts, independent Poisson goals from both sides' xG) against real point…

No output schema declared.

No examples provided.

get_summary ~218

Ready summary of a match, team, league or player: paragraphs written from our data only (table places, form, meetings, season), with key_facts (a match before kick-off) or what_it_means (after the result), summary_lang and summary_as_of. English; lang de, es, it or fr gives a team or league summary in that language with the Insights feature. summary null: none now (a match in play, a page not built lately, a player under 18). Quote as facts; never add predictions. Needs only the sport in the plan.

NameTypeReqDescription
idinteger|stringyescode (or number) of the match, team, league or player
kindstringyesmatch, team, league or player
langstring–language of team, league and country names: de, es, it or fr (default English)
sportstringyessport: soccer, basketball, baseball, hockey, tennis, handball, volleyball, american-football or cricket

No output schema declared.

No examples provided.

get_team ~745

Team profile: country, founded, venue, leagues, logo link; summary (soccer, NBA, NHL, MLB, NFL teams): ready paragraphs from our data (table place and gaps, record, form, home and away, squad leaders, next opponent; English; with lang de, es, it or fr in sold sports and a plan with Insights: the team briefing's most important facts in that language, from our fact templates only, else English; summary_lang says which; not with squad, injuries or season_stats of a US team; summary_as_of; absent when not fresh); 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.

NameTypeReqDescription
coachboolean–soccer: also return coach: the head coach with appointment date, record since, previous coach and previous club
factsboolean–soccer: also return facts: current runs, runs its last match ended, first since, record, table, next match stakes, player milestones (needs the insights feature)
honoursboolean–soccer: also return honours: titles and runners-up per competition, each with its source (provider: the profile's trophy list, every competition, can lag the latest season; wikipedia: league tables o…
injuriesboolean–return the team's injury report instead (MLB, NBA, WNBA, NHL, NFL); soccer: added as injuries (players out for its coming matches with type, expected_return, matches_missed); needs the injuries featu…
langstring–language of team, league and country names: de, es, it or fr (default English)
season_statsboolean–return the team's current season statistics instead (MLB, NBA, WNBA, NHL, NFL); soccer: added as season_stats (per league, computed from our matches)
sportstringyessport (see list_sports; not tennis)
squadboolean–also return the squad (players)
team_idinteger|stringyesteam code (or number) from find_teams or a match
transfersboolean–soccer: also return the team's latest 20 transfers in and out (more: get_transfers)

No output schema declared.

No examples provided.

get_team_briefing ~280

Ready 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), and summary: the most important ones as one paragraph. Facts only. Insights feature.

NameTypeReqDescription
formatstring–md for a short Markdown text instead of JSON
langstring–language of team, league and country names: de, es, it or fr (default English)
sportstring–sport (default soccer); for tennis the id is a player id
team_idinteger|stringyesteam code (or number) from find_teams or a match (tennis: player id)

No output schema declared.

No examples provided.

get_transfers ~311

Soccer 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.

NameTypeReqDescription
directionstring–with team_id: in or out (default both)
league_idinteger|string–moves in or out of this league's current teams
limitinteger–maximum results (default 20, max 100)
plannedboolean–true: only agreed moves dated after today (mostly loan ends); default: moves up to today
seasonstring–2026-27 (1 June to 31 May) or 2026 (calendar year)
sortstring–date (default, latest first) or fee (highest first)
team_idinteger|string–moves of this team
windowstring–summer (1 June-5 September), winter (1 January-3 February) or other

No output schema declared.

No examples provided.

list_sports ~173

Sports 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, get_racing_stats), 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).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the SportStatsAPI MCP server?

SportStatsAPI is a hosted endpoint at https://mcp.sportstatsapi.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.sportstatsapi.com

# add to Claude Code
claude mcp add --transport http com-sportstatsapi-sports-data 'https://mcp.sportstatsapi.com/mcp'
Common questions

What is the SportStatsAPI MCP server?

SportStatsAPI is an MCP server listed in the public MCP registry as com.sportstatsapi/sports-data. Fixtures, live scores, results, tables and match facts for 1,881 competitions in 8 sports. This page covers its hosted endpoint (https://mcp.sportstatsapi.com/mcp).

Is the SportStatsAPI MCP server safe to use?

SportStatsAPI scores 75 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the SportStatsAPI MCP server expose?

SportStatsAPI exposes 36 tools: find_horses, find_leagues, find_teams, get_boxing_event, get_boxing_events, and 31 more. Their descriptions and schemas cost roughly 8,578 tokens of context every time the server is loaded.

Does the SportStatsAPI MCP server require authentication?

No. We connected to SportStatsAPI without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the SportStatsAPI MCP server still maintained?

SportStatsAPI is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.