MCP servers › com.sportstatsapi › sports-data
MCP server · registry snapshot 2026-10-23 · last tested 2026-10-23
com.sportstatsapi/sports-data
Fixtures, live scores, results, tables and match facts for 1,881 competitions in 8 sports. — the publisher's description
Summary
com.sportstatsapi/sports-data is a remote MCP server listed in the official MCP registry at version 1.36.0. On 2026-10-23 ProtocolProbe connected to it in read-only mode and read its inventory: 35 tools, 0 resources and 0 prompts.
Record checks
1 of 2 record checks met · 7 do not apply
- met: Registry entry is active and says how to run it
- not met: Source repository link opens
- not applicable: Repository is not archived
- not applicable: Code pushed to the repository in the 90 days before our check
- not applicable: Repository publishes a security policy (SECURITY.md)
- not applicable: Package names its licence with a standard (SPDX) identifier
- not applicable: The version the registry lists can be installed and is not withdrawn
- not applicable: npm package carries build provenance (attestation)
- not applicable: No known critical or high advisory in the package or its dependencies
- Not ranked by downloads: a remote server publishes no download figure
- Not ranked by stars: no public GitHub repository
From public records, not a safety rating. Each check with its reason
Key facts
- Runs
- remote (hosted by the publisher)
- Transport
- streamable HTTP
- Sign-in
- none needed to open a session
- Tools
- 35
- Described as changing data
- 0 of 35 toolsAI-classified
- Mainly works on
- nothing outside itself: it only answers questionsAI-classified
- Topic
- data-and-databasesAI-classified
- Pricing
- usage-basedAI-classified
- Last tested
- 2026-10-23
How fresh this is
- Live-tested
- yes, a real session (not a text-only review)
- Last tested
- 2026-10-23
- Mode
- read-only (no tool calls)
- Latest version
- 1.36.0, published 2026-10-07 (registry, as of the 2026-10-23 snapshot)
- First listed version
- 2026-10-07 (earliest version still in the registry; older removed versions would be earlier)
- Registry data
- snapshot 2026-10-23
- Package and repository
- checked 2026-10-22
- Engine
- mcp-runtime-engine@0.1.0 · sdk@1.32.0
Changes since the last refresh
New in the registry: not in the list of 2026-10-04, listed on 2026-10-23 with version 1.36.0 (published 2026-10-07).
Source: the official MCP Registry list on 2026-10-04 and on 2026-10-23.
What it is
What does this server offer?
Observed inventoryWhat it mainly works on, as our AI model read its tool descriptions: nothing outside itself: it only answers questions.
None of its 35 tools are described as changing anything.
- find_horsesreads or searches
“Find horses, jockeys and trainers by name, with their ids (for get_runner_form), most recently seen first.”
Publisher declares: read-only yes · idempotent no · open-world no
2 inputs, 1 required
namestringrequired“part of a horse, jockey or trainer name (2-64 characters)”limitinteger“max results per kind (default 20, max 50)”
- find_leaguesreads or searches
“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).”
Publisher declares: read-only yes · idempotent no · open-world no
4 inputs, 1 required
sportstringrequired“sport: soccer, basketball, baseball, hockey, tennis, handball, volleyball, american-football, cricket, rugby (union), rugby-league, esports or table-tennis”querystring“text the league or country name must contain, e.g.”futureboolean“only leagues with upcoming matches”langstring“language of team, league and country names: de, es, it or fr (default English)”
- find_teamsreads or searches
“Find teams by name, with their ids, country, venue and leagues.”
Publisher declares: read-only yes · idempotent no · open-world no
5 inputs, 2 required
sportstringrequired“sport (see list_sports)”namestringrequired“part of the team name, e.g.”league_idinteger or string“only teams of this league”limitinteger“max teams (default 20, max 100)”langstring“language of team, league and country names: de, es, it or fr (default English)”
- get_boxing_eventreads or searches
“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…”
Publisher declares: read-only yes · idempotent no · open-world no
1 input, 1 required
event_idinteger or stringrequired“event code (or number) from get_boxing_events”
- get_boxing_eventsreads or searches
“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).”
Publisher declares: read-only yes · idempotent no · open-world no
7 inputs
seasonstring“year (default: the last and the current year)”statusstring“scheduled, live, finished or no_results”kindstring“card (a whole card) or title_fight (a world title fight from a champion's record)”date_fromstring“YYYY-MM-DD”date_tostring“YYYY-MM-DD”limitinteger“max events (default 20, max 100)”offsetinteger“skip this many events (paging)”
- get_boxing_fighterreads or searches
“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.”
Publisher declares: read-only yes · idempotent no · open-world no
2 inputs
fighter_idinteger or string“fighter code (or number) from a bout or the champions”namestring“part of a boxer's name, to find the id”
- get_golf_leaderboardreads or searches
“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 …”
Publisher declares: read-only yes · idempotent no · open-world no
2 inputs, 1 required
tournament_idinteger or stringrequired“tournament code (or number) from get_golf_tournaments”holesboolean“also each player's hole-by-hole scores (large)”
- get_golf_playerreads or searches
“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.”
Publisher declares: read-only yes · idempotent no · open-world no
3 inputs
player_idinteger or string“player code (or number) from a leaderboard: profile and the season's results”namestring“part of a golfer's name, to find the id”seasoninteger“season of the results (default: the latest)”
- get_golf_tournamentsreads or searches
“Golf tournaments of the PGA Tour and LPGA by date: course, location, purse, status and the leader or winner.”
Publisher declares: read-only yes · idempotent no · open-world no
7 inputs
tourstring“pga or lpga (LPGA: schedule only, no leaderboards)”seasoninteger“season (year)”statusstring“scheduled, live, finished, no_results or incomplete”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)”
“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 …”
Publisher declares: read-only yes · idempotent no · open-world no
4 inputs, 2 required
sportstring“team sport (default soccer; see list_sports; tennis: get_player with vs)”team_ainteger or stringrequired“team code (or number) from find_teams or a match”team_binteger or stringrequired“the other team's id”langstring“language of team, league and country names: de, es, it or fr (default English)”
- get_league_factsreads or searches
“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).”
Publisher declares: read-only yes · idempotent no · open-world no
5 inputs
sportstring“sport (default soccer; see list_sports)”league_idinteger or string“only this league (from find_leagues)”sincestring“only matches updated after this RFC 3339 time”min_importanceinteger“only facts of at least this importance, 0-100 (default 50)”langstring“language of team, league and country names: de, es, it or fr (default English)”
“Matches in play right now, with score and minute or period, and the TV channels showing them where known.”
Publisher declares: read-only yes · idempotent no · open-world no
3 inputs, 1 required
sportstringrequired“sport (see list_sports)”league_idinteger or string“only this league”langstring“language of team, league and country names: de, es, it or fr (default English)”
Show 23 more tools
“One match: teams, score, status, events (goals, cards...), venue, referee; where known TV channels by country and, after the match, a highlights video link.”
Publisher declares: read-only yes · idempotent no · open-world no
3 inputs, 2 required
sportstringrequired“sport (see list_sports)”match_idinteger or stringrequired“match code (or number) from get_matches”langstring“language of team, league and country names: de, es, it or fr (default English)”
- get_match_briefingreads or searches
“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…”
Publisher declares: read-only yes · idempotent no · open-world no
4 inputs, 1 required
sportstring“sport (default soccer; see list_sports)”match_idinteger or stringrequired“match code (or number) from get_matches”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)”
“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 (battin…”
Publisher declares: read-only yes · idempotent no · open-world no
4 inputs, 3 required
sportstringrequired“sport (see list_sports)”match_idinteger or stringrequired“match code (or number) from get_matches”partstringrequired“stats, lineups or injuries (soccer); stats (box score) or play_by_play (basketball, baseball, hockey, tennis, american-football); scorecard (cricket); events (…”langstring“language of team, league and country names: de, es, it or fr (default English)”
“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 ma…”
Publisher declares: read-only yes · idempotent no · open-world no
12 inputs, 1 required
sportstringrequired“sport (see list_sports)”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”league_idinteger or string“league code (or number) from find_leagues”league_namestring“exact league name, picks one division where several share a league id”team_idinteger or string“only this team's matches in every competition (team code (or number) from find_teams; not tennis); without a date all of them”statusstring“scheduled, finished or live, or a status as the API reports it, e.g.”limitinteger“max matches (default 20, max 100)”offsetinteger“skip this many matches (paging)”gamestring“esports: cs2, dota2, lol or valorant”langstring“language of team, league and country names: de, es, it or fr (default English)”
- get_mma_eventreads or searches
“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.”
Publisher declares: read-only yes · idempotent no · open-world no
2 inputs
event_idinteger or string“event code (or number) from get_mma_events: the full card”bout_idinteger or string“bout code (or number) from a card: that fight with its stats instead”
- get_mma_eventsreads or searches
“MMA (UFC) fight cards by date: name, date, status and the main event with its result once known.”
Publisher declares: read-only yes · idempotent no · open-world no
5 inputs
date_fromstring“events on or after YYYY-MM-DD”date_tostring“events on or before YYYY-MM-DD”statusstring“scheduled, live, finished or cancelled”limitinteger“max events (default 20, max 100)”offsetinteger“skip this many events (paging)”
- get_mma_fighterreads or searches
“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 figh…”
Publisher declares: read-only yes · idempotent no · open-world no
2 inputs
fighter_idinteger or 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”
- get_motorsport_eventreads or searches
“One 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 sto…”
Publisher declares: read-only yes · idempotent no · open-world no
2 inputs
event_idinteger or string“event code (or number) from get_motorsport_events: the weekend with its sessions”session_idinteger or string“session code (or number) from an event: that session's results instead”
- get_motorsport_eventsreads or searches
“Motorsport 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.”
Publisher declares: read-only yes · idempotent no · open-world no
8 inputs
seriesstring“f1, motogp, moto2, moto3, f2, formula-e, indycar, nascar-cup, nascar-xfinity or nascar-trucks”seasoninteger“season year”date_fromstring“events ending on or after YYYY-MM-DD”date_tostring“events starting on or before YYYY-MM-DD”statusstring“scheduled, live, finished or cancelled”limitinteger“max events (default 20, max 100)”offsetinteger“skip this many events (paging)”overviewboolean“the series list instead: season, next and last event of each”
“Player 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…”
Publisher declares: read-only yes · idempotent no · open-world no
5 inputs, 2 required
sportstringrequired“sport (see list_sports)”player_idinteger or stringrequired“player code (or number) from a squad or lineup”vsinteger or string“tennis: another player's id, for the head-to-head of the two instead”seasonstring“soccer: season_stats of this season (2025-26, or 2025) instead of the current one”langstring“language of team, league and country names: de, es, it or fr (default English)”
“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 …”
Publisher declares: read-only yes · idempotent no · open-world no
1 input, 1 required
race_idinteger or stringrequired“race code (or number) from get_races”
- get_race_briefingreads or searches
“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; …”
Publisher declares: read-only yes · idempotent no · open-world no
3 inputs, 1 required
race_idinteger or stringrequired“race code (or number) from get_races”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)”
- get_racesreads or searches
“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).”
Publisher declares: read-only yes · idempotent no · open-world no
5 inputs
datestring“UTC race day YYYY-MM-DD (default today)”regionstring“usa, uk (Great Britain), ie (Ireland), australia, hk, singapore, dubai, sa or france”meeting_idinteger or string“racecourse (meeting) code (or number) from a race”limitinteger“max races (default 20, max 100)”offsetinteger“skip this many races (paging)”
- get_racing_statsreads or searches
“Stats from our stored results.”
Publisher declares: read-only yes · idempotent no · open-world no
2 inputs, 2 required
kindstringrequired“jockey, trainer or course”idinteger or stringrequired“jockey or trainer code (or number) from find_horses or a race card; for a course the racecourse (meeting) code of a race”
- get_runner_formreads or searches
“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…”
Publisher declares: read-only yes · idempotent no · open-world no
3 inputs, 1 required
kindstring“horse (default), jockey or trainer”idinteger or stringrequired“horse, jockey or trainer code (or number) from find_horses or a race card”limitinteger“runs (default 10, max 50)”
- get_snooker_darts_playerreads or searches
“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.”
Publisher declares: read-only yes · idempotent no · open-world no
3 inputs, 1 required
sportstringrequired“snooker or darts”player_idinteger or string“player code (or number) from a draw or ranking”namestring“part of a player's name, to find the id”
- get_snooker_darts_tournamentreads or searches
“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 …”
Publisher declares: read-only yes · idempotent no · open-world no
2 inputs, 2 required
sportstringrequired“snooker or darts”tournament_idinteger or stringrequired“tournament code (or number) from get_snooker_darts_tournaments”
- get_snooker_darts_tournamentsreads or searches
“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…”
Publisher declares: read-only yes · idempotent no · open-world no
6 inputs, 1 required
sportstringrequired“snooker or darts”seasonstring“snooker 2026-27, darts 2026 (default: the current and the last season)”statusstring“scheduled, live, finished or no_results”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)”
“League 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_sta…”
Publisher declares: read-only yes · idempotent no · open-world no
18 inputs, 1 required
sportstringrequired“sport (see list_sports)”league_idinteger or string“league code (or number) from find_leagues (not for tennis)”tourstring“tennis: atp or wta (the singles ranking, top 100); golf: pga (default) or lpga”top_scorersstring“soccer: goals, assists or cards for the league's top scorers, most assists or most cards instead of the table”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 ma…”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/…”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…”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 i…”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 t…”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 matc…”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_match…”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…”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…”team_idinteger or string“with history: only this team”seriesstring“motorsport: f1, motogp, moto2, moto3, f2, formula-e, indycar, nascar-cup, nascar-xfinity or nascar-trucks”kindstring“motorsport: drivers (default) or teams”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…”langstring“language of team, league and country names: de, es, it or fr (default English)”
“Team 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 c…”
Publisher declares: read-only yes · idempotent no · open-world no
10 inputs, 2 required
sportstringrequired“sport (see list_sports; not tennis)”team_idinteger or stringrequired“team code (or number) from find_teams or a match”squadboolean“also return the squad (players)”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, m…”coachboolean“soccer: also return coach: the head coach with appointment date, record since, previous coach and previous club”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)”factsboolean“soccer: also return facts: current runs, runs its last match ended, first since, record, table, next match stakes, player milestones (needs the insights featur…”transfersboolean“soccer: also return the team's latest 20 transfers in and out (more: get_transfers)”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 l…”langstring“language of team, league and country names: de, es, it or fr (default English)”
- get_team_briefingreads or searches
“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 gap…”
Publisher declares: read-only yes · idempotent no · open-world no
4 inputs, 1 required
sportstring“sport (default soccer); for tennis the id is a player id”team_idinteger or stringrequired“team code (or number) from find_teams or a match (tennis: player id)”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)”
“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_eu…”
Publisher declares: read-only yes · idempotent no · open-world no
8 inputs
league_idinteger or string“moves in or out of this league's current teams”team_idinteger or string“moves of this team”directionstring“with team_id: in or out (default both)”seasonstring“2026-27 (1 June to 31 May) or 2026 (calendar year)”windowstring“summer (1 June-5 September), winter (1 January-3 February) or other”sortstring“date (default, latest first) or fee (highest first)”plannedboolean“true: only agreed moves dated after today (mostly loan ends); default: moves up to today”limitinteger“maximum results (default 20, max 100)”
“Sports available, with whether each has upcoming matches.”
Publisher declares: read-only yes · idempotent no · open-world no
Takes no inputs.
Each quoted sentence is the first sentence of the publisher’s own description. The kind of tool and the “changes data” mark are our AI model’s reading of that description, not something we tested: two differently worded runs had to agree, otherwise no label is shown, and nobody has checked them by hand. A tool without the “changes data” mark is described as only reading, searching or calculating, or the two runs did not agree. No tool was called. Read the publisher’s full description before relying on it. “Publisher declares” lists the hints the server itself sends with the tool (MCP annotations: read-only, destructive, idempotent, open-world); they are the publisher's claims, not checked by us. Inputs are the parameters in the tool's own input schema: name, declared type, whether it is required, and the first sentence of its description. Read 2026-10-23.
How well are its tools described?
Features #4 and #5
How clearly this server's own tool descriptions say what a tool does, and how consistent its tool list is. The first part is an AI model's yes/no reading of each description; the second part is counted. We do not turn it into a grade.
Descriptions
AI reading of each description
- Says what the tool does
- 100% of 35 tools
- Says what it returns
- 100% of 35 tools
- States limits, defaults or errors
- 34% of 35 tools
- Says when to use it
- 3% of 35 tools
- Items covered per tool
- 2.4 of 4 on average
Counted from the listing
- Parameters with a description
- 100% of 157
- Tools with a description
- 100% of 35
- Typical description length
- 385 characters
The tool set
Counted from the listing
- Tools
- 35
- Size of the list
- about 10,150 tokens for an agent to load (characters ÷ 4)
- Naming
- 35 of 35 names use snake_case
AI reading: easy to mix up
No pair found.
The AI items cover 35 of 35 tools: for a tool where two differently worded runs disagreed, that item is left out. They were not checked by hand, and no tool was called. “Easy to mix up” means two tools whose names or descriptions overlap without saying how they differ; the AI found none. We do not rate whether the tool set is complete or whether side effects are spelled out, because our AI reading of those was not reliable enough.
How do I add it to my client?
Config from the registry entry
From the remote endpoint (Streamable HTTP)
We connected to this URL on 2026-10-23 (a read-only session: no tool was called).
Add to CursorAn install link in the format Cursor documents, holding the Cursor config below.
Claude Desktop or claude.ai
Settings → Connectors → Add custom connector, then paste: https://mcp.sportstatsapi.com/mcp
Cursor · .cursor/mcp.json in a project, or ~/.cursor/mcp.json
{
"mcpServers": {
"sports-data": {
"url": "https://mcp.sportstatsapi.com/mcp"
}
}
}VS Code · .vscode/mcp.json
{
"servers": {
"sports-data": {
"type": "http",
"url": "https://mcp.sportstatsapi.com/mcp"
}
}
}VS Code (command line) · Bash or zsh terminal (macOS, Linux)
code --add-mcp '{"name":"sports-data","type":"http","url":"https://mcp.sportstatsapi.com/mcp"}'Claude Code
claude mcp add --transport http sports-data https://mcp.sportstatsapi.com/mcp
Try it in the MCP Inspector · runs on your machine, opens in your browser · Node 22.19+
npx @modelcontextprotocol/inspector@2.11.0 --server-url https://mcp.sportstatsapi.com/mcp --transport http
- Optional settings the entry also lists (left out above): Authorization.
- The server runs on the operator's infrastructure; it may ask you to sign in when you first connect.
- The MCP Inspector lists the server's tools, resources and prompts; a tool you call there runs for real.
Built from the server's registry entry with each client's documented format (checked 2026-10-14; the Cursor link and the VS Code command 2026-10-19; the MCP Inspector command 2026-10-21). Values in < > are yours to fill in; this page never contains a key. Where the server needs a setting the entry does not declare, it can still fail to start.
Does the registry listing match what we found?
Feature #6The registry verifies a package once, when it is published, and does not re-check it. A difference below is about the listing, not a judgement of the publisher.
| Registry says | We found | Result | Source · date |
|---|---|---|---|
| Remote endpoint mcp.sportstatsapi.com/mcp | Session opened | matches | our test · 2026-10-23 |
| No credential declared as required | Opened a session without any credential | matches | our test · 2026-10-23 |
Choosing
Record checks
Public records · not a safety rating1 of 2 record checks met · 7 do not apply
- Not ranked by downloads: a remote server publishes no download figure
- Not ranked by stars: no public GitHub repository
- MetRegistry entry is active and says how to run itActive, with a package or a remote address.
- Not metSource repository link opensThe registry entry gives no repository link.
- Does not applyRepository is not archivedNo public GitHub repository to read.
- Does not applyCode pushed to the repository in the 90 days before our checkNo public GitHub repository to read.
- Does not applyRepository publishes a security policy (SECURITY.md)No public GitHub repository to read.
- Does not applyPackage names its licence with a standard (SPDX) identifierRemote server: it ships no package.
- Does not applyThe version the registry lists can be installed and is not withdrawnRemote server: it ships no package.
- Does not applynpm package carries build provenance (attestation)Remote server: it ships no package.
- Does not applyNo known critical or high advisory in the package or its dependenciesRemote server: it ships no package.
Read from public records only: the registry entry, npm/PyPI, GitHub and advisory databases, checked 2026-10-22. No tool was called. Only “met” and “not met” are counted, so the total differs between servers; a check that does not apply or that we could not run is listed, never counted against it. It is not a safety rating. How each check works · Leaderboards
Common questions about com.sportstatsapi/sports-data
Answered from the data aboveIs com.sportstatsapi/sports-data free to use?
Its website (sportstatsapi.com/ai-agents/) describes a usage-based pricing model. This is an AI-classified reading of the page on 2026-10-23, so check the page itself before relying on it.
Does com.sportstatsapi/sports-data need an API key or sign-in?
It opened a session without any credential on 2026-10-23. The registry entry declares no required credential; no declaration is not a guarantee.
Has com.sportstatsapi/sports-data been security tested?
Partly. 2 of the 14 checks that apply to it were exercised. We connected and read what the server declares, but did not call its tools: ProtocolProbe calls no server's tools for anything it publishes. This is our choice, not a block by the server. No security verdict is published before verification.
What can com.sportstatsapi/sports-data do?
It lists 35 tools. In our AI model's reading of their descriptions (two runs had to agree, nobody checked it by hand), they include tools that read or search. We did not call any tool, so this describes the text, not the behaviour.
Can com.sportstatsapi/sports-data change or delete data?
None of its 35 tools is described as changing anything (our AI model's reading of the descriptions; nobody checked it by hand). We did not call any tool.
Found this page useful?
Anonymous · no sign-inA quick, anonymous reaction — no account, no email. One per kind from your browser. The tally updates when the page is next refreshed, and it is only a rough count, never a safety rating or a measured number of people.
Similar servers
Same topic · AI-read
- io.github.t8y2/dbxalso has tools that reads or searchescompare with this one
- agency.ottobot/contractor-license-changesContractor Licence Changesalso has tools that reads or searchescompare with this one
- agency.ottobot/licensed-house-paintersLicensed House Paintersalso has tools that reads or searchescompare with this one
- io.github.revolist/revogrid-mcpRevoGrid DataGrid MCPalso has tools that reads or searchescompare with this one
- io.github.timescale/pg-aiguidealso has tools that reads or searchescompare with this one
- co.firecms/mcpFireCMS Cloudalso has tools that reads or searchescompare with this one
Active servers whose topic is also “data-and-databases” and that have at least one tool of the same kind; most kinds in common first, then most GitHub stars. The topic and the tool kinds are an AI model's reading of the publishers' descriptions, not checked by hand. Similar is not a recommendation.
Compare with another server
Side by side: registry entry, our read-only session, the tools and the 18 classification fields. Same values as each page; no score.
Security testing
What did we test, and what did we leave out?
18 checks · features #1, #2
Not probed (we call no server's tools)
We connected and read what the server declares, but did not call its tools: ProtocolProbe calls no server's tools for anything it publishes. This is our choice, not a block by the server. No security score is given; a check we did not run is never counted as passed.
- Inventory: exercised
- Hidden instructions: exercised
- Real execution: not run · our policy
- Secret leak: not run · nothing to check it against
- Internal addresses: not run · our policy
- Unconfirmed changes: not run · our policy
- Bad input: not run · our policy
- Model requests: not run · nothing to check it against
- Sensitive questions: not run · nothing to check it against
- Folder boundary: not run · our policy
- Log leaks: not run · nothing to check it against
- Hidden content: not run · nothing to check it against
- Fake assistant turns: not applicable
- Token passthrough: not applicable
- Token audience: not applicable
- Sign-in redirect: not run · our policy
- Consent handling: not testable from outside
- Sign-in metadata: not applicable
2 exercised12 not run (reason given)4 not applicable
Each check ends in exactly one state: exercised, not run (with the reason), or not applicable (with the reason). 2 of the 14 checks that apply to it were exercised. We do not publish security-check outcomes for named servers.
- 1Inventory
tool-listReads the declared tools, resources and prompts.exercised - 2Hidden instructions
description-poisoningLooks for hidden instructions in tool descriptions.exercised
- 3Real execution
real-executionCalls a tool and checks what really happens.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 4Secret leak
canary-leakPlants a fake secret and checks whether it leaks.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 5Internal addresses
ssrfChecks whether a tool can be steered to internal addresses.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 6Unconfirmed changes
write-without-confirmationChecks whether tools that change data act without asking.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 7Bad input
error-handlingSends bad input and watches how the server answers.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 8Model requests
samplingChecks whether the server asks the client's model to act for it.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 9Sensitive questions
elicitation-sensitive-dataChecks whether the server asks users for sensitive data.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 10Folder boundary
root-boundaryChecks whether the server reaches outside the folders it was given.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 11Log leaks
logging-side-channelChecks whether log messages carry data they should not.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 12Hidden content
audience-hidingChecks resources that hide content from the user.This check needs content the server returns, and nothing was read or called.not run · nothing to check it against - 16Sign-in redirect
open-redirectChecks the sign-in redirect for abuse.Testing the sign-in redirect means sending probes to the operator's sign-in service, which we do not do.not run · our policy - 17Consent handling
confused-deputyChecks consent handling when one service acts for another.Depends on the operator's own consent screen, which differs per server and cannot be tested from outside.not testable from outside
- 13Fake assistant turns
fake-assistant-turnChecks prompts that pose as the assistant's own words.The server exposes no prompts.not applicable - 14Token passthrough
token-passthroughChecks whether the server forwards a user's token to other services.The server opened a session without sign-in, so there is no token flow to check.not applicable - 15Token audience
token-audience-validationChecks whether tokens meant for another service are accepted.The server opened a session without sign-in, so there is no token flow to check.not applicable - 18Sign-in metadata
oauth-url-schemeChecks the published sign-in metadata for unsafe URLs.No sign-in (OAuth) metadata is published, so there are no sign-in addresses to check.not applicable
Source: our own test, 2026-10-23, mcp-runtime-engine@0.1.0. Which checks count and why follows our published scoring model.
What happened during the test?
Feature #8
The steps in order, as the test record holds them.
- 0 msStarted a read-only session with the server's remote endpoint
- 852 msConnected after 0 redirects. No credential was sent or needed.
- Read the inventory: 35 tools, 0 resources, 0 prompts.
- 3,681 msFinished: 2 checks exercised.
Reference
How is it classified?
18 fields
One value per field, each with its source. Fields written by AI models are marked. A field with no value says why.
“Pay per call with x402 in USDC on Base, or use a monthly key from $79.”
“Not stated” means the source did not state it; “does not apply” means it does not apply to this kind of server; “our limit” means our own lookup failed. A linked value opens the directory filtered to the same value.
Cite or correct this page
Sources and corrections
Suggested citation
ProtocolProbe. “com.sportstatsapi/sports-data: MCP server record.” Data checked 2026-10-23. https://protocolprobe.com/mcp/servers/com.sportstatsapi/sports-data
Figures are valid for the date shown. Our facts on this page are CC BY 4.0: reuse them with a link and the check date. Quoted text (the publisher’s descriptions, website quotes, tool names) is not ours to license.
As JSON: this record in the API · API documentation.
Badge for your README
[](https://protocolprobe.com/mcp/servers/com.sportstatsapi/sports-data)
It shows this server's record-check count: facts from public records, no tool called. It is not a security rating or a pass. It links here and updates after each data reload.
Something wrong, or is this yours?
If a fact here is wrong, tell us and we will re-check it. If you operate this server, you can run our checks on it yourself with the free self-test command; we call no server’s tools ourselves for anything shown here.
Write to hello@protocolprobe.com · corrections log · methodology