addrbookFor publishers
← The evidence ledger

Evidence row 296703

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 583591f8-ed22-48c4-b364-e739ec5b02c5
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
c1ecc26ba1f150dd1cea9923b7d3e5c102d516f552c1c0b7c00e11e8eaa222cd
Leaf
0x17be23043a4ae6383ddb5da26e3a301fd3860ca3d36f1777f4e022fd133dc449

What was observed

{
  "count": 14,
  "tools": [
    {
      "description": "Compile a flow document (flows-v1) with the same engine the API uses, and run its tests (flow-tests-v1) against in-memory data. Returns diagnostics (with JSON pointers into the document), what the flow reads and writes, and why each failing test failed. Costs nothing and sees no data.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "flow": {
            "anyOf": [
              {
                "additionalProperties": {},
                "type": "object"
              },
              {
                "type": "string"
              }
            ],
            "description": "The flow document"
          },
          "knownLists": {
            "description": "Path names of lists that exist, so the flow using any other list is warned about",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tests": {
            "anyOf": [
              {
                "additionalProperties": {},
                "type": "object"
              },
              {
                "type": "string"
              }
            ],
            "description": "The flow tests: a flow-tests-v1 document, optional"
          }
        },
        "required": [
          "flow"
        ],
        "type": "object"
      },
      "name": "check_flow"
    },
    {
      "description": "Compile a list's write rules with the same engine the API uses, and run their tests (a rules-tests-v1 document). Returns every diagnostic with its line and column, and for each failing test what it expected, what happened, and how each rule came out. Costs nothing and sees no data: lookups find the test document's items. Use it before saving rules.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "knownLists": {
            "description": "Path names of lists that exist, so lookups into any other list are warned about, as the API does when rules are saved",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "rules": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "description": "The rule text, or its lines as an array (as in a schema sync document)"
          },
          "tests": {
            "anyOf": [
              {
                "additionalProperties": {},
                "type": "object"
              },
              {
                "type": "string"
              }
            ],
            "description": "The rule tests: a rules-tests-v1 document ({ \"tests\": [...] }), optional"
          }
        },
        "required": [
          "rules"
        ],
        "type": "object"
      },
      "name": "check_write_rules"
    },
    {
      "description": "Check one write against a rule set, as the API would, and say whether it would be allowed, denied (403) or failed (400), which statement decided it, and (with trace) what every expression evaluated to. The write is shaped like a rule test case: action, identity, token, old, new, patch, merge, now. Costs nothing and sees no data.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "identities": {
            "additionalProperties": {},
            "description": "Named identities the write can refer to",
            "type": "object"
          },
          "items": {
            "additionalProperties": {},
            "description": "Items for lookups to find: { \"<list>\": { \"<item id or alias>\": { \"data\": ... } } }",
            "type": "object"
          },
          "rules": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "description": "The rule text, or its lines as an array (as in a schema sync document)"
          },
          "trace": {
            "default": false,
            "description": "Include the value of every expression",
            "type": "boolean"
          },
          "write": {
            "additionalProperties": true,
            "description": "The write to check",
            "properties": {
              "action": {
                "enum": [
                  "create",
                  "update",
                  "delete",
                  "restore"
                ],
                "type": "string"
              },
              "identity": {
                "description": "The identity making the write: { \"id\": \"...\" }, a key into identities, or null"
              },
              "merge": {
                "description": "A merge applied to old, instead of new"
              },
              "new": {
                "description": "The item data after the write"
              },
              "now": {
                "description": "The time of the write, ISO 8601",
                "type": "string"
              },
              "old": {
                "description": "The item data before the write (not for create)"
              },
              "patch": {
                "description": "A JSON Patch applied to old, instead of new",
                "items": {
                  "additionalProperties": {},
                  "type": "object"
                },
                "type": "array"
              },
              "token": {
                "additionalProperties": {},
                "description": "The API token, e.g. { \"id\": \"t1\", \"tags\": [\"writer\"] }",
                "type": "object"
              }
            },
            "required": [
              "action"
            ],
            "type": "object"
          }
        },
        "required": [
          "rules",
          "write"
        ],
        "type": "object"
      },
      "name": "eval_write_rule"
    },
    {
      "description": "The full contract of one REST API endpoint: parameters, headers, request body, responses and examples, and the JavaScript SDK method that calls it. Find it by id (the docs page slug, e.g. \"item-restore\"), by method and path (templates or concrete paths both work: \"/lists/my-list/items/abc\"), or by a description.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The endpoint id, from list_api_endpoints",
            "type": "string"
          },
          "method": {
            "description": "The HTTP method",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "PATCH",
              "DELETE",
              "ANY"
            ],
            "type": "string"
          },
          "path": {
            "description": "The path, e.g. /lists/{listId}/items",
            "type": "string"
          },
          "query": {
            "description": "What the endpoint does, e.g. \"restore a deleted item\"",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_api_endpoint"
    },
    {
      "description": "The usage, arguments and options of a jsonpad command line tool (@basementuniverse/jsonpad-cli) command, and whether it works offline. Find it by name (\"rules test\", \"jsonpad sync-schema --dry-run\") or by what it does.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "The command, e.g. \"sync-schema\" or \"jsonpad rules test\"",
            "type": "string"
          },
          "query": {
            "description": "What the command does, e.g. \"export items to a file\"",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_cli_command"
    },
    {
      "description": "The limits of each public plan (Free, Indie, Pro, Scale): requests per month and minute, the minimum gap between requests, storage, item size, versions kept, tokens, identities, realtime connections, webhooks and flows. null means unlimited. Sizes are in bytes, rateLimit in milliseconds, prices in GBP.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "One limit, e.g. maxItemSize",
            "enum": [
              "maxRequestsPerMonth",
              "overdraftPercent",
              "maxRequestsPerMinute",
              "rateLimit",
              "maxStorageBytes",
              "maxLists",
              "maxItemsPerList",
              "maxIndexesPerList",
              "maxItemSize",
              "maxItemVersions",
              "maxTokens",
              "maxIdentities",
              "maxRealtimeConnections",
              "maxWebhooks",
              "maxFlows"
            ],
            "type": "string"
          },
          "plan": {
            "description": "One plan, by id or name, e.g. \"free\"",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_plan_limits"
    },
    {
      "description": "The signature, description and example of a method in the JavaScript SDK (@basementuniverse/jsonpad-sdk) or the realtime SDK, and the REST endpoint it calls. Find it by name (\"restoreItem\") or by what it does.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "The method name, e.g. restoreItem",
            "type": "string"
          },
          "package": {
            "description": "Only one package",
            "enum": [
              "jsonpad-sdk",
              "jsonpad-realtime-sdk"
            ],
            "type": "string"
          },
          "query": {
            "description": "What the method does, e.g. \"wait for an index to build\"",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_sdk_method"
    },
    {
      "description": "List the REST API endpoints an API token can use, as method, path and title. Get one in full with get_api_endpoint.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "resource": {
            "description": "Only one resource",
            "enum": [
              "lists",
              "items",
              "indexes",
              "identities",
              "tokens",
              "flows",
              "schema-sync"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_api_endpoints"
    },
    {
      "description": "List the documentation pages by section, with a description of each: the table of contents.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "section": {
            "description": "Only list one section",
            "enum": [
              "guides",
              "api-reference",
              "lists",
              "items",
              "indexes",
              "identities",
              "tokens",
              "flows",
              "schema-sync",
              "sdk",
              "cli"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_docs"
    },
    {
      "description": "What a JSONPad API error code means, its HTTP status, and the guides that explain it. Give the numeric code (10013) or the name (QUOTA_EXCEEDED), as found in an error response's \"code\" and \"name\".",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "code": {
            "description": "The numeric code, e.g. 10013",
            "type": "integer"
          },
          "name": {
            "description": "The name, e.g. QUOTA_EXCEEDED",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "lookup_error"
    },
    {
      "description": "Read a documentation page as markdown, or one section of it. Give a page slug (\"indexing\"), a /docs path, a jsonpad.io URL (with or without .md, and with an optional #anchor), \"sdk/jsonpad-sdk\", \"sdk/jsonpad-realtime-sdk\", \"cli/reference\" or \"cli/readme\". Long pages are cut at a section boundary; read on with the returned nextSection.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "maxChars": {
            "default": 20000,
            "description": "The most characters of markdown to return",
            "maximum": 100000,
            "minimum": 1000,
            "type": "integer"
          },
          "page": {
            "description": "The page: a slug, path or URL",
            "minLength": 1,
            "type": "string"
          },
          "section": {
            "description": "A heading anchor (\"filtering-items\") or heading text; overrides a #anchor in page",
            "type": "string"
          }
        },
        "required": [
          "page"
        ],
        "type": "object"
      },
      "name": "read_doc"
    },
    {
      "description": "Search the JSONPad documentation, the JavaScript SDK references and the command line tool reference. Returns the best-matching sections with a snippet and their jsonpad.io URL; read one with read_doc. Exact identifiers work well: error codes and names, headers, SDK methods, CLI commands, $jsonpad-var variables, \"POST /lists/{listId}/items\".",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "limit": {
            "default": 5,
            "description": "How many results (1-10)",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "query": {
            "description": "What to look for",
            "maxLength": 200,
            "minLength": 2,
            "type": "string"
          },
          "section": {
            "description": "Only search one section: guides, api-reference (every API reference section), lists, items, indexes, identities, tokens, flows, schema-sync, sdk or cli",
            "enum": [
              "guides",
              "api-reference",
              "lists",
              "items",
              "indexes",
              "identities",
              "tokens",
              "flows",
              "schema-sync",
              "sdk",
              "cli"
            ],
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search_docs"
    },
    {
      "description": "Check a schema sync document (sync-v1) as far as possible without an account: against the JSON schema the API uses, the API's rules for keys and indexes, and every rule set and flow in it with their tests. Documents that reference files (rulesFile, flowFile and their tests) are checked too if the files' contents are given in files. What a sync would change needs the account: the API server's plan_schema_sync, or jsonpad sync-schema --dry-run.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "document": {
            "anyOf": [
              {
                "additionalProperties": {},
                "type": "object"
              },
              {
                "type": "string"
              }
            ],
            "description": "The schema sync document"
          },
          "files": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The contents of files the document references, keyed by the path written in the document, e.g. { \"rules/games.rules\": \"allow ...\" }",
            "type": "object"
          }
        },
        "required": [
          "document"
        ],
        "type": "object"
      },
      "name": "validate_sync_document"
    },
    {
      "description": "Check an API token's permission rules against the schema the API uses, say which rule shape a broken one was meant to be, and warn about valid rules that probably don't do what was meant (rule order, restore without view, sync-schema alone, allow \"*\").",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "permissions": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": {},
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "string"
              }
            ],
            "description": "The permission rules, e.g. [{ \"mode\": \"allow\", \"action\": \"view\", \"resourceType\": \"item\", \"listIds\": [\"*\"], \"itemIds\": [\"*\"] }]"
          }
        },
        "required": [
          "permissions"
        ],
        "type": "object"
      },
      "name": "validate_token_permissions"
    }
  ]
}

What the leaf hashes

{"body":"c1ecc26ba1f150dd1cea9923b7d3e5c102d516f552c1c0b7c00e11e8eaa222cd","id":296703,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793051925194604,"prev":null,"subject":"583591f8-ed22-48c4-b364-e739ec5b02c5","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. 0x17bdd7bf209958d8be98d5350410ca0f09d396054569a9d26f929736137f9b11
  2. 0x72c8b1fff575d11ccc16977091f1b3c64823e723eb1dee87d1b471d6be2afc97
  3. 0x1b01d4ab87e901486cc377c08201b2f052ae860af1e39fd11aef92b7b97af94e
  4. 0xaed50cf94772b7d46dc8f2a449be9402e2ffbc89573636d2ffd58c880339bf37
  5. 0x16589ad6b4dc920e30c9560e712a6b55905c1edd1d1d9174de97aa8bdf693915
  6. 0x207c9f2b0a4ea17381553529e9ab05182f8d44a5516f63d42977613acc9157d3
  7. 0xf7d951a71f3a22a1dd0302af967cc486591f50b1e64ff8ace1af18f41bd9c18c
  8. 0x3a7e3652a06e2ae7601c9f8926eae94180111e9441c6dc028e50371238aa7365
  9. 0x8b44e048d071ff46fe57a2dfde8d0baf3f258667549f638cb4d15f6b13acf9a1
  10. 0x0fcb0ae13db11f174ecb290ebcb27cf7f0e5aba2eac750fab3d7ca602ae20148
  11. 0x84d28434d4d3c4d17b89916035448fc07d9ad132609b14e307edbe020e19d1a6
  12. 0x15eab8feed5b3f08165d63b9f1aed508c0624966a05349e051f86f0c188707b5
  13. 0x32f46c5f73ecbfd4f770f7f760a79bee2afed4b3e7572fa882b3e7dce8df4356
  14. 0x770e4376196188c7fc9ec40f8e218dc0d1cb92bba5fe0425a0edce27ca9a997f
  15. 0x60582ab4b41e72eb70eb0bce07fbf0fb4d2b62a8bad5be50f5d16d511adc746c
  16. 0xc6a4d7899a0f442958e26505011190b7cff2483611c1b94eba9043e0ba9ac36e
  17. 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON