Server definition
- Hash
- sha256:159b3947161e27aae80d8a3d89d77c2c473b369b6e6bd604654f228e9ad0d2d4
- What it is
- What a remote MCP server returned when asked what it offers: 9 tools
The blob, as servednamed by its sha256
{
"instructions": "stat-api serves NFL, NBA, MLB, NHL, and PGA data plus DFS salaries. Workflow: list_leagues → list_tables(league) → describe_table(league, table) → query_table. Catalog tools work without credentials; data tools require an API key (free tier at https://stat-api.com) sent as 'Authorization: Bearer <key>'. Every returned row counts against the key's monthly record quota — check api_usage to see your position.",
"tools": [
{
"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": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "api_usage",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {
"league": {
"enum": [
"nfl",
"nba",
"mlb",
"nhl",
"pga",
"dfs",
"kalshi",
"polymarket",
"reference"
],
"type": "string"
},
"table": {
"type": "string"
}
},
"required": [
"league",
"table"
],
"type": "object"
},
"name": "describe_table",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "games_on_date",
"outputSchema": null
},
{
"description": "Fetch a single row by primary key. Returns the row object. Requires an API key; costs 1 record of quota.",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "get_record",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {
"query": {
"type": "string"
},
"variables": {
"type": "object"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "graphql_query",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_leagues",
"outputSchema": null
},
{
"description": "List every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"league": {
"enum": [
"nfl",
"nba",
"mlb",
"nhl",
"pga",
"dfs",
"kalshi",
"polymarket",
"reference"
],
"type": "string"
}
},
"required": [
"league"
],
"type": "object"
},
"name": "list_tables",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "query_table",
"outputSchema": null
},
{
"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": {
"additionalProperties": false,
"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"
],
"type": "object"
},
"name": "search_players",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:159b3947161e27aae80d8a3d89d77c2c473b369b6e6bd604654f228e9ad0d2d4 | sha256sum