addrbookFor publishers
← The evidence ledger

Evidence row 292503

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 53f43a63-4521-41a7-a157-36396b499437
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
58cf1d66d4634d2e0cb9d0f8fc4aef7dc576d5e47bc676b2073e93b11bd977ad
Leaf
0x6c2cbad66a4001823bf12b1fb19b8b9ec9a7713c77bab633b6720ae1a12f1fe2

What was observed

{
  "count": 12,
  "tools": [
    {
      "description": "Report the catalogue as at date: how many SKUs there are, how many price rows are in force, which rows a later row already replaces, and which SKUs carry no price in the profile's default currency. Reads only. Pro.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "date": {
            "description": "The day the report is in force, YYYY-MM-DD. Default today",
            "maxLength": 10,
            "type": "string"
          },
          "limit": {
            "description": "Maximum rows listed in each section, default and ceiling 500",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "catalogue_report"
    },
    {
      "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": "Turn a list of sku or role lines into invoice_create-ready and quote_create-ready items priced from the catalogue as of each line's date. An unknown code is refused by name and never priced. Free.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "client": {
            "description": "Client name or id, copied into both payloads. invoice_create and quote_create both need one",
            "maxLength": 200,
            "type": "string"
          },
          "currency": {
            "$ref": "#/properties/lines/items/properties/currency",
            "description": "The currency for every line. Defaults to the shared business profile's"
          },
          "date": {
            "description": "The day the whole list is priced as of, YYYY-MM-DD. Default today",
            "maxLength": 10,
            "type": "string"
          },
          "lines": {
            "description": "The lines to price, each a sku with a quantity or a role with hours",
            "items": {
              "additionalProperties": false,
              "properties": {
                "currency": {
                  "description": "Overrides the call's currency for this line. Every line on one payload must agree",
                  "pattern": "^[A-Za-z]{3}$",
                  "type": "string"
                },
                "date": {
                  "description": "The day this line is priced as of, YYYY-MM-DD. Overrides the call's date",
                  "maxLength": 10,
                  "type": "string"
                },
                "description": {
                  "description": "Override the catalogue name on the customer's document",
                  "maxLength": 2000,
                  "type": "string"
                },
                "hours": {
                  "description": "Hours worked, for a role line",
                  "exclusiveMinimum": 0,
                  "maximum": 100000,
                  "type": "number"
                },
                "quantity": {
                  "description": "How many, for a sku line",
                  "exclusiveMinimum": 0,
                  "maximum": 1000000,
                  "type": "number"
                },
                "role": {
                  "description": "A rate card role. One of sku or role, never both",
                  "maxLength": 64,
                  "type": "string"
                },
                "sku": {
                  "description": "A catalogue code or product name. One of sku or role, never both",
                  "maxLength": 200,
                  "type": "string"
                },
                "tier": {
                  "description": "Price tier for this line. Overrides the call's tier",
                  "maxLength": 40,
                  "type": "string"
                }
              },
              "type": "object"
            },
            "maxItems": 200,
            "minItems": 1,
            "type": "array"
          },
          "tax_rate": {
            "description": "VAT percent for lines whose SKU carries no rate of its own, overriding the shared profile",
            "maximum": 1000,
            "minimum": 0,
            "type": "number"
          },
          "tier": {
            "description": "Price tier for every line. Default standard",
            "maxLength": 40,
            "type": "string"
          }
        },
        "required": [
          "lines"
        ],
        "type": "object"
      },
      "name": "lines_resolve"
    },
    {
      "description": "Call this tool to render the price list for one currency and tier as an A4 HTML document laid out for print-to-PDF (this hosted endpoint has no PDF renderer) and return a download link valid for one hour: every SKU with its unit, its price in force and the day that price started. Pro.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "currency": {
            "description": "Defaults to the shared business profile's currency",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "date": {
            "description": "The day the list is in force, YYYY-MM-DD. Default today",
            "maxLength": 10,
            "type": "string"
          },
          "out_path": {
            "description": "Name for the downloaded file, e.g. trade-prices-april. Defaults to price-list-<currency>-<tier>-<date>; the list comes back as a download link valid for one hour",
            "maxLength": 1000,
            "type": "string"
          },
          "tier": {
            "description": "One tier. Default standard",
            "maxLength": 40,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "price_list_pdf"
    },
    {
      "description": "Print the price list as plain text: every SKU with its unit, the price in force on a date and any later price booked, then the labour rate cards, under your business name. Also a .txt download link valid one hour. Free; price_list_pdf writes the A4 page.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "currency": {
            "description": "Defaults to the shared business profile's currency",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "date": {
            "description": "The day the list is in force, YYYY-MM-DD. Default today",
            "maxLength": 10,
            "type": "string"
          },
          "tier": {
            "description": "One tier, or omit for standard. Pass all for every tier, which is Pro",
            "maxLength": 40,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "price_list_text"
    },
    {
      "description": "Show the hourly rate for a role as of a date and currency: the row picked is the latest valid_from at or before that date, and the answer names it. With no role given, lists every card. Free.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "currency": {
            "description": "Defaults to the shared business profile's currency",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "date": {
            "description": "The day the rate is wanted for, YYYY-MM-DD. Default today",
            "maxLength": 10,
            "type": "string"
          },
          "role": {
            "description": "The role, e.g. senior developer. Omit to list every rate card",
            "maxLength": 64,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "rate_get"
    },
    {
      "description": "Set the hourly charge-out rate on a labour card: role, currency, hourly_minor in whole MINOR units and the day it starts. The same role, currency and date REPLACES that row rather than adding one. Free.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "currency": {
            "description": "ISO code this rate is in. Defaults to the shared business profile's currency",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "hourly_minor": {
            "description": "The hourly rate in whole minor units. 8500 is EUR 85.00 an hour. Never a decimal",
            "maximum": 1000000000000,
            "minimum": 0,
            "type": "integer"
          },
          "note": {
            "maxLength": 2000,
            "type": "string"
          },
          "role": {
            "description": "The role charged for, e.g. senior developer. Lower case, this is what an hours line is priced from",
            "maxLength": 64,
            "type": "string"
          },
          "sku": {
            "description": "A catalogue code this role bills under, so a resolved hours line carries the SKU's name and VAT rate",
            "maxLength": 64,
            "type": "string"
          },
          "valid_from": {
            "description": "The first day this rate applies, YYYY-MM-DD. Default today",
            "maxLength": 10,
            "type": "string"
          }
        },
        "required": [
          "role",
          "hourly_minor"
        ],
        "type": "object"
      },
      "name": "rate_set"
    },
    {
      "description": "Delete a catalogue line no rate card points at and that never priced a resolved line, freeing a free-tier slot. Otherwise it is refused, naming what depends on it: reprice it to withdraw it instead.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "sku": {
            "description": "The SKU code, e.g. WEB-AUDIT, or the product name when only one product carries it",
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "sku"
        ],
        "type": "object"
      },
      "name": "sku_delete"
    },
    {
      "description": "Show the price of one SKU as of a date, in one currency and tier: the row picked is the latest valid_from at or before that date, and the answer names the row and any later one already booked. Free.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "currency": {
            "description": "Defaults to the shared business profile's currency",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "date": {
            "description": "The day the price is wanted for, YYYY-MM-DD. Default today",
            "maxLength": 10,
            "type": "string"
          },
          "sku": {
            "description": "The SKU code, e.g. WEB-AUDIT, or the product name when only one product carries it",
            "maxLength": 200,
            "type": "string"
          },
          "tier": {
            "description": "Price tier. Default standard",
            "maxLength": 40,
            "type": "string"
          }
        },
        "required": [
          "sku"
        ],
        "type": "object"
      },
      "name": "sku_get"
    },
    {
      "description": "List catalogue lines with the price in force today, filtered by code prefix, by currency and by tier. A SKU with no price in that currency and tier is listed and said to have none. Free.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "currency": {
            "description": "The currency the price in force is shown in. Defaults to the profile's",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "date": {
            "description": "Show the price in force on this day instead of today, YYYY-MM-DD",
            "maxLength": 10,
            "type": "string"
          },
          "limit": {
            "description": "Maximum rows returned, default and ceiling 500",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "prefix": {
            "description": "Only codes starting with this, e.g. HOST- for every hosting line",
            "maxLength": 64,
            "type": "string"
          },
          "tier": {
            "description": "Price tier. Default standard",
            "maxLength": 40,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "sku_list"
    },
    {
      "description": "Add a catalogue line or reprice one: a code, a name, a unit, an optional VAT rate, and price_minor in whole minor units for one currency, tier and valid_from. A repriced line keeps its old rows. Free: 25 SKUs, one tier.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "currency": {
            "description": "ISO code this price is in. Defaults to the shared business profile's currency",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "duplicate_ok": {
            "description": "Add it even though another code already carries the same product at the same price. Default false",
            "type": "boolean"
          },
          "name": {
            "description": "What it is on the customer's document, e.g. Website audit",
            "maxLength": 200,
            "type": "string"
          },
          "note": {
            "maxLength": 2000,
            "type": "string"
          },
          "price_minor": {
            "description": "The price of ONE, in whole minor units. 45000 is EUR 450.00. Never a decimal",
            "maximum": 1000000000000,
            "minimum": 0,
            "type": "integer"
          },
          "sku": {
            "description": "The code, e.g. WEB-AUDIT. Upper case, no spaces. This is what an invoice line is filed under",
            "maxLength": 64,
            "type": "string"
          },
          "tier": {
            "description": "Price tier, e.g. trade or list. Default standard. A second tier is Pro",
            "maxLength": 40,
            "type": "string"
          },
          "unit": {
            "description": "What one of it is: each, hour, month, 1000 words. Default each. Required the first time",
            "maxLength": 40,
            "type": "string"
          },
          "valid_from": {
            "description": "The first day this price applies, YYYY-MM-DD. Default today",
            "maxLength": 10,
            "type": "string"
          },
          "vat_rate": {
            "description": "VAT percent for this product, overriding the shared profile's default on a resolved line",
            "maximum": 1000,
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "sku",
          "name",
          "price_minor"
        ],
        "type": "object"
      },
      "name": "sku_set"
    }
  ]
}

What the leaf hashes

{"body":"58cf1d66d4634d2e0cb9d0f8fc4aef7dc576d5e47bc676b2073e93b11bd977ad","id":292503,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793048815060134,"prev":null,"subject":"53f43a63-4521-41a7-a157-36396b499437","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. 0x6c2cef3c9d5c0ffc1f0ccd3764c7a5afee610f8d068751438bc35b2657efc030
  2. 0x493d1112073c691f03bc365bf3ba822b33ab5ed301c4feeab6ae9f64934982b3
  3. 0x1a5b877251c8a346d8f2ab71478a755903f5e47f488fd99d76e11eb178694397
  4. 0xa5f13f9cd89d11475032a81e8c30d34b3aacd54be0e949e8485417684a366444
  5. 0x3358306e615342ab6e85f1a94a1978451d8467d0085b25a7302e0ea19a765394
  6. 0xfaa0d8643f678417e969bb9da34fe7705c932198a3cbc60149b1332cc98e26da
  7. 0xbf52d82c8df5315b05f40dd5329d1155fcb7a78139c53ebc95265aa786bae425
  8. 0x43802a2075b9dd451f676ae27a9d41abedf125f35f3ad3bde59428541bf3e97e
  9. 0xc775fb1c582fbe1a0d2af6c29bb9b7450af85222dd0608cd6553d5c7346eb8df
  10. 0x2ca36bcf24f7f9df5a29990036f867afd2c15f246eb9f81bf8b0be7cd16f6dec
  11. 0xaf4d0478104c20d31096b9739629a924615768419c52449971b47a4881ebc159
  12. 0x929b3f59cbf01edbae456522161805dd51e098dc3a66d845508de46581bb953c
  13. 0x9dc4d6f64bc3c323d2c45a28209068cd473b6979bd632a0d694bf94d19bc39df
  14. 0xfc9b5a81a7a83a1c735a4fe64590beb9db14d2366f463161358af28c3ea9a81d
  15. 0xa2d436d488e3600b0e5c3e3ed9c9234cd52853c59830b786334fd0c4292d9f40
  16. 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON