addrbookFor publishers
← The evidence ledger

Evidence row 300710

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 61d43c70-1f43-40c6-a504-298174a17542
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
a946023f0273ecb54f20fd87afd6c3244a2a577ca7eab42e80a224e99812eaa6
Leaf
0xd6d3a355662e9e84e87429faa924978a4e7d876e03d41ca58ddba992dc4e68a5

What was observed

{
  "count": 9,
  "tools": [
    {
      "description": "MUTATES Knack data — creates a new record in an object. Knack API: POST /objects/{object_key}/records. Provide `fields` as an object keyed by field key, e.g. { \"field_1\": \"Acme\", \"field_2\": 100 }. Auto Increment / Formula / Equation fields are read-only and cannot be set. Returns the created record.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "fields": {
            "additionalProperties": {},
            "description": "The record's field values keyed by field key, e.g. { \"field_1\": \"Acme\", \"field_2\": 100 }. Auto Increment / Formula / Equation fields are read-only and cannot be written.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "objectKey": {
            "description": "The Knack object (table) key, e.g. \"object_1\".",
            "type": "string"
          }
        },
        "required": [
          "objectKey",
          "fields"
        ],
        "type": "object"
      },
      "name": "knack_create_record"
    },
    {
      "description": "MUTATES Knack data — permanently DELETES a record (irreversible). Knack API: DELETE /objects/{object_key}/records/{record_id}. Knack returns { delete: true } on success.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "objectKey": {
            "description": "The Knack object (table) key, e.g. \"object_1\".",
            "type": "string"
          },
          "recordId": {
            "description": "The record id (a hex string returned by Knack).",
            "type": "string"
          }
        },
        "required": [
          "objectKey",
          "recordId"
        ],
        "type": "object"
      },
      "name": "knack_delete_record"
    },
    {
      "description": "Fetch a Knack application's full schema/metadata — its objects (tables), fields, and scenes. Knack API: GET /applications/{app_id}. Returns the raw JSON as-is. app_id defaults to the configured KNACK_APPLICATION_ID.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "appId": {
            "description": "Optional Knack Application ID; defaults to the configured KNACK_APPLICATION_ID.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "knack_get_application"
    },
    {
      "description": "Fetch a single record by id. Knack API: GET /objects/{object_key}/records/{record_id}. Returns the bare record (with both field_x and field_x_raw values).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "objectKey": {
            "description": "The Knack object (table) key, e.g. \"object_1\".",
            "type": "string"
          },
          "recordId": {
            "description": "The record id (a hex string returned by Knack).",
            "type": "string"
          }
        },
        "required": [
          "objectKey",
          "recordId"
        ],
        "type": "object"
      },
      "name": "knack_get_record"
    },
    {
      "description": "List the fields of ONE object as [{ key, name, type, required }]. Fetches GET /applications/{app_id} and returns the fields of the object whose key === objectKey (e.g. \"object_1\"). app_id defaults to the configured KNACK_APPLICATION_ID.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "appId": {
            "description": "Optional Knack Application ID; defaults to the configured KNACK_APPLICATION_ID.",
            "type": "string"
          },
          "objectKey": {
            "description": "The Knack object (table) key, e.g. \"object_1\".",
            "type": "string"
          }
        },
        "required": [
          "objectKey"
        ],
        "type": "object"
      },
      "name": "knack_list_fields"
    },
    {
      "description": "List an application's objects (tables) as a compact array [{ key, name, fieldCount }]. Convenience over GET /applications/{app_id}. app_id defaults to the configured KNACK_APPLICATION_ID.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "appId": {
            "description": "Optional Knack Application ID; defaults to the configured KNACK_APPLICATION_ID.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "knack_list_objects"
    },
    {
      "description": "List an object's records. Knack API: GET /objects/{object_key}/records. Returns the paged envelope { total_pages, current_page, total_records, records: [...] } as-is. Records carry both field_x (formatted) and field_x_raw (structured) values. Page with page / rows_per_page (max 1000), sort with sort_field / sort_order, and filter with the `filters` object.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "filters": {
            "additionalProperties": {},
            "description": "Optional Knack filter object, JSON-stringified into the `filters` query param. Shape: { \"match\": \"and\"|\"or\", \"rules\": [{ \"field\": \"field_1\", \"operator\": \"is\", \"value\": \"Acme\" }] }. Common operators: contains, does not contain, is, is not, starts with, ends with, higher than, lower than, is blank, is not blank.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "objectKey": {
            "description": "The Knack object (table) key, e.g. \"object_1\".",
            "type": "string"
          },
          "page": {
            "description": "Page number (default 1).",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "rows_per_page": {
            "description": "Records per page (1-1000, default 25).",
            "maximum": 1000,
            "minimum": 1,
            "type": "integer"
          },
          "sort_field": {
            "description": "Field key to sort by, e.g. \"field_25\".",
            "type": "string"
          },
          "sort_order": {
            "description": "Sort direction: \"asc\" or \"desc\".",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string"
          }
        },
        "required": [
          "objectKey"
        ],
        "type": "object"
      },
      "name": "knack_list_records"
    },
    {
      "description": "Power-user escape hatch: GET any Knack API path not wrapped by a dedicated tool (e.g. view-based reads). READ-ONLY — only GET is allowed. Path starts with a slash (e.g. \"/objects/object_1/records\"). Knack API: GET {path}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "path": {
            "description": "API path starting with a slash, e.g. \"/objects/object_1/records\".",
            "type": "string"
          },
          "query": {
            "additionalProperties": {},
            "description": "Optional query params object.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "path"
        ],
        "type": "object"
      },
      "name": "knack_request"
    },
    {
      "description": "MUTATES Knack data — updates a record. Knack API: PUT /objects/{object_key}/records/{record_id}. Provide `fields` as an object keyed by field key; only the included fields change, e.g. { \"field_1\": \"Acme Inc\" }. Auto Increment / Formula / Equation fields are read-only. Returns the updated record.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "fields": {
            "additionalProperties": {},
            "description": "The record's field values keyed by field key, e.g. { \"field_1\": \"Acme\", \"field_2\": 100 }. Auto Increment / Formula / Equation fields are read-only and cannot be written.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "objectKey": {
            "description": "The Knack object (table) key, e.g. \"object_1\".",
            "type": "string"
          },
          "recordId": {
            "description": "The record id (a hex string returned by Knack).",
            "type": "string"
          }
        },
        "required": [
          "objectKey",
          "recordId",
          "fields"
        ],
        "type": "object"
      },
      "name": "knack_update_record"
    }
  ]
}

What the leaf hashes

{"body":"a946023f0273ecb54f20fd87afd6c3244a2a577ca7eab42e80a224e99812eaa6","id":300710,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793053612057410,"prev":null,"subject":"61d43c70-1f43-40c6-a504-298174a17542","subject_kind":"endpoint"}

Proof

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

  1. 0xd6d34941deb9be14ecee6e70c9c8cb299ec284a4459a069b1677ddbf36ac1b03
  2. 0xb86e1e7b3d6dd7ed009e355c6a33ba634906e97b4c8e324ea53584626dd044bd
  3. 0x7d0a2e4be10f1f8d3d0f7ac6eca1b5e7a7d6b688389183292230f06d80a3ac80
  4. 0x122884e8d901782c76f7889e49a831c73d50ae52bb4a884944d0b09335a5ca3f
  5. 0x9418fd66ccd8955fffd9c51da7a8a29b6c7d75a02b13fb5e0d14e533bad89833
  6. 0x245451f06c94dd720063d292518c18907547366713138ea181a7e142e2555086
  7. 0xbbf248486d2a009d9b971cf3725c9292d17e46ac1e95f71a3c5eba6e385615b0
  8. 0x17c9fc37c2dae1c12f78a16ce4bcc248b995e2966f612e7e9304304ce3e9844a
  9. 0xda40352f4c3e9bb16eb1be95235380e545a169dcbe4a5adb1d4681bd81972196
  10. 0x206287918135573a87e376ef5dd28f3e452e64e037a8e2c8a8f5db3f0e0e7d4c
  11. 0x681ef979e2591e4ee00c2230855c75508aa926b1abc5e4e5e6a9348a15261045
  12. 0x39d84ffb833c94bfff15760ea7da987f5303e407884de386d5a33b2328c7d785
  13. 0x3199db04c2c73c3483386a86bf503eafde5af103465608156e2e5f42e72a6fbe
  14. 0x6b927d53caa5125cdba9255612d524976c691f8672796c3f0885ba2c5b3af1ad
  15. 0x6dc40f983a3840a0ad927a9ca17f4ff1e3b649a6c735e2a09b140db7c2caf13b
  16. 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON