addrbookFor publishers
← The evidence ledger

Evidence row 573257

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint b6addca7-f6bd-4593-b6e8-aaedd9e4cf41
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
15b6b80d13a1593826cf2f44381492116a5163825d8a69f2e5de64a91b9aaa99
Leaf
0xe7872ee85755bddc85b283742a5ba39419316c115a55f7e306d3512fdbed3307

What was observed

{
  "count": 3,
  "tools": [
    {
      "description": "Create a booking request for a slot returned by get_available_slots. Only call after the user explicitly confirmed the service, date, time and their name and e-mail. The booking is created as \"pending\" and the slot is held for 30 minutes; the customer must click the confirmation link sent to their e-mail, otherwise it expires. After that the business's own confirmation policy applies (instant or manual approval). Tell the user to check their inbox.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "answers": {
            "description": "Answers to service booking questions, if the service has any.",
            "items": {
              "properties": {
                "answer": {
                  "maxLength": 1000,
                  "type": "string"
                },
                "questionId": {
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991,
                  "type": "integer"
                }
              },
              "required": [
                "questionId",
                "answer"
              ],
              "type": "object"
            },
            "maxItems": 20,
            "type": "array"
          },
          "customerEmail": {
            "description": "Customer e-mail. The customer must click the confirmation link sent to this address.",
            "format": "email",
            "maxLength": 254,
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
            "type": "string"
          },
          "customerName": {
            "description": "Full name of the customer.",
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          },
          "customerPhone": {
            "maxLength": 40,
            "type": "string"
          },
          "date": {
            "description": "Slot date (YYYY-MM-DD) exactly as returned by get_available_slots.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "notes": {
            "description": "Optional note for the business.",
            "maxLength": 1000,
            "type": "string"
          },
          "serviceId": {
            "description": "Service id from search_businesses.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "slug": {
            "description": "Business slug from search_businesses.",
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          },
          "teamMemberId": {
            "description": "Team member id from get_available_slots. Omit to let bnod pick a free team member.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "time": {
            "description": "Slot start time (HH:MM, business timezone) exactly as returned by get_available_slots.",
            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
            "type": "string"
          }
        },
        "required": [
          "slug",
          "serviceId",
          "date",
          "time",
          "customerName",
          "customerEmail"
        ],
        "type": "object"
      },
      "name": "create_booking"
    },
    {
      "description": "List free appointment start times for one service of a business, per day in the business timezone, with ISO 8601 start/end (including UTC offset) and the team members who can take each slot. Holidays, vacations, working hours and buffers are already applied. Ranges are capped to 14 days. service.questions lists booking questions to ask the user (pass answers to create_booking). Never invent slots: only book times returned here. Flow: search_businesses -> get_available_slots -> confirm service, date, time, team member, name and e-mail with the user -> create_booking. Bookings are only requests until the customer clicks the confirmation link e-mailed to them.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "dateFrom": {
            "description": "First day (YYYY-MM-DD, business timezone). Defaults to today.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "dateTo": {
            "description": "Last day, inclusive. Defaults to dateFrom + 6 days; ranges are capped to 14 days.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "serviceId": {
            "description": "Service id from search_businesses.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "slug": {
            "description": "Business slug from search_businesses.",
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          },
          "teamMemberId": {
            "description": "Only slots of this team member.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "slug",
          "serviceId"
        ],
        "type": "object"
      },
      "name": "get_available_slots"
    },
    {
      "description": "Find businesses on bnod (Austrian local services such as hairdressers, barbers, beauty, massage) that accept online bookings. Filter by free text, category, city, a lat/lng radius or a Google Place ID. Returns slugs, addresses with coordinates, services (id, name, duration, price in euro cents) and the profile URL. Flow: search_businesses -> get_available_slots -> confirm service, date, time, team member, name and e-mail with the user -> create_booking. Bookings are only requests until the customer clicks the confirmation link e-mailed to them.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "category": {
            "description": "Business category (English key or German label). Known categories: Hairdresser, Barbershop, Nail salon, Beauty & spa, Massage & wellness, Tattoo & piercing, Fitness & personal training, Health & clinic, Tutoring & lessons, Pet grooming, Other.",
            "maxLength": 60,
            "minLength": 1,
            "type": "string"
          },
          "city": {
            "description": "City or district as written in the (German) address, e.g. \"Wien\", \"1070\", \"Graz\".",
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "googlePlaceId": {
            "description": "Exact Google Place ID of the business location, if known.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "limit": {
            "default": 10,
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "near": {
            "description": "Only businesses with an address within radiusKm of this point, sorted by distance.",
            "properties": {
              "lat": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "lng": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "radiusKm": {
                "default": 10,
                "exclusiveMinimum": 0,
                "maximum": 200,
                "type": "number"
              }
            },
            "required": [
              "lat",
              "lng"
            ],
            "type": "object"
          },
          "query": {
            "description": "Free text matched against business name, category, description and service names, e.g. \"Haarschnitt\", \"barber\", \"massage\".",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "search_businesses"
    }
  ]
}

What the leaf hashes

{"body":"15b6b80d13a1593826cf2f44381492116a5163825d8a69f2e5de64a91b9aaa99","id":573257,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793140996736211,"prev":null,"subject":"b6addca7-f6bd-4593-b6e8-aaedd9e4cf41","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0xe7876e9d9fbb1a0ef5b82dc12e328990a4127ca51d2903ec7661586930a0618a
  2. 0xa8ff15043a854d8f152f57145dfad3a0168f726053767052911f183f9954bad9
  3. 0xd389593c340200fe6054e61923299c5071628e9cb1175f25e743a612aac34a27
  4. 0xab557fac0c802d15e610f04decc6fe6dbee313fce6e05482d1c3f3c226631616
  5. 0x01242e369f5492011e4e9129251f7cbc3ba4b6883073ba4de58c0b8147814725
  6. 0x1c024ce73dc901f03e6ec73d383275c42266238f46fea45797440c71d06cebb4
  7. 0xb71e8e83bdce4e8412747ba3a9b664bdd5b6ce1fc77188449b4475aa96ce468a
  8. 0x030c2e5a155d6b341c0b6011fb956cd36b6d7a64b59cf599988aab0c5cdc0ae1
  9. 0x48607948b1a6f6648c0b2b4588c857ec3b1612f588aaf272f82a983e1dafddd2
  10. 0xae45a0b127be15a79b0a29d4da96c66c7de866604dc96ff1ebad427f8e281dce
  11. 0x71c8691e7266a630f55422792837d4ddf268c83444f68d63c646c42b70b5ded5
  12. 0x4f9b484326a98846a2342f967ce1e64ee9fa304288bb4355ab666475eb77b61c
  13. 0xab6eb305329046d5ccb835dd8ca955f794e3ca110379a94dbdc780d016448561
  14. 0x41f9f462759cb539183e979fb3eb967d94755cf039c44a64a9a3c4ad97523cfd
  15. 0x56f7109d4cde42492651beb1237c13cdcbf95e6fee2b2482391a2388e04c4629
  16. 0x8745bd887f5ce9f7a49558fd2b04cdcd97a05ea9f8a23f62d0e80cb13d328b0f
  17. 0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON