mcpbeat

stat-api — Sports Data MCP Server

com.stat-api/sports-data
answering

stat-api — Sports Data is answering right now. Last checked 13 min ago. It exposes 10 tools. Last commit 7 Jul 2026.

NFL/NBA/MLB/NHL/PGA + DFS and prediction-market data. Browse free; query with a free API key.

Uptime history 39 hours of history
39 hours agonow
100.0%
Uptime 24h
91 of 91 checks
10
Tools
read from the server
500 ms
Response time
average over 24h
0
Stars
last commit 7 Jul 2026

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 13 min ago.

run in your terminal
claude mcp add sports-data --transport http https://api.stat-api.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "sports-data": {
      "url": "https://api.stat-api.com/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.sports-data]
url = "https://api.stat-api.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "sports-data": {
      "url": "https://api.stat-api.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "sports-data": {
      "url": "https://api.stat-api.com/mcp"
    }
  }
}

Available tools 10

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

api
api_usage
Your key's quota position: plan, monthly record limit, records used, remaining, and when the quota resets. Requires an API key; costs 1 record.
describe
describe_table
Full 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 URL. No credentials needed. Always call this before query_table — filters not listed here are rejected.
game
game_markets
Prediction-market contracts attached to one sporting event: Kalshi events+markets and/or Polymarket events+markets linked via (league_code, competition_id). game_id is the game's id from the league's games table (golf: the tournament id). Returns `{"kalshi": {events, markets}, "polymarket": {events, markets}}` (only the requested sources). Requires an API key; all returned rows count against quota.
games
games_on_date
Games 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 season_id + week filters instead. Requires an API key; rows count against quota.
graphql
graphql_query
Run 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` pagination. Do NOT send introspection queries (the schema is huge) — use describe_table instead; the SDL is at https://api.stat-api.com/api/v1/graphql/sdl. Requires an API key; every row resolved anywhere in the tree counts against quota.
leagues
list_leagues
List every league/data group this API serves (nfl, nba, mlb, nhl, pga, dfs, kalshi, polymarket, reference) with table counts and availability. No credentials needed. Start here, then call list_tables.
players
search_players
Fuzzy 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 an API key; rows count against quota.
record
get_record
Fetch a single row by primary key. Returns the row object. Requires an API key; costs 1 record of quota.
table
query_table
Query any table. Returns `{"<table>": [rows], "limit": N, "next_from_id": M|null}`; page by re-calling with from_id set to the previous next_from_id until it is null. filters is a flat object of `field` or `field__op` keys from describe_table (e.g. {"season_id": 2024, "day__between": "20250101,20250131"}). Requires an API key (Authorization: Bearer <key>; free tier at https://stat-api.com). Every returned row counts against the monthly record quota.
tables
list_tables
List every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying.

Endpoints

URLTransportStateLatencyChecked
https://api.stat-api.com/mcp streamable-http answering 499 ms 13 min ago

stat-api — Sports Data — questions

Answers built from our own checks of this server.

What can stat-api — Sports Data do?
It exposes 10 tools, read directly from the server on our last check. Among them: api_usage, describe_table, game_markets, games_on_date, get_record, graphql_query and 4 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is stat-api — Sports Data working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 500 ms. The bar chart above shows every period we have measured.
How do I connect stat-api — Sports Data?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does stat-api — Sports Data need an API key?
No. stat-api — Sports Data completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 10 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is stat-api — Sports Data?
It answers our handshake in 500 ms on average, which is faster than 22% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is stat-api — Sports Data open source?
Yes — 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.