
stat-api MCP server
Which MCP servers are stat-api's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-19
- Registry namecom.stat-api/sports-dataverified in the MCP registry
The registry name sits under stat-api.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-19
- Tools9
- Server calls itselfstat-api
- Server version0.1.0
- Protocol version2025-06-18
On 2026-10-19 the server answered initialize and tools/list without a sign-in. First answer in 288 ms.
- Whether its tools do the product's job has not been judged yet.
Once connected
- Parameters are untyped or undescribed in 7 of 9 tools: check arguments before calling.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP score84 of 100answers 100 · definitions 87 · context 100 · use 8 · connects 100
- Use1 GitHub stars
- Answered100% of days9 of 9 daily checks
- Median first answer270 ms
- Space in an agent's context≈ 1,297 tokensthe definitions of all its tools (9), which an agent carries on every turn
- Tool definitionsB · 87 of 100
- Typed results0 of 9 toolsdeclared outputSchema: results come typed, read once
- Parameters without a description: in 7 of 9
What an agent can do with it
- not sure · Query NFL play-by-play and player box scores
- not sure · Download DraftKings and FanDuel contest results as CSV or JSON
- cannot · Pull NFL weather for each game
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
None of the five warning signs in these definitions.
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
list_leaguesList every league/data group this API serves (nfl, nba, mlb, nhl, pga, dfs, reference) with table counts and availability. No credentials needed. Start here, then call list_tables.
list_tablesList every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying.
describe_tableFull contract for one table: fields with types and descriptions, the filters query_table accepts (with operators like __gte/__lte/__between/__like and required filter combinations), page-size limits, primary key, and a runnable example…
query_tableQuery any table. Returns `{"<table>": [rows], "limit": N, "next_from_id": M|null, "has_more": bool}`. To read every row, start with from_id=0 and re-call with from_id set to the previous next_from_id until it is null. A call without…
get_recordFetch a single row by primary key. Returns the row object. Requires a stat-api sign-in or API key; costs 1 record of quota.
search_playersFuzzy player-name search (typo-tolerant). Currently NBA only — for other leagues query the players table with a name filter via query_table. Returns player rows ordered by match quality. Requires a stat-api sign-in or API key; rows count…
games_on_dateGames scheduled/played on one calendar date (US-Eastern) for nba, mlb, or nhl; defaults to today. Returns the same envelope as query_table on the games table. NFL is week-based, not date-based — for nfl, use query_table on nfl/games with…
graphql_queryRun a GraphQL query against the same data with relations — nest from a game to its teams/players/odds in one call. Root fields are leagues (nfl, nba, …), each exposing its tables with the same filter arguments as REST plus `first`/`after`…
api_usageYour account's quota position: plan, monthly record limit, records used, remaining, and when the quota resets. Requires a stat-api sign-in or API key; costs 1 record.
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"sports-data": {
"type": "http",
"url": "https://api.stat-api.com/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http stat-api https://api.stat-api.com/mcpclaude.ai, ChatGPT and other clients: add https://api.stat-api.com/mcp as a custom connector in the settings.
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.