← 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).
- 0xd6d34941deb9be14ecee6e70c9c8cb299ec284a4459a069b1677ddbf36ac1b03
- 0xb86e1e7b3d6dd7ed009e355c6a33ba634906e97b4c8e324ea53584626dd044bd
- 0x7d0a2e4be10f1f8d3d0f7ac6eca1b5e7a7d6b688389183292230f06d80a3ac80
- 0x122884e8d901782c76f7889e49a831c73d50ae52bb4a884944d0b09335a5ca3f
- 0x9418fd66ccd8955fffd9c51da7a8a29b6c7d75a02b13fb5e0d14e533bad89833
- 0x245451f06c94dd720063d292518c18907547366713138ea181a7e142e2555086
- 0xbbf248486d2a009d9b971cf3725c9292d17e46ac1e95f71a3c5eba6e385615b0
- 0x17c9fc37c2dae1c12f78a16ce4bcc248b995e2966f612e7e9304304ce3e9844a
- 0xda40352f4c3e9bb16eb1be95235380e545a169dcbe4a5adb1d4681bd81972196
- 0x206287918135573a87e376ef5dd28f3e452e64e037a8e2c8a8f5db3f0e0e7d4c
- 0x681ef979e2591e4ee00c2230855c75508aa926b1abc5e4e5e6a9348a15261045
- 0x39d84ffb833c94bfff15760ea7da987f5303e407884de386d5a33b2328c7d785
- 0x3199db04c2c73c3483386a86bf503eafde5af103465608156e2e5f42e72a6fbe
- 0x6b927d53caa5125cdba9255612d524976c691f8672796c3f0885ba2c5b3af1ad
- 0x6dc40f983a3840a0ad927a9ca17f4ff1e3b649a6c735e2a09b140db7c2caf13b
- 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
- 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
- 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae