stat-api — Sports Data
Server Details
NFL/NBA/MLB/NHL/PGA + DFS and prediction-market data. Browse free; query with a free API key.
- Status
- Healthy
- Uptime
- 99.9% over 60 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- stat-api/mcp
- GitHub Stars
- 0
TDQS
Scored across 9 tools
The discovery tools (list_leagues, list_tables, describe_table) and the distinct access modes (query_table, get_record, graphql_query) are clearly separated. However, games_on_date and search_players are thin conveniences that overlap with query_table, so an agent could reasonably misselect the generic tool for those specific cases.
Most tools follow a verb_noun pattern like describe_table, get_record, list_tables, query_table, and search_players. But api_usage and graphql_query are noun phrases, and games_on_date lacks a verb, creating a mixed but still readable convention.
Nine tools is well-scoped for a sports data API: three for discovery, three for data access, plus GraphQL, quota tracking, and two convenience helpers. Each tool has a clear role and the count sits comfortably in the ideal range.
The set covers the full read-only workflow: discover leagues, inspect tables, describe schemas, query tables, fetch by primary key, run GraphQL, and check quota. Gaps like non-NBA player search and NFL date queries are explicitly handled via query_table workarounds, so there are no dead ends.
Available Tools
9 toolsapi_usageAPI usageRead-onlyIdempotentInspect
Your key's quota position: plan, monthly record limit, records used, remaining, and when the quota resets. Requires an API key; costs 1 record.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
describe_tableDescribe tableRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | ||
| league | Yes |
games_on_dateGames on dateRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD; defaults to today in US-Eastern time | |
| league | Yes |
get_recordGet recordRead-onlyIdempotentInspect
Fetch a single row by primary key. Returns the row object. Requires an API key; costs 1 record of quota.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | primary-key value (integer or text PK) | |
| table | Yes | ||
| league | Yes |
graphql_queryGraphQL queryRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| variables | No |
list_leaguesList leaguesRead-onlyIdempotentInspect
List 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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_tablesList tablesRead-onlyIdempotentInspect
List every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying.
| Name | Required | Description | Default |
|---|---|---|---|
| league | Yes |
query_tableQuery tableRead-onlyIdempotentInspect
Query 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 from_id returns the first page in the table's default sort with next_from_id 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 ; free tier at https://stat-api.com). Every returned row counts against the monthly record quota.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| table | Yes | ||
| league | Yes | ||
| filters | No | field or field__op keys → scalar values; see describe_table | |
| from_id | No | keyset cursor: 0 for the first page of a full walk, then the previous next_from_id |
search_playersSearch NBA playersRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| limit | No | ||
| league | No | nba |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Changed
describe_table1 field changed- changed
Input schema / properties / league / enumPrevious value: -[ - "nfl", - "nba", - "mlb", - "nhl", - "pga", - "dfs", - "kalshi", - "polymarket", - "reference" -]New value: +[ + "nfl", + "nba", + "mlb", + "nhl", + "pga", + "dfs", + "reference" +]
- Changed
get_record1 field changed- changed
Input schema / properties / league / enumPrevious value: -[ - "nfl", - "nba", - "mlb", - "nhl", - "pga", - "dfs", - "kalshi", - "polymarket", - "reference" -]New value: +[ + "nfl", + "nba", + "mlb", + "nhl", + "pga", + "dfs", + "reference" +]
- Changed
list_tables1 field changed- changed
Input schema / properties / league / enumPrevious value: -[ - "nfl", - "nba", - "mlb", - "nhl", - "pga", - "dfs", - "kalshi", - "polymarket", - "reference" -]New value: +[ + "nfl", + "nba", + "mlb", + "nhl", + "pga", + "dfs", + "reference" +]
- Changed
query_table1 field changed- changed
Input schema / properties / league / enumPrevious value: -[ - "nfl", - "nba", - "mlb", - "nhl", - "pga", - "dfs", - "kalshi", - "polymarket", - "reference" -]New value: +[ + "nfl", + "nba", + "mlb", + "nhl", + "pga", + "dfs", + "reference" +]
1 tool update
- Changed
query_table1 field changed- changed
Input schema / properties / from_id / descriptionPrevious value: -"keyset cursor from next_from_id"New value: +"keyset cursor: 0 for the first page of a full walk, then the previous next_from_id"
1 tool update
- Removed
game_markets
10 tool updates
- First observed
api_usage - First observed
describe_table - First observed
game_markets - First observed
games_on_date - First observed
get_record - First observed
graphql_query - First observed
list_leagues - First observed
list_tables - First observed
query_table - First observed
search_players
Related MCP Connectors
Live and historical NBA/NFL/NHL data — fantasy bots, content sites, betting research.
Live odds, cross-book +EV and graded player-prop results across 37 books. Hosted endpoint included.
Sports data across 8 sports under one canonical schema — scores, stats, standings, Elo, odds
NHL and PWHL stats, play-by-play, expected goals and odds. REST API and MCP server. Free to start.
Related MCP Servers
- AlicenseAqualityAmaintenanceLive sports betting player props MCP server covering NBA, MLB, NFL, NHL, NCAA, and soccer. Unified from real sportsbooks into one REST API and a real MCP server (Streamable HTTP). Free tier, no card required.5MIT
- AlicenseNot gradedqualityBmaintenanceProps-first sports odds API with a hosted MCP server. Live odds and player props (moneyline, spreads, totals) across US sportsbooks, normalized to JSON. Tools: get_odds, get_props, get_events, get_books. API-key auth, free tier.MIT No Attribution
- AlicenseAqualityDmaintenanceSchedules, scores, odds, splits & explainable AI bet confidence — 8+ sports, free instant key.11611MIT
- FlicenseBqualityNot gradedmaintenanceProvides access to FantasyPros API for retrieving sports data including news, player information, consensus rankings, and projections across NFL, MLB, NBA, and NHL.57-
Glama MCP Gateway
Add one secure layer between your agents and this server.