stat-api — Sports Data
NFL/NBA/MLB/NHL/PGA + DFS and prediction-market data. Browse free; query with a free API key.
Connect it
Settings → Connectors → Add custom connector
URL: https://api.stat-api.com/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://api.stat-api.com/mcp{
"mcpServers": {
"sports-data": {
"url": "https://api.stat-api.com/mcp",
"headers": {
"Authorization": "<YOUR_AUTHORIZATION>"
}
}
}
}claude mcp add --transport http sports-data https://api.stat-api.com/mcp --header "Authorization: <value>"{
"servers": {
"sports-data": {
"type": "http",
"url": "https://api.stat-api.com/mcp",
"headers": {
"Authorization": "<YOUR_AUTHORIZATION>"
}
}
}
}9 tools, verified live
list_leaguesread-onlyList 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_tablesread-onlyList every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying.
describe_tableread-onlyFull 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.
query_tableread-onlyQuery 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. {"
get_recordread-onlyFetch 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_playersread-onlyFuzzy 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 against quota.
games_on_dateread-onlyGames 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 a stat-api sign-in or API key; rows count against quota.
graphql_queryread-onlyRun 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. Requi
api_usageread-onlyYour 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.
Alternatives in Developer Tools
Compare →MGMCP GrafanaOfficialA
An MCP server giving access to Grafana dashboards, data and more.
MDMCP Devkit ServerOfficialA
Provides AI assistants with direct access to Mapbox developer APIs and documentation.
Front-End ChecklistA
Review frontend code and live pages against 386 quality-gated web development rules.
PMPostHog MCP ServerOfficialA
Official PostHog MCP Server for product analytics, feature flags, experiments, and more.
MAMakeOfficialA
Build, run and debug Make automation scenarios.
ClerkOfficialA
Access Clerk authentication docs, SDK snippets, and quickstart guides