addrbookFor publishers
← The evidence ledger

Evidence row 569518

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 49ece8e8-6f2a-4069-990f-43ef62f44360
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
74bf814ace6094181ee284d569f82acd03ac798bef5ed2801ad0cbd6ac6fb748
Leaf
0xfe4516d9a9b6fd506ee27bc85e5ce86ad14e42b3db326dca339d16b41581cda0

What was observed

{
  "count": 15,
  "tools": [
    {
      "description": "The account's recent calls and outcomes; pass next as before for older ones. Without a key: signed_in:false.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "before": {
            "maxLength": 100,
            "type": "string"
          },
          "limit": {
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "activity"
    },
    {
      "description": "Input schema, limits and examples of one ComputeFirst catalog tool, by id and version.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "maxLength": 100,
            "pattern": "^[a-z0-9_-]+$",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "id",
          "version"
        ],
        "type": "object"
      },
      "name": "describe"
    },
    {
      "description": "Run one ComputeFirst catalog tool by id and version with its JSON input. Returns the deterministic result and an unmeasured savings receipt. Limits: computefirst.net/docs#limits.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "maxLength": 100,
            "pattern": "^[a-z0-9_-]+$",
            "type": "string"
          },
          "input": {
            "type": "object"
          },
          "model": {
            "description": "Optional: your model id, only so savings can be shown per model",
            "maxLength": 256,
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "id",
          "version",
          "input"
        ],
        "type": "object"
      },
      "name": "execute"
    },
    {
      "description": "Run 1–20 ComputeFirst catalog tools in one request. Optional bindings fill an input key from an earlier result (JSON Pointer); include_result:false omits an intermediate. Steps after a failed dependency are skipped; nothing is retried automatically. Each success is one execution. Inputs, results and response: 256 KiB each. A factory work budget can skip an item with batch_work_limit; finance and exact decimal power/root/expression tools use the full factory allowance. Send additional factory operations separately. Split refused work; successful items are never retried automatically.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "model": {
            "description": "Optional: your model id, only so savings can be shown per model",
            "maxLength": 256,
            "type": "string"
          },
          "operations": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "bindings": {
                  "description": "Fill distinct top-level input keys from earlier successful results; keys must be absent from input.",
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "from": {
                        "description": "Zero-based earlier operation index; no forward/self references.",
                        "maximum": 19,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "key": {
                        "maxLength": 100,
                        "minLength": 1,
                        "type": "string"
                      },
                      "path": {
                        "description": "RFC 6901 JSON Pointer into that operation result, not its receipt. Empty selects the whole result.",
                        "maxLength": 1024,
                        "type": "string"
                      }
                    },
                    "required": [
                      "key",
                      "from",
                      "path"
                    ],
                    "type": "object"
                  },
                  "maxItems": 16,
                  "type": "array"
                },
                "id": {
                  "maxLength": 100,
                  "minLength": 1,
                  "pattern": "^[a-z0-9_-]+$",
                  "type": "string"
                },
                "include_result": {
                  "default": true,
                  "description": "False returns a success receipt only; the bounded result remains available to later bindings and consent-gated audit. Omission does not bypass the batch work budget.",
                  "type": "boolean"
                },
                "input": {
                  "type": "object"
                },
                "version": {
                  "maxLength": 100,
                  "minLength": 1,
                  "pattern": "^[a-zA-Z0-9.+_-]+$",
                  "type": "string"
                }
              },
              "required": [
                "id",
                "version",
                "input"
              ],
              "type": "object"
            },
            "maxItems": 20,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "operations"
        ],
        "type": "object"
      },
      "name": "execute_batch"
    },
    {
      "description": "Tell ComputeFirst what helped or went wrong (a missing tool fits request_tool). A stable request_id makes retries safe. Leave out secrets and raw data.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "missing_capability",
              "useful",
              "wrong_result",
              "hard_to_use",
              "other"
            ],
            "type": "string"
          },
          "execution_ref": {
            "maxLength": 100,
            "type": "string"
          },
          "message": {
            "maxLength": 1000,
            "minLength": 1,
            "type": "string"
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "category",
          "message",
          "request_id"
        ],
        "type": "object"
      },
      "name": "feedback"
    },
    {
      "description": "Tools saved in the account's library (id, version, note). Without a key: signed_in:false and no tools.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_saved_tools"
    },
    {
      "description": "The signed-in account: keys, privileges and tool-request status. Without a key: signed_in:false and the optional extras.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "profile"
    },
    {
      "description": "Remove a tool id and version from the account's library. Without a key nothing changes.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "maxLength": 100,
            "pattern": "^[a-z0-9_-]+$",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "id",
          "version"
        ],
        "type": "object"
      },
      "name": "remove_saved_tool"
    },
    {
      "description": "Optional, for the person: your model id and, if known, your own estimate of the tokens a call saved (estimated_tokens_saved). Returns its dollar value at public list prices; unknown stays null. A measured comparison adds task_id, baseline_id, baseline, actual, whole_task:true, execution_ref.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "actual": {
            "required": [
              "input",
              "cached_input",
              "output"
            ],
            "type": "object"
          },
          "baseline": {
            "required": [
              "input",
              "cached_input",
              "output"
            ],
            "type": "object"
          },
          "baseline_id": {
            "maxLength": 100,
            "type": "string"
          },
          "estimated_tokens_saved": {
            "additionalProperties": false,
            "properties": {
              "input": {
                "minimum": 0,
                "type": "integer"
              },
              "output": {
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "input",
              "output"
            ],
            "type": "object"
          },
          "execution_ref": {
            "maxLength": 100,
            "type": "string"
          },
          "model": {
            "maxLength": 100,
            "type": "string"
          },
          "provider": {
            "maxLength": 40,
            "type": "string"
          },
          "task_id": {
            "maxLength": 100,
            "type": "string"
          },
          "whole_task": {
            "const": true
          }
        },
        "required": [
          "model"
        ],
        "type": "object"
      },
      "name": "report_savings"
    },
    {
      "description": "Ask for a tool that does not exist yet: the task, optionally example input and output. Optional contact_email (with email_consent:true), only if the person wants one email when it ships. Leave out secrets.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "contact_email": {
            "maxLength": 254,
            "type": "string"
          },
          "description": {
            "maxLength": 4096,
            "minLength": 1,
            "type": "string"
          },
          "email_consent": {
            "type": "boolean"
          },
          "example_input": {
            "maxLength": 4096,
            "type": "string"
          },
          "example_output": {
            "maxLength": 4096,
            "type": "string"
          }
        },
        "required": [
          "description"
        ],
        "type": "object"
      },
      "name": "request_tool"
    },
    {
      "description": "Save a tool id and version to the account's library, with an optional note (saving again replaces the note). Without a key nothing is saved.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "maxLength": 100,
            "pattern": "^[a-z0-9_-]+$",
            "type": "string"
          },
          "note": {
            "maxLength": 200,
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "id",
          "version"
        ],
        "type": "object"
      },
      "name": "save_tool"
    },
    {
      "description": "Savings totals, optionally for one model: with a key, the account's measured and estimated totals; otherwise community verified totals. Unmeasured is not zero.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "model": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "savings"
    },
    {
      "description": "Search the ComputeFirst catalog (computefirst.net/tools) with an English task. Returns up to 5 tools (3 by default) with id, version and a 0–1 score; a confident first match includes its input contract. No match: request_tool can ask for one.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "include_contract": {
            "default": true,
            "type": "boolean"
          },
          "limit": {
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "query": {
            "maxLength": 256,
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search"
    },
    {
      "description": "Only when the person explicitly asks for a free account (consent:true): creates one for their email (unverified) and returns an agent key once, for saved tools, history, personal savings and a higher limit. The person stores the key in their client settings; do not repeat it in the conversation. newsletter:true only if they ask.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "consent": {
            "const": true
          },
          "email": {
            "maxLength": 254,
            "type": "string"
          },
          "newsletter": {
            "type": "boolean"
          }
        },
        "required": [
          "email",
          "consent"
        ],
        "type": "object"
      },
      "name": "sign_in"
    },
    {
      "description": "Subscribe an email to new-tool announcements, only when the person asks for them (consent:true). Every email has an unsubscribe link.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "consent": {
            "const": true
          },
          "email": {
            "maxLength": 254,
            "type": "string"
          }
        },
        "required": [
          "email",
          "consent"
        ],
        "type": "object"
      },
      "name": "subscribe"
    }
  ]
}

What the leaf hashes

{"body":"74bf814ace6094181ee284d569f82acd03ac798bef5ed2801ad0cbd6ac6fb748","id":569518,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793139390738527,"prev":null,"subject":"49ece8e8-6f2a-4069-990f-43ef62f44360","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. 0xfe45c334697e90e7503b723f0f5eb45f85682e06dd87f14a5886b66ca1794dc0
  2. 0x729d719eb07039965a4e5e063005d7d443c84e8ea43eea2ecf71023da85ba8fa
  3. 0x6d5e71abdcf1cb4c724513c330ebaeb1da2a7e85dbf4c870f5f41ed3c78e26a6
  4. 0x2955a5cd46acedcd7fabed52f99aaaa35e472458feb8eda929727945a235b482
  5. 0x58efbb14d8e1a99b6f1d1c1df35ecef150e7433dfe240c9f14121f1e395cf500
  6. 0xb907a4ec0586dd0a0cefad98ff24d1ef86688e5a1882b45f543674499c27de68
  7. 0xd46f9ce3fed1634fce4334f8a09b7e2f41485f5a8233d18914b89df60d772a99
  8. 0x84629a590cac6718077bcc7d2089a1e768480cb830fdf4f3f9b7cacbf483e22e
  9. 0x646286a2b9eda62688dbbdd7d3da965327bef104b64e9428c88e035818cdfee3
  10. 0x3ca3e31ae9036bcc0149e8dd5233b4994fe6dfd315128f7a458e0a9bddcd0124
  11. 0x2e46f3f4a54c5bd4593fdcffcdac06f2162a9caae3cbf2922131682671bb12a1
  12. 0x405c03a710a7150f5182f236dbd76258bf856f8cdf3ac954821ac082524f65da
  13. 0x56e872147e60f01cdcee33340b018a7ad7be91ec5b5daef0d2c629c3ca13cbd8
  14. 0xb5b652bba4a5afca56c21031d89b1c06361563aaf54ccc8541c296ceeb2b66fa
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON