Skip to main content
Glama

stat-api — Sports Data

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
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

A4.3/5.0

Scored across 9 tools

Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness5/5

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 tools
api_usageAPI usage
Read-onlyIdempotent
Inspect

Your key's quota position: plan, monthly record limit, records used, remaining, and when the quota resets. Requires an API key; costs 1 record.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

describe_tableDescribe table
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
leagueYes
games_on_dateGames on date
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoYYYY-MM-DD; defaults to today in US-Eastern time
leagueYes
get_recordGet record
Read-onlyIdempotent
Inspect

Fetch a single row by primary key. Returns the row object. Requires an API key; costs 1 record of quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesprimary-key value (integer or text PK)
tableYes
leagueYes
graphql_queryGraphQL query
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
variablesNo
list_leaguesList leagues
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

list_tablesList tables
Read-onlyIdempotent
Inspect

List every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying.

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueYes
query_tableQuery table
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
tableYes
leagueYes
filtersNofield or field__op keys → scalar values; see describe_table
from_idNokeyset cursor: 0 for the first page of a full walk, then the previous next_from_id
search_playersSearch NBA players
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
limitNo
leagueNonba

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changeddescribe_table1 field changed
      • changedInput schema / properties / league / enum
        Previous value: -[
        -  "nfl",
        -  "nba",
        -  "mlb",
        -  "nhl",
        -  "pga",
        -  "dfs",
        -  "kalshi",
        -  "polymarket",
        -  "reference"
        -]New value: +[
        +  "nfl",
        +  "nba",
        +  "mlb",
        +  "nhl",
        +  "pga",
        +  "dfs",
        +  "reference"
        +]
    • Changedget_record1 field changed
      • changedInput schema / properties / league / enum
        Previous value: -[
        -  "nfl",
        -  "nba",
        -  "mlb",
        -  "nhl",
        -  "pga",
        -  "dfs",
        -  "kalshi",
        -  "polymarket",
        -  "reference"
        -]New value: +[
        +  "nfl",
        +  "nba",
        +  "mlb",
        +  "nhl",
        +  "pga",
        +  "dfs",
        +  "reference"
        +]
    • Changedlist_tables1 field changed
      • changedInput schema / properties / league / enum
        Previous value: -[
        -  "nfl",
        -  "nba",
        -  "mlb",
        -  "nhl",
        -  "pga",
        -  "dfs",
        -  "kalshi",
        -  "polymarket",
        -  "reference"
        -]New value: +[
        +  "nfl",
        +  "nba",
        +  "mlb",
        +  "nhl",
        +  "pga",
        +  "dfs",
        +  "reference"
        +]
    • Changedquery_table1 field changed
      • changedInput schema / properties / league / enum
        Previous value: -[
        -  "nfl",
        -  "nba",
        -  "mlb",
        -  "nhl",
        -  "pga",
        -  "dfs",
        -  "kalshi",
        -  "polymarket",
        -  "reference"
        -]New value: +[
        +  "nfl",
        +  "nba",
        +  "mlb",
        +  "nhl",
        +  "pga",
        +  "dfs",
        +  "reference"
        +]
  2. 1 tool update
    • Changedquery_table1 field changed
      • changedInput schema / properties / from_id / description
        Previous 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"
  3. 1 tool update
    • Removedgame_markets
  4. 10 tool updates
    • First observedapi_usage
    • First observeddescribe_table
    • First observedgame_markets
    • First observedgames_on_date
    • First observedget_record
    • First observedgraphql_query
    • First observedlist_leagues
    • First observedlist_tables
    • First observedquery_table
    • First observedsearch_players

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Live 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.
    5
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Props-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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.