addrbookFor publishers
← The evidence ledger

Evidence row 1843099

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 939ad3e9-3d91-49ac-8695-cc9ab28d8371
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
2d34df6afc1bacd858f258fdc6e3c037e8e655c5b8323f1cb63d078a28c7ab6a
Leaf
0x8db866ce0deeeb39cfae1cd47ca9df8123fcd971c72a14ba55fcbe377ce4bee5

What was observed

{
  "count": 5,
  "tools": [
    {
      "description": "Places a 15-minute HOLD on the room and emails the guest a 6-digit code. Nothing is booked and nothing reaches the hotel until the guest confirms. After calling, tell the guest: check your email (the result shows the masked address), then either read the code back to you (call confirm_booking) or click Confirm in the email. Send an idempotency_key and reuse it if you retry. Confirm name, email, dates and price with the guest before calling. Demo hotels (demo: true) confirm at once and send no email.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "agent": {
            "description": "Name of the AI agent/app placing the request",
            "maxLength": 120,
            "type": "string"
          },
          "check_in": {
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "check_out": {
            "$ref": "#/properties/check_in"
          },
          "guest_email": {
            "format": "email",
            "maxLength": 254,
            "type": "string"
          },
          "guest_name": {
            "maxLength": 120,
            "minLength": 2,
            "type": "string"
          },
          "guest_phone": {
            "maxLength": 40,
            "type": "string"
          },
          "guests": {
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "idempotency_key": {
            "description": "One per booking attempt (8-128 of A-Z a-z 0-9 _ -). Reuse it on retries to get the same hold back.",
            "maxLength": 128,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9_-]+$",
            "type": "string"
          },
          "notes": {
            "description": "Requests for the hotel, e.g. late arrival",
            "maxLength": 1000,
            "type": "string"
          },
          "room_id": {
            "$ref": "#/properties/stay_id"
          },
          "stay_id": {
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          }
        },
        "required": [
          "stay_id",
          "room_id",
          "check_in",
          "check_out",
          "guests",
          "guest_name",
          "guest_email"
        ],
        "type": "object"
      },
      "name": "book_direct"
    },
    {
      "description": "Re-check one room for exact dates and guests right before booking. Returns available yes/no and the live quote. Demo hotels are marked demo: true.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "check_in": {
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "check_out": {
            "$ref": "#/properties/check_in"
          },
          "guests": {
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "room_id": {
            "$ref": "#/properties/stay_id"
          },
          "stay_id": {
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          }
        },
        "required": [
          "stay_id",
          "room_id",
          "check_in",
          "check_out",
          "guests"
        ],
        "type": "object"
      },
      "name": "check_availability"
    },
    {
      "description": "Confirm a held booking with the 6-digit code the guest received by email. Only use a code the guest gave you. Five wrong codes cancel the hold. Confirming twice returns the same booking.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "code": {
            "description": "The 6-digit code from the guest's email",
            "maxLength": 20,
            "minLength": 1,
            "type": "string"
          },
          "hold_id": {
            "description": "hold_id from book_direct",
            "maxLength": 40,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "hold_id",
          "code"
        ],
        "type": "object"
      },
      "name": "confirm_booking"
    },
    {
      "description": "Rooms, prices, what's included, check-in/out times and cancellation terms for one stay. Demo hotels are marked demo: true.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "check_in": {
            "description": "Optional: with check_out, adds availability and a quote per room",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "check_out": {
            "$ref": "#/properties/check_in"
          },
          "guests": {
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "stay_id": {
            "description": "stay_id from search_stays",
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          }
        },
        "required": [
          "stay_id"
        ],
        "type": "object"
      },
      "name": "get_stay"
    },
    {
      "description": "Find hotels with a room free for the dates and guests. Returns each stay's cheapest fitting room with a quote (price, ATA fee 5%, typical 15-20% OTA cut). Demo hotels are marked demo: true. Results come in pages: when more_results is true, call search_stays again with the same arguments plus cursor: next_cursor to get the rest. Nothing is left out.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "check_in": {
            "description": "Arrival date, YYYY-MM-DD",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "check_out": {
            "description": "Departure date, YYYY-MM-DD",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "cursor": {
            "description": "next_cursor from the previous page of this same search, to get the next page",
            "maxLength": 400,
            "minLength": 1,
            "type": "string"
          },
          "guests": {
            "description": "Number of guests in one room",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "max_price_per_night": {
            "description": "Budget per night in the hotel's currency (EUR in the demo)",
            "exclusiveMinimum": 0,
            "maximum": 1000000,
            "type": "number"
          },
          "place": {
            "description": "City, area, country or hotel name, e.g. 'Bangkok' or 'Gamla Stan'",
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          },
          "wants": {
            "description": "Nice-to-haves, e.g. ['pool','beach','quiet']; ranks matches first",
            "items": {
              "maxLength": 80,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          }
        },
        "required": [
          "place",
          "check_in",
          "check_out",
          "guests"
        ],
        "type": "object"
      },
      "name": "search_stays"
    }
  ]
}

What the leaf hashes

{"body":"2d34df6afc1bacd858f258fdc6e3c037e8e655c5b8323f1cb63d078a28c7ab6a","id":1843099,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793574793624170,"prev":null,"subject":"939ad3e9-3d91-49ac-8695-cc9ab28d8371","subject_kind":"endpoint"}

Proof

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

  1. 0x8db86e0e7ff3b4a671baa0bb358c3236ef27d30fb63b7bdcab50aca867dbe297
  2. 0xbaa63b32ec2d9a54b52757b563b98961a252c8d18ddc013f0a94477ff644d1b6
  3. 0xb887803ed8d024fbcbfad6c6990e687fc28f2a07fe47d03f1a306cd09d7a5f15
  4. 0xcdcb338c82272a47d38a3c7205fec24e663382d5ff67236f4f73dc10dd77533a
  5. 0x1fd0732831fb9ffb4c6c0c1f0b8f450ae8b48c2c1d61278f7ebda4c70baff39e
  6. 0xcbaa1d1587632340c63fd25397fed96e749e6e539d168a8af6891ea265b43811
  7. 0xe122636cc028bf307607b886652c5780e9615f5ffdb7616bf040eecd7afe8265
  8. 0xe24ae4c1b87ac659fa9441817e0557b6568d25079a949aa5de157bcafc605b63
  9. 0xf8c31a1f95314a4245fcf42de910e53d37f669e80fb1e7e19a1c0a5628a6c20e
  10. 0x575f8ed1b7070234b80d4c6b910d00fcafeda67cc4aca71123a90d1095ce0862
  11. 0x591aea021f7cf8b6c9f92a3c371a7c64cdf7150c58a37b14b2626a676a919f49
  12. 0x29d7a2a4df0d7fa79f3b537becdf01ca611b7c70fbde18f9fae82bb3e270cc73
  13. 0x6129eb29b7f3727c333751ed672fa6e4b231f839ed64750b5d1005800847c8dd
  14. 0x43a0d126875c656347b68ba3c0196959406aa8df8a7cd284fd2814ddd386322c
  15. 0x23107b06227fe01d939429fa5248f5555093c421dfc6b8bc6ba3518a65263d17
  16. 0xc2b1c84ef3531511a3d8d9db5ff9eeca2725a3782e7f9c4ac87fc0f1588349fa
  17. 0x0c618c42b286ad61acd8204aa6dcf024b8b041d3759aa585bf4e221abc39cb5d
  18. 0x6142ac48fda269c17791c79da99c2456ac6acfe98268f4d168a404fd6040c703
  19. 0x3315fd2757fdd435852cc277377234a3f3909a6d2a089d0e36f6d59aacfda910
Day root
0x7fa2cba1cf3d6b35630896f5fe1a650adb307ea2c376e80a5f2d9276b7cb5ab3
Chained
0x577ff89ba012beeff3197bcff7fa86752074bdf54205a24359cc437be2a952a4
Published
On Arc Testnet, block 70262758: 0x435bc1b9331471d72e1998f2e420983b5189d4da65ffbd6f27ef40daf5e1ea90

How to check it · This row as JSON