← The evidence ledger
Evidence row 304457
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint c1b9516c-8bba-4827-bf5c-89dde67ffb3e
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- ce2f41ec0ee64dbf9e253afb4da0dab717ef4c107eb56920d6fdeb86daa6927a
- Leaf
- 0xc77f2dfdf467bad22ddb12e345aa3d12248f97d9ebe0eaeec69b91cc989231f0
What was observed
{
"count": 6,
"tools": [
{
"description": "Create a secure Stripe-hosted payment link for event tickets. Returns a checkout URL — give it to the human to complete payment themselves; each ticket is then emailed with its QR code and its own link, which opens on any phone and can be saved to WhatsApp. Get ticket_type_id values from get_event. Always confirm the exact tickets and total with the human before calling this.",
"inputSchema": {
"properties": {
"buyer_email": {
"description": "Email to deliver tickets to (required — ask the human)",
"type": "string"
},
"buyer_name": {
"description": "Buyer's name (optional)",
"type": "string"
},
"event_slug": {
"description": "Event slug",
"type": "string"
},
"items": {
"description": "Ticket selections",
"items": {
"properties": {
"quantity": {
"description": "1-20",
"type": "number"
},
"ticket_type_id": {
"description": "Ticket type id from get_event",
"type": "string"
}
},
"required": [
"ticket_type_id",
"quantity"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"event_slug",
"items",
"buyer_email"
],
"type": "object"
},
"name": "create_ticket_checkout"
},
{
"description": "Full details for one event by slug: description, venue, date/time, and available ticket types with prices and remaining stock. Use the slug from search_events.",
"inputSchema": {
"properties": {
"slug": {
"description": "Event slug from search_events",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_event"
},
{
"description": "Full details for one place by slug, including its most recent published reviews if any exist. listing_type distinguishes a curated entry from an unreviewed directory listing (see search_places) — recent_reviews is often an empty array, which means no reviews yet, not a low-quality place. Use the slug from search_places.",
"inputSchema": {
"properties": {
"slug": {
"description": "Place slug from search_places",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_place"
},
{
"description": "Discover valid category values for search_places. Pifini's places directory uses Overture Maps' taxonomy — over 1,000 specific values like caribbean_restaurant, church_cathedral, landmark_and_historical_building — rather than broad buckets, so guessing a category string will usually miss. Call this first with a rough query (e.g. 'coffee' or 'beach') to find the exact value, then pass it to search_places' category parameter.",
"inputSchema": {
"properties": {
"country": {
"description": "ISO-3166 alpha-2 country code — only return categories present in that country",
"type": "string"
},
"limit": {
"description": "Max results, 1-100 (default 30)",
"type": "number"
},
"query": {
"description": "Rough term to match against category values, e.g. 'coffee', 'beach'",
"type": "string"
}
},
"type": "object"
},
"name": "list_categories"
},
{
"description": "Search upcoming events (festivals, carnivals, concerts, food + cultural events) across the Caribbean, Latin America, and beyond. Returns event names, dates, locations, category, price (when known), and page URLs. Strongest coverage: Barbados, Trinidad, Jamaica, Bahamas, Mexico.",
"inputSchema": {
"properties": {
"category": {
"description": "Filter by event category",
"enum": [
"music",
"arts",
"culture",
"festival",
"sports",
"food",
"business",
"nightlife"
],
"type": "string"
},
"city": {
"description": "City name filter",
"type": "string"
},
"country": {
"description": "ISO-3166 alpha-2 country code, e.g. BB, TT, JM",
"type": "string"
},
"entry_model": {
"description": "Filter by how someone gets in: 'free' = confirmed free entry, 'ticketed' = Pifini sells tickets, 'external' = paid but sold elsewhere, 'mixed' = umbrella event with both free and paid components, 'unknown' = not yet confirmed either way.",
"enum": [
"free",
"ticketed",
"external",
"mixed",
"unknown"
],
"type": "string"
},
"include_past": {
"description": "Include past events (default false)",
"type": "boolean"
},
"limit": {
"description": "Max results, 1-50 (default 10)",
"type": "number"
},
"near_lat": {
"description": "Latitude to search near (pair with near_lng)",
"type": "number"
},
"near_lng": {
"description": "Longitude to search near (pair with near_lat)",
"type": "number"
},
"offset": {
"description": "Skip this many matching results (for paging past the limit)",
"type": "number"
},
"query": {
"description": "Free-text search over title and description",
"type": "string"
},
"radius_km": {
"description": "Search radius in km around near_lat/near_lng (default 25, max 500)",
"type": "number"
},
"starts_after": {
"description": "Earliest start. A bare date ('2026-08-01') matches the event's LOCAL calendar date in its own timezone and is inclusive — this is what you want for 'what's on this weekend'. A full ISO timestamp ('2026-08-01T18:00:00Z') is compared as an exact UTC instant instead.",
"type": "string"
},
"starts_before": {
"description": "Latest start, same rules as starts_after. A bare date is inclusive of that whole local day, so starts_after='2026-08-13' with starts_before='2026-08-13' returns everything happening on the 13th where it happens.",
"type": "string"
}
},
"type": "object"
},
"name": "search_events"
},
{
"description": "Search Pifini's places directory across the Caribbean and Latin America — restaurants, bars, beaches, attractions, venues, hotels, tour operators, professionals, and services. Every result carries listing_type: 'curated' is a small, editorially reviewed set of flagship entries; 'directory' is the much larger set sourced from open map data (name, category, location, contact info) that has no reviews yet — say so rather than implying a recommendation the data doesn't back up. Category is a specific Overture taxonomy value (e.g. caribbean_restaurant, church_cathedral), not a broad bucket — call list_categories first if unsure of the exact value. Results marked is_sponsored are paid placements — disclose that when recommending.",
"inputSchema": {
"properties": {
"category": {
"description": "Filter by exact category value (e.g. 'caribbean_restaurant'). Use list_categories to discover valid values — there are 1,000+, not a small fixed set.",
"type": "string"
},
"city": {
"description": "City name filter",
"type": "string"
},
"country": {
"description": "ISO-3166 alpha-2 country code",
"type": "string"
},
"entity_type": {
"description": "Filter by broad type of place",
"enum": [
"venue",
"place",
"attraction",
"business",
"professional",
"service",
"city",
"country",
"experience",
"government",
"region",
"transport"
],
"type": "string"
},
"limit": {
"description": "Max results, 1-50 (default 10)",
"type": "number"
},
"near_lat": {
"description": "Latitude to search near (pair with near_lng)",
"type": "number"
},
"near_lng": {
"description": "Longitude to search near (pair with near_lat)",
"type": "number"
},
"offset": {
"description": "Skip this many matching results (for paging past the limit)",
"type": "number"
},
"query": {
"description": "Free-text search over name and summary",
"type": "string"
},
"radius_km": {
"description": "Search radius in km around near_lat/near_lng (default 25, max 500)",
"type": "number"
}
},
"type": "object"
},
"name": "search_places"
}
]
}What the leaf hashes
{"body":"ce2f41ec0ee64dbf9e253afb4da0dab717ef4c107eb56920d6fdeb86daa6927a","id":304457,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793055908416884,"prev":null,"subject":"c1b9516c-8bba-4827-bf5c-89dde67ffb3e","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0xc77f3a32222f3d2021c83b1a4f15a9b4869cc7d7f8bd80fde7cd88380ded586c
- 0xa7bea011e6a31486561c874882f55b6b72e5a6db6b1e5c3122cac438ab32f67f
- 0x4010a280eb48b7c5c2d9fe54825cb36ca28e064e30b6d9596951a6dc260351fd
- 0x39a1583c6be5e6bf8ee9b89e684f0a1b3b1b2e9fc9622f6cd69584cbc2edba24
- 0xbbcb4d244681a1249752cdea32d368aaac9074367ce9344ddbaf373269c41d5e
- 0x3a532ed443b753d481a5287d1609d7ae1ed8f73099da8772984dbfd680987859
- 0xbfa9924db7e01cdff1920fb7d387d4930a2ebce598f6a39b912fc153e39bae83
- 0x574da29c95265eeaa68bb35a2e7b3b499b558a2d2400d021c856735bb4eb0fea
- 0x8749938965d5fa044b295e6976ca33f63f6cf2ab1744361eac55e6ca795da107
- 0xc6ae85d609e7d5890f74a3f5d3b2ebae263f9ec4025f03a326b914e508ffffd3
- 0xed975d3cf9a825217ed3ef7c3e4522f054cfe35b47c462678d64461a93581906
- 0x9d99c5dad23613921cdfabc849c2dd3c97729992eaa05c4dab5e86e83ed6d220
- 0x72e35aac89ebca631656c2b1aecbdc094807d9807f12c22a6ddf35cc1f5e21d6
- 0x5b20d8aab05225a3497eadcce89d2e2a586a510fb31334793d3f46f88f0157c5
- 0xe94ca5b798e9899ad611e57835af42266e20f53f44977e487d81365e30972beb
- 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
- 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
- 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae