addrbookFor publishers
← 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).

  1. 0xaeb4d721355c8f4d87f2afe750a27f01fef0373ad499c0cb2bf473f337b8808e
  2. 0x49d5ed9b07b6c1ae7f8ba7fe73e6a77e1d57fe3ab54dff996f6ebac1e04e5034
  3. 0x15243cb505630feb79415d8104034da46285245e3265fa9171abc7e951b77b35
  4. 0xd6e32cfd5fdeac43cc78115503f1ad11eb89a25508bf49c58e93221c43825a73
  5. 0x7581d2e47414cbb7df01cc9105617c62846164d17af35e51d06d8c61037c1db3
  6. 0x3808f3254e568a9aa6583e50dec6b593a0e4f9766e7e6e3fd2f9c255cdf6443c
  7. 0x43a7514e5f46c5cc700c0379f7c62df08f08e862eec482012d5787a42d88f64c
  8. 0xf7aba04995af1f052e14d41a11cbc319e0700c1943d5fb11e93374585a2881f6
  9. 0x0f3ab4579736839df47717482ceda38e2729c4f0754d71552c879ec32eb69f11
  10. 0x10b2a9fbb9dbbb5adee2501b8f1d65a939fa348da724000ea9d29a2de184091b
  11. 0x3a09deea51e1678acab15ea601d78ad819007fa00ad993d0045b04b80b46b552
  12. 0xdc3228b6e41e560f38519a60873442c46b3bf8cb51333833b72852fa52ed9b54
  13. 0x7d0d3aff5cda93ee535a719badb539fe6d893a3c61ecfc842ea162eaa2e80b57
  14. 0xa99b1ad6330601889770030d23b9c5dc19a1695efddee19df6debd2cc7c017cf
  15. 0xb12c082ef1a62be55def66eb167199a0d5bfcaf36f2f6e389298bc918cf1b0bc
  16. 0x4a5b4dca6c638b7872bc6485359586bebc62511ba2776f1ea54dfdaa4d1a511b
  17. 0xf19d501fdbc28e10c3244253daf0c37c4752659eae14a7cba585a18c7df9ce0d
  18. 0xd422a75f6c3780ed53eca52b50bf40b8f17dc14cffb804142e44fc9f2672029d
  19. 0xc0d08d48601d1be90bcfc025e66bcaa0030120d688dd9c919b36c2c4446f4948
Day root
0xb30ccefe7182c6f767e1fcbfb5f64ffd649da831f665f65c5ff39cd40512284f
Chained
0xc383f7ef68d2914082484765aa09e42c12c59a74a096ae64127c562618c506d3
Published
On Arc Testnet, block 71111178: 0xfba13cb7ee4ada7f2fee3702a786a2201596be2ffea37dfc281ab4c8e9942fe1

How to check it · This row as JSON