addrbookFor publishers
← The evidence ledger

Evidence row 292839

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint b6ee132b-49cd-40dd-8d1f-07d9614d97d7
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
921f98c738dfd11b8c33d5b858854bec1b4cbb79f68f744c75f1614555071f26
Leaf
0x2c97b73d23acd5c8aa7030c185450c768e4f2425f764b19112e930c21a9fb087

What was observed

{
  "count": 12,
  "tools": [
    {
      "description": "Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "key": {
            "description": "License key from checkout, MCPL1.<payload>.<signature>",
            "type": "string"
          }
        },
        "required": [
          "key"
        ],
        "type": "object"
      },
      "name": "license_activate"
    },
    {
      "description": "Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "license_status"
    },
    {
      "description": "Mark a quote accepted and turn it into an invoice: created directly in the invoice server when its store is present, otherwise returned as invoice_create-ready line items. The numbers are copied, never recomputed.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "allow_expired": {
            "description": "Accept a quote whose validity has run out. Default false: an expired quote is refused so the price is re-confirmed first",
            "type": "boolean"
          },
          "create_invoice": {
            "description": "Default \"auto\": create the invoice when the invoice store exists, otherwise hand back the items. \"never\" only marks it accepted",
            "enum": [
              "auto",
              "always",
              "never"
            ],
            "type": "string"
          },
          "due_days": {
            "description": "Days until the invoice is due, defaults to your payment terms",
            "maximum": 3650,
            "minimum": 0,
            "type": "integer"
          },
          "id": {
            "description": "Quote id such as Q-2026-0001",
            "type": "string"
          },
          "issue_date": {
            "description": "YYYY-MM-DD for the invoice, defaults to today",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quote_accept"
    },
    {
      "description": "Store a quote for client from items and return its Q number, VAT and totals. unit_price is in MAJOR units; currency, VAT and issuer come from the shared profile. A duplicate of an open quote is refused. Free: 5 open.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "client": {
            "description": "Client name or id. A name the invoice server already knows brings its address, email and VAT id onto the quote",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "client_address": {
            "description": "Postal address for the QUOTE FOR block, newlines allowed",
            "maxLength": 2000,
            "type": "string"
          },
          "client_email": {
            "description": "Only if the user gave it; otherwise the stored client's email is used",
            "maxLength": 320,
            "type": "string"
          },
          "client_vat_id": {
            "description": "Client VAT / tax registration id",
            "maxLength": 64,
            "type": "string"
          },
          "currency": {
            "description": "Defaults to your business default currency",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "discount_percent": {
            "description": "Discount applied to every line, in percent",
            "maximum": 100,
            "minimum": 0,
            "type": "number"
          },
          "issue_date": {
            "description": "YYYY-MM-DD, defaults to today in your business profile's timezone",
            "type": "string"
          },
          "items": {
            "description": "The line items being quoted",
            "items": {
              "additionalProperties": false,
              "properties": {
                "currency": {
                  "description": "Only to state the line's currency; every line on one quote must agree",
                  "pattern": "^[A-Za-z]{3}$",
                  "type": "string"
                },
                "description": {
                  "description": "every line needs a description, 500 characters or fewer",
                  "maxLength": 500,
                  "minLength": 1,
                  "type": "string"
                },
                "quantity": {
                  "description": "Hours or units, must be greater than zero",
                  "exclusiveMinimum": 0,
                  "maximum": 1000000000000,
                  "minimum": -1000000000000,
                  "type": "number"
                },
                "tax_rate": {
                  "description": "VAT percent for this line, overrides the business default",
                  "maximum": 1000,
                  "minimum": 0,
                  "type": "number"
                },
                "unit_price_minor": {
                  "description": "Price per unit in MINOR units: 9000 = 90.00 EUR, 90 = JPY 90. Never a decimal",
                  "maximum": 1000000000000,
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "description",
                "quantity",
                "unit_price_minor"
              ],
              "type": "object"
            },
            "maxItems": 200,
            "minItems": 1,
            "type": "array"
          },
          "notes": {
            "description": "Free text printed under the totals, e.g. scope or exclusions. 10000 characters or fewer",
            "maxLength": 10000,
            "type": "string"
          },
          "tax_rate": {
            "description": "VAT percent for lines with no rate of their own. Defaults to the business default",
            "maximum": 1000,
            "minimum": 0,
            "type": "number"
          },
          "valid_until": {
            "description": "YYYY-MM-DD, an explicit last valid day. Wins over validity_days",
            "type": "string"
          },
          "validity_days": {
            "description": "Days the quote stays valid, counted from the quote date and inclusive. Default 30",
            "maximum": 3650,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "client",
          "items"
        ],
        "type": "object"
      },
      "name": "quote_create"
    },
    {
      "description": "Mark a quote lost, with a reason kept on the record, freeing a free-tier open slot and counting in the win rate. An accepted quote is refused, naming the invoice it became. Free on every tier.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "date": {
            "description": "YYYY-MM-DD, defaults to today",
            "type": "string"
          },
          "id": {
            "description": "Quote id such as Q-2026-0001",
            "type": "string"
          },
          "reason": {
            "description": "Why it was lost, e.g. \"price\" or \"went in-house\". Kept on the record",
            "maxLength": 10000,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quote_decline"
    },
    {
      "description": "Delete a draft quote that was never sent, accepted, invoiced or exported, and give its free open-quote slot back. A quote with any of those is refused with the dependent named. The id is never reissued.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Quote id such as Q-2026-0001",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quote_delete"
    },
    {
      "description": "Return one quote in full by Q number or exact client name: lines with unit price and VAT, totals, dates, the state today with days left, notes, and the invoice it became once accepted. Reads only.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Quote id such as Q-2026-0001, or an exact client name",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quote_get"
    },
    {
      "description": "List quotes newest first: id, client, dates, state, days left while open, currency, total and the invoice number once accepted. State is read against today, so a lapsed quote shows as expired.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "client": {
            "description": "Only quotes for clients whose name contains this text",
            "type": "string"
          },
          "from": {
            "description": "YYYY-MM-DD, earliest quote date",
            "type": "string"
          },
          "state": {
            "description": "Default \"all\". \"open\" excludes quotes whose validity has run out; \"expired\" is only those",
            "enum": [
              "open",
              "expired",
              "accepted",
              "declined",
              "all"
            ],
            "type": "string"
          },
          "to": {
            "description": "YYYY-MM-DD, latest quote date",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "quote_list"
    },
    {
      "description": "Call this tool to render one quote as an A4 print-ready document and return a download link valid for one hour: the invoice layout with the validity date and an acceptance block. Pro.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Quote id such as Q-2026-0001",
            "type": "string"
          },
          "out_path": {
            "description": "Name for the downloaded file, e.g. acme-quote. Defaults to the quote id; the document comes back as a download link valid for one hour",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quote_pdf"
    },
    {
      "description": "Totals per currency for open, accepted, declined and expired quotes, with counts, the value still open and the win rate. Free covers the current calendar year to date; Pro reports over any date range.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "from": {
            "description": "YYYY-MM-DD, earliest quote date to count",
            "type": "string"
          },
          "to": {
            "description": "YYYY-MM-DD, latest quote date to count",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "quote_report"
    },
    {
      "description": "Turn a quote into a plain-text summary to paste into an email: the line table, VAT lines, total and validity date. Also a .txt download link valid one hour. Free; quote_pdf writes the A4 document.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "greeting": {
            "description": "Opening line, default \"Hello\" plus the client name",
            "type": "string"
          },
          "id": {
            "description": "Quote id such as Q-2026-0001",
            "type": "string"
          },
          "sign_off": {
            "description": "Closing line, default your business name from the shared profile",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quote_send_text"
    },
    {
      "description": "Revise a quote that is still open: line items, currency, discount, VAT default, validity or notes. Totals are recomputed. An accepted or declined quote is never edited.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "client_address": {
            "maxLength": 2000,
            "type": "string"
          },
          "client_email": {
            "maxLength": 320,
            "type": "string"
          },
          "client_vat_id": {
            "maxLength": 64,
            "type": "string"
          },
          "currency": {
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "discount_percent": {
            "maximum": 100,
            "minimum": 0,
            "type": "number"
          },
          "id": {
            "description": "Quote id such as Q-2026-0001",
            "type": "string"
          },
          "items": {
            "description": "Replaces every line item",
            "items": {
              "additionalProperties": false,
              "properties": {
                "currency": {
                  "description": "Only to state the line's currency; every line on one quote must agree",
                  "pattern": "^[A-Za-z]{3}$",
                  "type": "string"
                },
                "description": {
                  "description": "every line needs a description, 500 characters or fewer",
                  "maxLength": 500,
                  "minLength": 1,
                  "type": "string"
                },
                "quantity": {
                  "description": "Hours or units, must be greater than zero",
                  "exclusiveMinimum": 0,
                  "maximum": 1000000000000,
                  "minimum": -1000000000000,
                  "type": "number"
                },
                "tax_rate": {
                  "description": "VAT percent for this line, overrides the business default",
                  "maximum": 1000,
                  "minimum": 0,
                  "type": "number"
                },
                "unit_price_minor": {
                  "description": "Price per unit in MINOR units: 9000 = 90.00 EUR, 90 = JPY 90. Never a decimal",
                  "maximum": 1000000000000,
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "description",
                "quantity",
                "unit_price_minor"
              ],
              "type": "object"
            },
            "maxItems": 200,
            "minItems": 1,
            "type": "array"
          },
          "notes": {
            "maxLength": 10000,
            "type": "string"
          },
          "tax_rate": {
            "description": "VAT percent for lines with no rate of their own",
            "maximum": 1000,
            "minimum": 0,
            "type": "number"
          },
          "valid_until": {
            "description": "YYYY-MM-DD. Wins over validity_days, and is how an expired quote is extended",
            "type": "string"
          },
          "validity_days": {
            "description": "Recomputes valid_until from the quote date",
            "maximum": 3650,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "quote_update"
    }
  ]
}

What the leaf hashes

{"body":"921f98c738dfd11b8c33d5b858854bec1b4cbb79f68f744c75f1614555071f26","id":292839,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793048984347618,"prev":null,"subject":"b6ee132b-49cd-40dd-8d1f-07d9614d97d7","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. 0x2c979982c136f68f0ed6db2ec168a11bb9b46436ae9b183a9afb8d361e09c448
  2. 0x0b34a397069f46999268940e804441549dc6cd994f063fa14c7aae0e124e6d12
  3. 0x4020812ae880af391a5b87dfa236b8d63aad80377e1bbed1668ce98f6dcb60b1
  4. 0xa933d1444c8cc1df48d8b7782f67febc2ec9e5cdae87d0fe557324f510c6a0c5
  5. 0x61f60419341b7b942197a20bec29065e33b25aa7abf016e9ccb0e933cc22a0b1
  6. 0xf5374f3691a228568d5f1cbe60701fb5d2abd63904778ccde12bd4d47f9d2e97
  7. 0x3992ef7d77cdc63028f12357cdde066ddc987d25fb82961cd08ea8a0e34d9e61
  8. 0xcb80d18a740ba1dc45c76a5cc87f62e5a6f0683b935f2cc0da3c1e23a3141b5b
  9. 0x7420dba81dac91978bdf01f95a02b6ae12fba03502cf439be566afd5217ef304
  10. 0x92ae512ac303ebf33e234dd8900de38bc100cacd7e3e6d4585dab96308c421ca
  11. 0x9f7d3cc11f13fc54c5221c4babc2273f69d77c4b805c79df41df74cfb0975d6c
  12. 0xf89d9951e0a8e08b9cf11177a1f4e0fd86d9facc5dfecaabbfe564675ebefef7
  13. 0xb87e8b32cda179c9e632e227bbd8a6d1f6f61d9d81bb92dbd4dd835d2b3b5caa
  14. 0x683955a5b2250ad50568d022a6580d8739b6aff1356779d72a773b088e7c289c
  15. 0x610738e0c43687aded83c613c73de8b5226c73c375858a167436461c522ea213
  16. 0x06d71bfa7d8b41d62c8836efc2c601e1cc3772d9453596b2ae4950887f3310ca
  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