{"name":"com.stat-api/sports-data","slug":"stat-api-sports-data","title":"stat-api — Sports Data","description":"NFL/NBA/MLB/NHL/PGA + DFS and prediction-market data. Browse free; query with a free API key.","url":"https://mcp.market/server/stat-api-sports-data","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":18,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-07-07T04:59:32.000Z","license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T04:35:42.265Z","last_ok_at":"2026-11-04T04:35:42.265Z","latency_ms":211},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/stat-api/mcp","website":"https://stat-api.com/docs/mcp","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://api.stat-api.com/mcp","headers":[{"description":"Bearer <api-key> — required for data tools; catalog tools (list_leagues, list_tables, describe_table) work anonymously. Free tier at https://stat-api.com","isSecret":true,"name":"Authorization"}]}],"packages":[],"tools":[{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"enum":["nfl","nba","mlb","nhl","pga","dfs","kalshi","polymarket","reference"],"type":"string"},"table":{"type":"string"}},"required":["league","table"],"additionalProperties":false}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"description":"YYYY-MM-DD; defaults to today in US-Eastern time","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"league":{"enum":["nba","mlb","nhl"],"type":"string"}},"required":["league"],"additionalProperties":false}},{"name":"get_record","description":"Fetch a single row by primary key. Returns the row object. Requires an API key; costs 1 record of quota.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"description":"primary-key value (integer or text PK)","type":"string"},"league":{"enum":["nfl","nba","mlb","nhl","pga","dfs","kalshi","polymarket","reference"],"type":"string"},"table":{"type":"string"}},"required":["league","table","id"],"additionalProperties":false}},{"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string"},"variables":{"type":"object"}},"required":["query"],"additionalProperties":false}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"enum":["nfl","nba","mlb","nhl","pga","dfs","kalshi","polymarket","reference"],"type":"string"}},"required":["league"],"additionalProperties":false}},{"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 <key>; free tier at https://stat-api.com). Every returned row counts against the monthly record quota.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"filters":{"additionalProperties":{"type":["string","number","boolean"]},"description":"field or field__op keys → scalar values; see describe_table","type":"object"},"from_id":{"description":"keyset cursor: 0 for the first page of a full walk, then the previous next_from_id","type":"integer"},"league":{"enum":["nfl","nba","mlb","nhl","pga","dfs","kalshi","polymarket","reference"],"type":"string"},"limit":{"minimum":1,"type":"integer"},"table":{"type":"string"}},"required":["league","table"],"additionalProperties":false}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"league":{"default":"nba","enum":["nba"],"type":"string"},"limit":{"default":10,"maximum":50,"minimum":1,"type":"integer"},"name":{"maxLength":100,"minLength":1,"type":"string"}},"required":["name"],"additionalProperties":false}}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-26T11:35:03.668Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T11:35:03.655Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 645ms"]},"poisoning":{"score":15,"max":15,"notes":["9 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":12,"max":15,"notes":["last push 81 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://api.stat-api.com/mcp","reachable":true,"authRequired":false,"latencyMs":645,"serverInfo":{"name":"stat-api","version":"0.1.0"}}],"packages":[],"repo":{"found":true,"owner":"stat-api","repo":"mcp","archived":false,"pushedAt":"2026-07-07T04:59:32Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/300739827?v=4","ownerCreatedAt":"2026-07-07T04:55:19Z"},"icon":{"url":"https://stat-api.com/favicon.svg","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":null,"lastPushAt":"2026-07-07T04:59:32.000Z","score":18}}}},"grade_history":[],"reviews":[]}