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

  1. 0xc77f3a32222f3d2021c83b1a4f15a9b4869cc7d7f8bd80fde7cd88380ded586c
  2. 0xa7bea011e6a31486561c874882f55b6b72e5a6db6b1e5c3122cac438ab32f67f
  3. 0x4010a280eb48b7c5c2d9fe54825cb36ca28e064e30b6d9596951a6dc260351fd
  4. 0x39a1583c6be5e6bf8ee9b89e684f0a1b3b1b2e9fc9622f6cd69584cbc2edba24
  5. 0xbbcb4d244681a1249752cdea32d368aaac9074367ce9344ddbaf373269c41d5e
  6. 0x3a532ed443b753d481a5287d1609d7ae1ed8f73099da8772984dbfd680987859
  7. 0xbfa9924db7e01cdff1920fb7d387d4930a2ebce598f6a39b912fc153e39bae83
  8. 0x574da29c95265eeaa68bb35a2e7b3b499b558a2d2400d021c856735bb4eb0fea
  9. 0x8749938965d5fa044b295e6976ca33f63f6cf2ab1744361eac55e6ca795da107
  10. 0xc6ae85d609e7d5890f74a3f5d3b2ebae263f9ec4025f03a326b914e508ffffd3
  11. 0xed975d3cf9a825217ed3ef7c3e4522f054cfe35b47c462678d64461a93581906
  12. 0x9d99c5dad23613921cdfabc849c2dd3c97729992eaa05c4dab5e86e83ed6d220
  13. 0x72e35aac89ebca631656c2b1aecbdc094807d9807f12c22a6ddf35cc1f5e21d6
  14. 0x5b20d8aab05225a3497eadcce89d2e2a586a510fb31334793d3f46f88f0157c5
  15. 0xe94ca5b798e9899ad611e57835af42266e20f53f44977e487d81365e30972beb
  16. 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON