addrbookFor publishers
← The evidence ledger

Evidence row 559217

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 8bde1635-f37c-464a-9a8b-c9df384d5fd0
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
9a13ef745df56aaaab0055a1dad484800669c2522df2e4e4f9beb266a4b01724
Leaf
0xccd88ba9e9c207f7068fc46375463a1f65f07ef996e9b2ab1da4894dcca18c30

What was observed

{
  "count": 9,
  "tools": [
    {
      "description": "Your 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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "api_usage"
    },
    {
      "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",
              "reference"
            ],
            "type": "string"
          },
          "table": {
            "type": "string"
          }
        },
        "required": [
          "league",
          "table"
        ],
        "type": "object"
      },
      "name": "describe_table"
    },
    {
      "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 a stat-api sign-in or 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"
    },
    {
      "description": "Fetch a single row by primary key. Returns the row object. Requires a stat-api sign-in or 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",
              "reference"
            ],
            "type": "string"
          },
          "table": {
            "type": "string"
          }
        },
        "required": [
          "league",
          "table",
          "id"
        ],
        "type": "object"
      },
      "name": "get_record"
    },
    {
      "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 a stat-api sign-in or 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"
    },
    {
      "description": "List 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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_leagues"
    },
    {
      "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",
              "reference"
            ],
            "type": "string"
          }
        },
        "required": [
          "league"
        ],
        "type": "object"
      },
      "name": "list_tables"
    },
    {
      "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 a stat-api account: sign in when the app asks (free account at https://stat-api.com), or send an API key as Authorization: Bearer <key>. 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",
              "reference"
            ],
            "type": "string"
          },
          "limit": {
            "minimum": 1,
            "type": "integer"
          },
          "table": {
            "type": "string"
          }
        },
        "required": [
          "league",
          "table"
        ],
        "type": "object"
      },
      "name": "query_table"
    },
    {
      "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 a stat-api sign-in or 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"
    }
  ]
}

What the leaf hashes

{"body":"9a13ef745df56aaaab0055a1dad484800669c2522df2e4e4f9beb266a4b01724","id":559217,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793135249238648,"prev":null,"subject":"8bde1635-f37c-464a-9a8b-c9df384d5fd0","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0xccd86a03c81e80eda9579f10394ed4aa440e7ba160084543cdb93e710f0629e7
  2. 0xd7eaf4d5ad6dd6099bb3e85309ff403f530d735df9a35b90eaf49985c2b21dda
  3. 0xd3e96f499428e76ea9dfd1bfc17035295f2aed2a32abf035b97e6ae7aea61f93
  4. 0x844e929020e956ca409617adbe7fa31b87912469fde3eeeb19fc8ff635f9c714
  5. 0x186b40314553947a4ec3ca1c20c71d36c92124cca05ed84cdf446f9ff4cb5344
  6. 0x47ed2d4fa42265dcc7ecc7aa0118294b7b9b535443269e90ef269f8037425918
  7. 0x91b23d7d67a02a7ca0ab2d75ec37b20d2cf5c75ae0bc0facbbcb8da542672f0f
  8. 0x77b30bfab32be1c4b0e3035d7ae6097e12c7d55c447f50e47783c372edb14043
  9. 0xba25a099aed38d4189ef565418ecacc44e462977528b1b32b29d477412367edd
  10. 0xb8405eeba75c6be56beb524c5fd7accc70de5ceb18b5c0866feaa3130c03653b
  11. 0xf6faea553d6354c2881afaf6cc13a2f3a8290ee9597618bbe3c61a828c5e4c23
  12. 0x6c0803f2d7123e0bcd2a148e9fde0f429f31dc964ced287e760ee656fcd9912f
  13. 0xeb77e9d1884bf470f4a13a5869956a83ac37957112a29ccb9e63ddf7791b5a0b
  14. 0xcc49fd573532e5a29f5be4033f62a2eff71456c020bd2258312b98e95cfe301e
  15. 0x969cd44e5a4e8dc3110540398fbf689659eb51df735c1cda5d8f021ef9ff5683
  16. 0xa94627de1af0e823832e05a9069b304ecccb8c0cdb8f9cfc4f2039bfb9799dc5
  17. 0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON