← 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).
- 0x2c979982c136f68f0ed6db2ec168a11bb9b46436ae9b183a9afb8d361e09c448
- 0x0b34a397069f46999268940e804441549dc6cd994f063fa14c7aae0e124e6d12
- 0x4020812ae880af391a5b87dfa236b8d63aad80377e1bbed1668ce98f6dcb60b1
- 0xa933d1444c8cc1df48d8b7782f67febc2ec9e5cdae87d0fe557324f510c6a0c5
- 0x61f60419341b7b942197a20bec29065e33b25aa7abf016e9ccb0e933cc22a0b1
- 0xf5374f3691a228568d5f1cbe60701fb5d2abd63904778ccde12bd4d47f9d2e97
- 0x3992ef7d77cdc63028f12357cdde066ddc987d25fb82961cd08ea8a0e34d9e61
- 0xcb80d18a740ba1dc45c76a5cc87f62e5a6f0683b935f2cc0da3c1e23a3141b5b
- 0x7420dba81dac91978bdf01f95a02b6ae12fba03502cf439be566afd5217ef304
- 0x92ae512ac303ebf33e234dd8900de38bc100cacd7e3e6d4585dab96308c421ca
- 0x9f7d3cc11f13fc54c5221c4babc2273f69d77c4b805c79df41df74cfb0975d6c
- 0xf89d9951e0a8e08b9cf11177a1f4e0fd86d9facc5dfecaabbfe564675ebefef7
- 0xb87e8b32cda179c9e632e227bbd8a6d1f6f61d9d81bb92dbd4dd835d2b3b5caa
- 0x683955a5b2250ad50568d022a6580d8739b6aff1356779d72a773b088e7c289c
- 0x610738e0c43687aded83c613c73de8b5226c73c375858a167436461c522ea213
- 0x06d71bfa7d8b41d62c8836efc2c601e1cc3772d9453596b2ae4950887f3310ca
- 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae