{"apiVersion":"v1","directorySlug":"stat-api-mcp-ac84d6eb54","title":"stat-api","description":"The ultimate sports data API: play-by-play, stadium weather, betting odds, DFS and prediction markets across NFL, NBA, MLB, NHL & PGA — one API key.","pageUrl":"https://www.mcpbundles.com/skills/stat-api-mcp-ac84d6eb54","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://api.stat-api.com/mcp","hostedMcpUrl":null,"toolCount":9,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.stat-api/stat-api-mcp-ac84d6eb54","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"list_leagues","description":"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.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"logicalName":"list_leagues","displayName":"list_leagues","title":"list_leagues","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_tables","description":"List every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying.","inputSchema":{"type":"object","required":["league"],"properties":{"league":{"enum":["nfl","nba","mlb","nhl","pga","dfs","kalshi","polymarket","reference"],"type":"string"}},"additionalProperties":false},"logicalName":"list_tables","displayName":"list_tables","title":"list_tables","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"describe_table","description":"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.","inputSchema":{"type":"object","required":["league","table"],"properties":{"table":{"type":"string"},"league":{"enum":["nfl","nba","mlb","nhl","pga","dfs","kalshi","polymarket","reference"],"type":"string"}},"additionalProperties":false},"logicalName":"describe_table","displayName":"describe_table","title":"describe_table","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"query_table","description":"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","inputSchema":{"type":"object","required":["league","table"],"properties":{"limit":{"type":"integer","minimum":1},"table":{"type":"string"},"league":{"enum":["nfl","nba","mlb","nhl","pga","dfs","kalshi","polymarket","reference"],"type":"string"},"filters":{"type":"object","additionalProperties":{"type":["string","number","boolean"]}},"from_id":{"type":"integer"}},"additionalProperties":false},"logicalName":"query_table","displayName":"query_table","title":"query_table","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_record","description":"Fetch a single row by primary key. Returns the row object. Requires an API key; costs 1 record of quota.","inputSchema":{"type":"object","required":["league","table","id"],"properties":{"id":{"type":"string"},"table":{"type":"string"},"league":{"enum":["nfl","nba","mlb","nhl","pga","dfs","kalshi","polymarket","reference"],"type":"string"}},"additionalProperties":false},"logicalName":"get_record","displayName":"get_record","title":"get_record","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"search_players","description":"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.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":10,"maximum":50,"minimum":1},"league":{"enum":["nba"],"type":"string","default":"nba"}},"additionalProperties":false},"logicalName":"search_players","displayName":"search_players","title":"search_players","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"games_on_date","description":"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.","inputSchema":{"type":"object","required":["league"],"properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"league":{"enum":["nba","mlb","nhl"],"type":"string"}},"additionalProperties":false},"logicalName":"games_on_date","displayName":"games_on_date","title":"games_on_date","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"graphql_query","description":"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.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"},"variables":{"type":"object"}},"additionalProperties":false},"logicalName":"graphql_query","displayName":"graphql_query","title":"graphql_query","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"api_usage","description":"Your key's quota position: plan, monthly record limit, records used, remaining, and when the quota resets. Requires an API key; costs 1 record.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"logicalName":"api_usage","displayName":"api_usage","title":"api_usage","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=stat-api&config=eyJ1cmwiOiAiaHR0cHM6Ly9hcGkuc3RhdC1hcGkuY29tL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22stat-api%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.stat-api.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22stat-api%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.stat-api.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=stat-api&connectorUrl=https%3A%2F%2Fapi.stat-api.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"stat-api\" --url \"https://api.stat-api.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/stat-api-mcp-ac84d6eb54","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/stat-api-mcp-ac84d6eb54/tools/{tool}","mcpServerUrl":"https://api.stat-api.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/stat-api-mcp-ac84d6eb54?live=1"}