← The evidence ledger
Evidence row 3715817
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 5ba0de4a-58bb-4513-a0c6-1996f1aaf063
- Recorded
- Previous row
- #2534073
- Body SHA-256
- e125a59dde37c674d939eb953b2a474211ddc8fc91e32d3bd773df3f5b3689a9
- Leaf
- 0xaeb4c16d91b4c2a7bca52bcce7e7a44293203202b71cf93a0af3b365ee845cc8
What was observed
{
"count": 11,
"tools": [
{
"description": "The signed-in baker's dashboard at a glance: bakery place/level, access (Cottage Pro / Unlimited Pass), sales + expense totals with recent sales, saved recipe names, and permit workspaces with progress. Requires OAuth sign-in (crosodo:read). Start here to know whose dashboard you are acting on.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_my_dashboard"
},
{
"description": "The signed-in baker's county permit checklist (active Permits workspace, or fips) with each step's requirement, official URL, and done flag. Requires OAuth sign-in (crosodo:read).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"fips": {
"description": "5-digit county/city FIPS (default: active workspace)",
"type": "string"
}
},
"type": "object"
},
"name": "get_permit_checklist"
},
{
"description": "The Menu Frame catalog: free state-law report ($0) plus agent checkout SKUs. The public site sells Cottage Pro ($15 one time, lifetime access) at /cottage-pro. Notes the reusable 50%-off promotion code. Does not create a checkout session.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_products"
},
{
"description": "Add one expense to the signed-in baker's Financials tab. Cottage Pro from the first entry (same rule as the dashboard). Amounts are the baker's own numbers. Requires OAuth sign-in (crosodo:write).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"amountUsd": {
"description": "Expense amount in USD, e.g. 18.25",
"type": "number"
},
"category": {
"description": "ingredients | packaging | fees_permits | equipment | market_fees | transport | utilities | marketing | other",
"type": "string"
},
"note": {
"description": "Optional short note",
"type": "string"
},
"spentOn": {
"description": "Expense date, YYYY-MM-DD",
"type": "string"
},
"vendor": {
"description": "Optional vendor name",
"type": "string"
}
},
"required": [
"amountUsd",
"spentOn"
],
"type": "object"
},
"name": "log_expense"
},
{
"description": "Add one sale to the signed-in baker's sales log (same record the Financials tab creates). Free for every signed-in user. Requires OAuth sign-in (crosodo:write).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"amountUsd": {
"description": "Sale amount in USD, e.g. 42.50",
"type": "number"
},
"channel": {
"description": "Where the sale happened (default other)",
"enum": [
"market",
"pickup",
"delivery",
"online",
"event",
"other"
],
"type": "string"
},
"note": {
"description": "Optional short note (max 140 chars)",
"type": "string"
},
"soldOn": {
"description": "Sale date, YYYY-MM-DD",
"type": "string"
}
},
"required": [
"amountUsd",
"soldOn"
],
"type": "object"
},
"name": "log_sale"
},
{
"description": "County-level cottage-food requirements for a US state + county from Crosodo's structured county dataset (contacts, verification status, local URLs, state summaries). Unknown states or counties return an error — never invented data. Cottage food laws change. This summary is generated from Crosodo's hand-maintained dataset — it is not legal advice. Verify with your county before selling.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"county": {
"description": "County name or slug (lancaster or Lancaster County)",
"type": "string"
},
"state": {
"description": "2-letter USPS abbrev (PA) or state slug (pennsylvania)",
"type": "string"
}
},
"required": [
"state",
"county"
],
"type": "object"
},
"name": "lookup_county"
},
{
"description": "Cottage-food / home-bakery requirements for a US state from Crosodo's hand-maintained dataset: sales cap, registration, allowed products, statute, and agency links. Accepts a 2-letter abbrev (VA) or slug (virginia). Unknown states return an error — never invented data. Cottage food laws change. This summary is generated from Crosodo's hand-maintained dataset — it is not legal advice. Verify with your county before selling.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"state": {
"description": "2-letter USPS abbrev (VA) or state slug (virginia)",
"type": "string"
}
},
"required": [
"state"
],
"type": "object"
},
"name": "lookup_state_law"
},
{
"description": "Save (or update, with id) a recipe in the signed-in baker's Foods Recipes library. Ingredient costs are the baker's own package costs — never invent prices. First saved recipe is free; the library beyond that is Cottage Pro (same rule as the dashboard). Requires OAuth sign-in (crosodo:write).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"allergens": {
"description": "Allergen names as the baker states them",
"items": {
"type": "string"
},
"type": "array"
},
"batchYield": {
"description": "Units per batch, e.g. 12",
"type": "number"
},
"food": {
"description": "can-i-sell food slug, e.g. cookies",
"type": "string"
},
"id": {
"description": "Existing recipe id to update (from get_my_dashboard or a previous save)",
"type": "string"
},
"ingredients": {
"description": "Ingredients with the baker's entered package costs",
"items": {
"properties": {
"name": {
"type": "string"
},
"packageCost": {
"description": "USD paid for the package",
"type": "number"
},
"packageQty": {
"description": "Quantity in the package",
"type": "number"
},
"unit": {
"type": "string"
},
"usedQty": {
"description": "Quantity used per batch, same unit",
"type": "number"
}
},
"type": "object"
},
"type": "array"
},
"name": {
"description": "Recipe name, e.g. Sourdough sandwich loaf",
"type": "string"
},
"notes": {
"type": "string"
},
"yieldUnit": {
"description": "e.g. servings, loaves",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "save_recipe"
},
{
"description": "Check or uncheck one step on the signed-in baker's permit checklist (same check mark the Permits tab toggles). Get step ids from get_permit_checklist. Requires a Permit Guide purchase or full-library access, same as the dashboard. OAuth sign-in (crosodo:write).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"done": {
"description": "true = done, false = not done",
"type": "boolean"
},
"fips": {
"description": "5-digit county/city FIPS (default: active workspace)",
"type": "string"
},
"stepId": {
"description": "Step id from get_permit_checklist",
"type": "string"
}
},
"required": [
"stepId",
"done"
],
"type": "object"
},
"name": "set_permit_step"
},
{
"description": "Creates a Stripe Checkout session server-side and returns { checkoutUrl, product, sessionId }. Hand the URL to the user; payment completes on Stripe's hosted page. This never charges. product: permit_guide | certified_exam | unlimited_pass. permit_guide and unlimited_pass are county-specific (state + county required). Pass idempotencyKey so agent retries cannot double-create sessions.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"county": {
"description": "Required for permit_guide and unlimited_pass (name or slug)",
"type": "string"
},
"email": {
"description": "Buyer email, prefilled at Stripe Checkout",
"type": "string"
},
"idempotencyKey": {
"description": "Client-generated key; retries with the same key reuse the Stripe session",
"type": "string"
},
"product": {
"description": "Purchasable product id from list_products",
"enum": [
"permit_guide",
"certified_exam",
"unlimited_pass"
],
"type": "string"
},
"state": {
"description": "Required for permit_guide and unlimited_pass (2-letter abbrev or slug)",
"type": "string"
}
},
"required": [
"product"
],
"type": "object"
},
"name": "start_checkout"
},
{
"description": "Public lookup of a Crosodo Certified credential (format CC-{ST}-{YY}-{XXXX}, for example CC-VA-26-1042; that ID only illustrates the format and is not a real credential, so looking it up returns Credential not found). Returns public fields only (holder display name, dates, status). Unknown, expired, or revoked credentials return an error. No auth.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"certId": {
"description": "Credential ID in the format CC-{ST}-{YY}-{XXXX} (e.g. CC-VA-26-1042, format example only, not a real credential)",
"type": "string"
}
},
"required": [
"certId"
],
"type": "object"
},
"name": "verify_certification"
}
]
}What the leaf hashes
{"body":"e125a59dde37c674d939eb953b2a474211ddc8fc91e32d3bd773df3f5b3689a9","id":3715817,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793963316338634,"prev":2534073,"subject":"5ba0de4a-58bb-4513-a0c6-1996f1aaf063","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (303443 rows).
- 0xaeb4d721355c8f4d87f2afe750a27f01fef0373ad499c0cb2bf473f337b8808e
- 0x49d5ed9b07b6c1ae7f8ba7fe73e6a77e1d57fe3ab54dff996f6ebac1e04e5034
- 0x15243cb505630feb79415d8104034da46285245e3265fa9171abc7e951b77b35
- 0xd6e32cfd5fdeac43cc78115503f1ad11eb89a25508bf49c58e93221c43825a73
- 0x7581d2e47414cbb7df01cc9105617c62846164d17af35e51d06d8c61037c1db3
- 0x3808f3254e568a9aa6583e50dec6b593a0e4f9766e7e6e3fd2f9c255cdf6443c
- 0x43a7514e5f46c5cc700c0379f7c62df08f08e862eec482012d5787a42d88f64c
- 0xf7aba04995af1f052e14d41a11cbc319e0700c1943d5fb11e93374585a2881f6
- 0x0f3ab4579736839df47717482ceda38e2729c4f0754d71552c879ec32eb69f11
- 0x10b2a9fbb9dbbb5adee2501b8f1d65a939fa348da724000ea9d29a2de184091b
- 0x3a09deea51e1678acab15ea601d78ad819007fa00ad993d0045b04b80b46b552
- 0xdc3228b6e41e560f38519a60873442c46b3bf8cb51333833b72852fa52ed9b54
- 0x7d0d3aff5cda93ee535a719badb539fe6d893a3c61ecfc842ea162eaa2e80b57
- 0xa99b1ad6330601889770030d23b9c5dc19a1695efddee19df6debd2cc7c017cf
- 0xb12c082ef1a62be55def66eb167199a0d5bfcaf36f2f6e389298bc918cf1b0bc
- 0x4a5b4dca6c638b7872bc6485359586bebc62511ba2776f1ea54dfdaa4d1a511b
- 0xf19d501fdbc28e10c3244253daf0c37c4752659eae14a7cba585a18c7df9ce0d
- 0xd422a75f6c3780ed53eca52b50bf40b8f17dc14cffb804142e44fc9f2672029d
- 0xc0d08d48601d1be90bcfc025e66bcaa0030120d688dd9c919b36c2c4446f4948
- Day root
- 0xb30ccefe7182c6f767e1fcbfb5f64ffd649da831f665f65c5ff39cd40512284f
- Chained
- 0xc383f7ef68d2914082484765aa09e42c12c59a74a096ae64127c562618c506d3
- Published
- On Arc Testnet, block 71111178: 0xfba13cb7ee4ada7f2fee3702a786a2201596be2ffea37dfc281ab4c8e9942fe1