# stat-api — Sports Data MCP server

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

## Links
- Registry page: https://www.getdrio.com/mcp/com-stat-api-sports-data
- Repository: https://github.com/stat-api/mcp
- Website: https://stat-api.com/docs/mcp

## Install
- Endpoint: https://api.stat-api.com/mcp
- Auth: Auth required by registry metadata

## Setup notes
- Remote header: Authorization (secret)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://api.stat-api.com/mcp
- Header: Authorization

## Tools
- 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. Endpoint: https://api.stat-api.com/mcp
- list_tables - List every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying. Endpoint: https://api.stat-api.com/mcp
- 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. Endpoint: https://api.stat-api.com/mcp
- 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. Endpoint: https://api.stat-api.com/mcp
- get_record - Fetch a single row by primary key. Returns the row object. Requires an API key; costs 1 record of quota. Endpoint: https://api.stat-api.com/mcp
- 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. Endpoint: https://api.stat-api.com/mcp
- 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. Endpoint: https://api.stat-api.com/mcp
- 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. Endpoint: https://api.stat-api.com/mcp
- 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. Endpoint: https://api.stat-api.com/mcp
- 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. Endpoint: https://api.stat-api.com/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: com.stat-api
- Version: 1.0.1
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 7, 2026
- Source: https://registry.modelcontextprotocol.io
