← The evidence ledger
Evidence row 4149991
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 939ad3e9-3d91-49ac-8695-cc9ab28d8371
- Recorded
- Previous row
- #3937967
- Body SHA-256
- 10873062e67a8b27f5877e3dea398ade459c187306d3f7d022b714200ed79722
- Leaf
- 0x0372a05113408ff44d4b48ec9f21035d948dc1eb610c2a147454155f17633650
What was observed
{
"count": 5,
"tools": [
{
"description": "Use this when the guest wants to know whether a room, table or ticket is free before sending a request. Answers available, unavailable or unknown. Unknown means the venue keeps no calendar with ATAbooking: the guest can still send_lead and the venue answers. Don't use this to hold anything: nothing is reserved.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"check_in": {
"description": "Hotels: arrival date, YYYY-MM-DD",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"check_out": {
"$ref": "#/properties/check_in",
"description": "Hotels: departure date, YYYY-MM-DD"
},
"date": {
"$ref": "#/properties/check_in",
"description": "Restaurants and attractions: the day, YYYY-MM-DD"
},
"party_size": {
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"time": {
"description": "Restaurants and attractions: HH:MM",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"type": "string"
},
"unit_id": {
"description": "unit_id from get_venue",
"maxLength": 100,
"minLength": 1,
"pattern": "^[a-zA-Z0-9_-]+$",
"type": "string"
},
"venue_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[a-zA-Z0-9_-]+$",
"type": "string"
}
},
"required": [
"venue_id",
"unit_id",
"party_size"
],
"type": "object"
},
"name": "check_availability"
},
{
"description": "Use this when the guest asks whether the venue has received their request. Shows each channel's delivery state (portal, email, WhatsApp, webhook). It doesn't show whether the venue has accepted: the venue answers the guest directly. Needs the status_token send_lead returned.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"status_token": {
"description": "status_token from send_lead",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"status_token"
],
"type": "object"
},
"name": "get_lead_status"
},
{
"description": "Use this when the guest is interested in one venue: its rooms, tables or tickets, from-prices, opening times, policies and how it answers requests. Don't use this to find venues: call search_venues.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"venue_id": {
"description": "venue_id from search_venues",
"maxLength": 100,
"minLength": 1,
"pattern": "^[a-zA-Z0-9_-]+$",
"type": "string"
}
},
"required": [
"venue_id"
],
"type": "object"
},
"name": "get_venue"
},
{
"description": "Covers Koh Samui, Thailand. Use this when the guest wants a hotel, restaurant or attraction in a place, e.g. 'a quiet hotel near Bophut' or 'seafood in Chaweng'. Results are sorted by distance when you give `near`. Don't use this when you already have a venue_id: call get_venue. Results come in pages of 10: when more_results is true, call again with the same arguments and cursor: next_cursor. sponsored: true marks a paid placement (the venue pays for Premium); ATAbooking labels these 'Sponsored'.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cursor": {
"description": "next_cursor from the previous page of this same search",
"maxLength": 4096,
"minLength": 1,
"type": "string"
},
"near": {
"description": "A place name, e.g. 'Bophut' or 'Chaweng'. Sorts by distance from it. Leave everything out to browse all venues.",
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"party_size": {
"description": "Only venues with a room, table or ticket for this many people",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Words to match in the name, area, city or description",
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"radius_km": {
"description": "With near: only venues within this distance",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "number"
},
"region": {
"description": "Region slug: koh-samui",
"maxLength": 60,
"minLength": 1,
"pattern": "^[a-z0-9-]+$",
"type": "string"
},
"tags": {
"description": "Wishes, e.g. ['pool','beach','vegetarian']; matches rank first",
"items": {
"maxLength": 40,
"minLength": 1,
"type": "string"
},
"maxItems": 10,
"type": "array"
},
"type": {
"description": "hotel, restaurant or attraction; leave out for all",
"enum": [
"hotel",
"restaurant",
"attraction"
],
"type": "string"
}
},
"type": "object"
},
"name": "search_venues"
},
{
"description": "Use this when the guest has chosen a venue and wants it to get in touch: it forwards their request (dates, party, contact, message) to the venue at once. It is a request, not a booking: nothing is held or paid, and the venue contacts the guest directly. Check the details with the guest before calling. Give an idempotency_key and reuse it if you retry. Keep the status_token from the answer to call get_lead_status later. Don't use this to ask ATAbooking questions or to test.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"age_bands": {
"additionalProperties": {
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"description": "Attractions: people per age band, e.g. {\"adult\":2,\"child\":1}",
"propertyNames": {
"pattern": "^[a-z_]{1,20}$"
},
"type": "object"
},
"agent": {
"description": "The name of your app",
"maxLength": 120,
"type": "string"
},
"check_in": {
"description": "Hotels: arrival date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"check_out": {
"$ref": "#/properties/check_in",
"description": "Hotels: departure date"
},
"date": {
"$ref": "#/properties/check_in",
"description": "Restaurants and attractions: the day"
},
"guest_email": {
"format": "email",
"maxLength": 254,
"type": "string"
},
"guest_name": {
"maxLength": 120,
"minLength": 2,
"type": "string"
},
"guest_phone": {
"maxLength": 40,
"minLength": 6,
"pattern": "^\\+?[\\d\\s().-]+$",
"type": "string"
},
"idempotency_key": {
"description": "One per request (8-128 of A-Z a-z 0-9 _ -). Reuse it on retries to get the same request back.",
"maxLength": 128,
"minLength": 8,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"language": {
"description": "The guest's language, e.g. en, th, de",
"maxLength": 20,
"pattern": "^[A-Za-z-]+$",
"type": "string"
},
"message": {
"description": "Anything the guest wants the venue to know",
"maxLength": 1000,
"type": "string"
},
"party_size": {
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"time": {
"description": "Restaurants: the table time; attractions: the session time",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"type": "string"
},
"unit_id": {
"$ref": "#/properties/venue_id",
"description": "The room, table or ticket from get_venue, if the guest chose one"
},
"venue_id": {
"maxLength": 100,
"minLength": 1,
"pattern": "^[a-zA-Z0-9_-]+$",
"type": "string"
}
},
"required": [
"venue_id",
"party_size",
"guest_name"
],
"type": "object"
},
"name": "send_lead"
}
]
}What the leaf hashes
{"body":"10873062e67a8b27f5877e3dea398ade459c187306d3f7d022b714200ed79722","id":4149991,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1794136112829776,"prev":3937967,"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 (183509 rows).
- 0x0372c19b3598fe197565e4f6d26fa1470a7ac8a9bd6b18942122f97cfc302987
- 0x2cc8043b252cdba1722da347bbbae2c420b3c5418cbf43d565f57c4c94cb0d4e
- 0x6cbf2cf1c016f46cb0d60feeeba7d01c7943f6574daff9bf14e2c6d5f8b8ca78
- 0x3583500586f3feb364d241ef1c846bb0e73a823c37d276294372038078dae9e4
- 0x291ad70d9fdf06765f10f6e97735cc3432c8c0aeaac9b468fdea57859aa75bef
- 0x6930684b2037c83a5360e8b3c60ed5d5539b836d2138470f4dfe46218924e267
- 0x26d707ef5f2e44fbd94efc17001eaab3c4f918061e7b067772a3cf2548f715d9
- 0x7484238b638497b27ec6ea55a6b27b23a714daf9dde34ff667df63e090da264f
- 0x59c71a42931e947eb9fb4eeda26ccce6391bf4dcbf73b5400831440bdf40224d
- 0xc531d95d523d3fc9213622e03bb3cf97f26bf90cb60b6611920cfbd8cf72d436
- 0x9193b2d846169b81dd770ee09500609c458e6b90dd3b3cb711567dbabd041017
- 0x753d054b87c038e7f38ae82f0d341f1b1c878838851fae0f4c773426e6a22d23
- 0xd067d79ecd7c7829668798abfe20ee90cc78b2754404a309fb240cb01926b3f5
- 0xe86b160aac76f8a55f5eaaceacc872e0f31f8a247f334375e28508dfc8edf10a
- 0x5ab7d497fb526e0d8236640009404f28f3d406170d57f1fe2b2b64c714bc1efc
- 0x1962b987e02fbb17a8951e440b8c94ffca5debb84fd17d27b5f1c60361f21c36
- 0x2031bf8fabeeff87db710efedafb2b06df0de0b25ca93fb078786a0ebfe9bbc5
- 0x1f0ff2af9da38fef1beef5d2dbcf41f592dca17729b7ab9b9c0b6ef354dc3b83
- Day root
- 0xbf84ec37f88c5f23d2144bd7dbc1ea0f8edc93b3764a885a7164b7923ff3460b
- Chained
- 0x9fea188e4965f50de727e97c40e18d5ff2c2ddbfd4f1ae65e22ddd6f676bccfc
- Published
- On Arc Testnet, block 71451618: 0xb5273480942a54cd07f291b8319e59976f8d9d0583181c764eed04c9b3f7a022