addrbookFor publishers
← The evidence ledger

Evidence row 383424

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint b446cfc8-a0ae-49e0-819b-5f18daa5350d
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
cb539ca4168f63b0b7f3b588bab6fe03ffaefbbefad9dece6233dfab4f8f88ee
Leaf
0x803b159fac0c37a85f68f9f91d0b3bc30266f3411267d63ba01220362eb35edf

What was observed

{
  "count": 44,
  "tools": [
    {
      "description": "Adds an unpriced room under a property in the selected wedding. The property is named by the id of a place already in the wedding or by a name, which uses the place with that name or starts a new one; a room name is required. An id that names no place in the wedding returns a not-found result. The new room has no payment requirement. Results return the saved room and its place's id and name, and say whether the call created that place. A new place is ordered by name among places that have not been reordered, so it is listed first once the properties have been reordered. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "capacity": {
            "description": "How many it sleeps",
            "type": "number"
          },
          "check_in_date": {
            "description": "Check-in date (ISO format)",
            "type": "string"
          },
          "check_in_notes": {
            "description": "Check-in notes",
            "type": "string"
          },
          "check_in_time": {
            "description": "e.g. 3:00 PM",
            "type": "string"
          },
          "check_out_date": {
            "description": "Check-out date (ISO format)",
            "type": "string"
          },
          "check_out_time": {
            "description": "e.g. 11:00 AM",
            "type": "string"
          },
          "description": {
            "description": "Room description",
            "type": "string"
          },
          "property_id": {
            "description": "Identifier of a place already in the selected wedding, as an alternative to property_name.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "property_name": {
            "description": "The property this room belongs to, e.g. \"Castel Fragsburg\". A name no place has starts a new place. Either this or property_id.",
            "type": "string"
          },
          "room_name": {
            "description": "The room, e.g. \"Garden Suite\"",
            "type": "string"
          },
          "room_type": {
            "description": "e.g. \"Double\", \"Suite\"",
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "room_name"
        ],
        "type": "object"
      },
      "name": "add_my_accommodation"
    },
    {
      "description": "Creates an event in the selected wedding, with its name, type, date, time and optional venue, dress code and description. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "all_day": {
            "description": "True for an all-day item with a day and no time, such as a travel day or a free day. Send date as the day (2027-06-12) and end_time as its last day for one that runs several days; a time sent with it is dropped.",
            "type": "boolean"
          },
          "date": {
            "description": "Event start. A time with no offset, such as 2027-06-12T18:00, is the wedding's local time; one ending in Z or an offset is that exact instant.",
            "type": "string"
          },
          "description": {
            "description": "Event description",
            "type": "string"
          },
          "dress_code": {
            "description": "Dress code (e.g. Black Tie, Smart Casual)",
            "type": "string"
          },
          "end_time": {
            "description": "Event end time, read the same way as date.",
            "type": "string"
          },
          "name": {
            "description": "Event name",
            "type": "string"
          },
          "type": {
            "description": "Event type",
            "enum": [
              "welcome_dinner",
              "ceremony",
              "reception",
              "brunch",
              "rehearsal",
              "cocktail_hour",
              "after_party",
              "activity",
              "other"
            ],
            "type": "string"
          },
          "venue_address": {
            "description": "Venue address",
            "type": "string"
          },
          "venue_name": {
            "description": "Venue name for this event",
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "date"
        ],
        "type": "object"
      },
      "name": "add_my_event"
    },
    {
      "description": "Adds a guest to the selected wedding after explicit confirmation that the person is 13 or older, before collection of their name or contact details. First and last names are required; phone and email are optional. Results return the saved guest details. Age cannot be inferred from names or relationships. Guest notes and dietary details are unsupported. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "age_band": {
            "const": "13_or_older",
            "description": "Explicit confirmation that the guest is 13 or older, obtained before their name or contact details. Other age bands are ineligible.",
            "type": "string"
          },
          "email": {
            "description": "Optional guest email address.",
            "type": "string"
          },
          "first_name": {
            "description": "Guest first name",
            "type": "string"
          },
          "last_name": {
            "description": "Guest last name",
            "type": "string"
          },
          "phone": {
            "description": "Guest phone number, including + and its country code",
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "age_band"
        ],
        "type": "object"
      },
      "name": "add_my_guest"
    },
    {
      "description": "Creates the signed-in couple’s first wedding after explicit confirmation, using both partner names and an optional date, location and venue. Unknown date and location may be omitted. Existing weddings are returned without changes; accounts with multiple weddings are asked which to use. Creates a private preview with no membership purchase, site publication, partner invitations or marketing-email enrollment. Account sign-up happens in the secure browser connection, never through tool arguments.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "confirmed": {
            "description": "True only after the couple confirms creating their wedding with these details.",
            "type": "boolean"
          },
          "location": {
            "description": "Chosen wedding location. Omit when undecided.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "partner1_name": {
            "description": "First partner’s chosen name.",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "partner2_name": {
            "description": "Second partner’s chosen name.",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "venue_name": {
            "description": "Booked venue name. Omit if the couple has not booked a venue.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "wedding_date": {
            "description": "Wedding date as YYYY-MM-DD. Omit when undecided.",
            "type": "string"
          }
        },
        "required": [
          "partner1_name",
          "partner2_name",
          "confirmed"
        ],
        "type": "object"
      },
      "name": "create_my_wedding"
    },
    {
      "description": "Generates deduplicated wedding hashtag suggestions from partner names, surnames, year and place, ordered by a deterministic score. Suggestions are not registrations or availability checks.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "first_name_a": {
            "description": "One partner’s first name (e.g. \"Maya\")",
            "type": "string"
          },
          "first_name_b": {
            "description": "The other partner’s first name",
            "type": "string"
          },
          "last_name_a": {
            "description": "That partner’s last name, classics build on this surname",
            "type": "string"
          },
          "last_name_b": {
            "description": "The other partner’s last name, adds puns, blends, and couple variants",
            "type": "string"
          },
          "place": {
            "description": "Wedding place for location variants (e.g. \"Amalfi\")",
            "type": "string"
          },
          "year": {
            "description": "Wedding year for dated variants (e.g. 2027)",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "generate_wedding_hashtags"
    },
    {
      "description": "Estimates wedding bar quantities from guest count, event duration and drink mix, with bottles and cases rounded up. Quantities follow planning rules of thumb and are not a guarantee of consumption. This tool does not purchase alcohol.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "champagne_toast": {
            "description": "Whether the estimate includes one flute of champagne per guest for a toast. Default: true.",
            "type": "boolean"
          },
          "crowd": {
            "description": "How much the crowd drinks (default: average)",
            "enum": [
              "light",
              "average",
              "spirited"
            ],
            "type": "string"
          },
          "guest_count": {
            "description": "Total number of wedding guests",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "hours": {
            "description": "Hours of open bar (default: 5)",
            "maximum": 12,
            "minimum": 1,
            "type": "integer"
          },
          "mix": {
            "description": "Bar mix across wine, beer, and spirits (default: balanced)",
            "enum": [
              "wine-led",
              "balanced",
              "beer-led",
              "spirit-forward"
            ],
            "type": "string"
          },
          "non_drinkers": {
            "description": "Guests in guest_count who will not drink alcohol (default: 0). The bar and the toast are sized for the rest.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "get_alcohol_estimate"
    },
    {
      "description": "Estimates a whole destination wedding budget in USD by guest count, place and style tier, from Aisle’s modelled wedding cost index. Accepts a destination or a country; a destination without a row of its own is priced at its country and the result says so. Results include a line-by-line breakdown, a typical total and the range most weddings land in. Places the index does not cover return coverage information. Figures are modelled estimates, not supplier quotes or prices from booked weddings.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "country": {
            "description": "Country name, used when no destination slug is given. Priced from that country as a whole.",
            "type": "string"
          },
          "destination": {
            "description": "Place slug for a destination or a country in Aisle’s wedding cost index, such as amalfi-coast, tuscany, santorini, italy or mexico. A destination without a row of its own, such as tulum or bali, is priced at its country and the result says so.",
            "type": "string"
          },
          "guest_count": {
            "description": "Total number of wedding guests",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "style": {
            "description": "Wedding style tier (default: mid-range)",
            "enum": [
              "budget",
              "mid-range",
              "luxury"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_budget_estimate"
    },
    {
      "description": "Returns an illustrative low, typical and high cash wedding gift range in USD based on relationship, attending party, travel and wedding-party role. Results describe US etiquette conventions, not obligations. This tool does not transfer money.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "in_wedding_party": {
            "description": "Is the giver in the wedding party?",
            "type": "boolean"
          },
          "party": {
            "description": "Who attends: solo (default), couple, or family",
            "enum": [
              "solo",
              "couple",
              "family"
            ],
            "type": "string"
          },
          "relationship": {
            "description": "Relationship to the couple: coworker, acquaintance, friend, close-friend, family or immediate-family. An absent value returns the available options.",
            "type": "string"
          },
          "travel": {
            "description": "local (default), domestic-travel, or destination",
            "enum": [
              "local",
              "domestic-travel",
              "destination"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_cash_gift_suggestion"
    },
    {
      "description": "Builds a draft wedding-day schedule around the ceremony time, first-look preference and reception duration. Times use standard planning offsets rather than confirmed vendor, venue or sunset schedules.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "ceremony_time": {
            "description": "Ceremony start time, 24-hour (\"16:00\") or \"4pm\" / \"4:30 PM\" style; a bare hour with no am/pm is read as PM",
            "type": "string"
          },
          "first_look": {
            "description": "Whether the couple does a first look before the ceremony (default: true)",
            "type": "boolean"
          },
          "reception_hours": {
            "anyOf": [
              {
                "const": 4,
                "type": "number"
              },
              {
                "const": 5,
                "type": "number"
              },
              {
                "const": 6,
                "type": "number"
              }
            ],
            "description": "Length of cocktail hour + reception in hours: 4, 5, or 6 (default: 5)"
          }
        },
        "type": "object"
      },
      "name": "get_day_of_timeline"
    },
    {
      "description": "Returns a wedding dress code definition, clothing examples and invitation wording, or lists the available dress codes when none is specified. Results include the corresponding Aisle guide link.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "dress_code": {
            "description": "Optional dress code name, matched approximately. An absent value returns the available codes.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_dress_code_guide"
    },
    {
      "description": "Estimates round-trip flights and lodging in USD for guest groups departing from supported US metros. Stay length and guests per room can be set, and default to the destination’s typical stay in a private room per guest. Each priced group gives a typical figure and a low-to-high range. Partial totals include only priced groups; unpriced guests and unsupported origins are reported separately. The urlRestoresEstimate field states whether the returned web link restores the supplied groups. Estimates are not live fares or bookings.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "destination": {
            "description": "Destination slug. Supported: algarve, amalfi-coast, argentina, aruba, aspen, bahamas, bali, barbados, barcelona, bermuda, cabo, cancun, cape-town, capri, charleston, cinque-terre, colombia, costa-rica, cotswolds, dominican-republic, dubrovnik, fiji, hawaii, iceland, ireland, jamaica, japan, kenya, lake-como, maldives, mallorca, maui, montenegro, morocco, mykonos, napa-valley, new-zealand, paris, peru, provence, puerto-rico, punta-cana, ravello, santorini, savannah, scottish-highlands, sorrento, sri-lanka, st-lucia, swiss-alps, thailand, dolomites, tulum, turks-and-caicos, tuscany, us-virgin-islands, vietnam.",
            "type": "string"
          },
          "groups": {
            "description": "Guest groups by departure city",
            "items": {
              "properties": {
                "city": {
                  "description": "Guest departure city (e.g. \"New York\", \"London\")",
                  "type": "string"
                },
                "count": {
                  "description": "Number of guests from this city (default 1)",
                  "maximum": 9007199254740991,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "city"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "guests_per_room": {
            "description": "Guests sharing each room, 1 to 4. Defaults to 1, a private room per guest; 2 prices couples sharing.",
            "maximum": 4,
            "minimum": 1,
            "type": "integer"
          },
          "nights": {
            "description": "Nights in the room, 1 to 30. Defaults to the destination's typical stay, shown as typicalStayNights on each group.",
            "maximum": 30,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "get_guest_travel_estimate"
    },
    {
      "description": "Composes wedding invitation text for a hosting situation and formality, using supplied names, event details and optional reception wording. With no scenario, it lists available options. Wording follows etiquette conventions rather than legal requirements.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "child_relationship": {
            "description": "Relationship word for the hosts’ child. Defaults to child for divorced-parents, daughter for brides-parents and son for grooms-parents.",
            "enum": [
              "child",
              "daughter",
              "son"
            ],
            "type": "string"
          },
          "couple_a_name": {
            "description": "One partner’s full name",
            "type": "string"
          },
          "couple_b_name": {
            "description": "The other partner’s full name",
            "type": "string"
          },
          "date": {
            "description": "Date as it should read, e.g. \"Saturday, the twelfth of June\"",
            "type": "string"
          },
          "formality": {
            "description": "Register key: formal, modern, casual, or playful",
            "type": "string"
          },
          "host_names": {
            "description": "Host names for scenarios that include hosts. Two hosting parties are separated by \" / \".",
            "type": "string"
          },
          "hosts_child": {
            "description": "Partner whose parents are hosting. Defaults to couple_b for grooms-parents and couple_a for brides-parents or divorced-parents. Partner names never determine parentage.",
            "enum": [
              "couple_a",
              "couple_b"
            ],
            "type": "string"
          },
          "reception_note": {
            "description": "Optional final line, e.g. \"Reception to follow\"",
            "type": "string"
          },
          "scenario": {
            "description": "Hosting-situation key. An absent value returns the available scenarios and formality options.",
            "type": "string"
          },
          "time": {
            "description": "Time as it should read, e.g. \"at four o’clock in the afternoon\"",
            "type": "string"
          },
          "venue_location": {
            "description": "Venue town and country",
            "type": "string"
          },
          "venue_name": {
            "description": "Venue name",
            "type": "string"
          },
          "worship_space": {
            "description": "Formal register: is the ceremony in a house of worship?",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "name": "get_invitation_wording"
    },
    {
      "description": "Returns one identified room in the selected wedding, with its property, description, capacity, status, stay details and stored price and deposit overrides, plus its place's id, name, stored room-choice override and effective mode. Missing, removed and other-wedding rooms return the same not-found result. Guest assignments and occupant identities are excluded. Requires sign-in.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "accommodation_id": {
            "description": "Identifier of a room in the selected wedding.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "accommodation_id"
        ],
        "type": "object"
      },
      "name": "get_my_accommodation"
    },
    {
      "description": "Returns one identified event in the selected wedding, with its name, type, date, time, venue, dress code and description, the ids of other events whose times overlap it, and the dress-code guide entry its dress code matches. Missing and other-wedding events return the same not-found result. Requires sign-in.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "event_id": {
            "description": "Identifier of an event in the selected wedding.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "get_my_event"
    },
    {
      "description": "Returns one identified guest recorded as 13 or older in the selected wedding, with saved names, contact preferences (a \"defaulted\" list names any nobody chose), language, RSVP status and timestamps. Missing, other-wedding, under-13 and unconfirmed-age records return the same not-found result. Guest notes and dietary details are excluded. Requires sign-in.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "guest_id": {
            "description": "Identifier of a guest in the selected wedding.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "guest_id"
        ],
        "type": "object"
      },
      "name": "get_my_guest"
    },
    {
      "description": "Returns the signed-in account's selected wedding details, including partner names, date, location and venue, the city and country picked in settings, and the destination to pass to the budget and guest travel estimates for the wedding's own place. Access is limited to weddings the account can manage.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_my_wedding"
    },
    {
      "description": "Returns aggregate wedding statistics, including guest totals across all age bands, RSVP counts, event counts and registry progress. Responded counts attending and declined guests; outstanding counts pending and maybe guests; the response rate is responded as a percentage of all guests. Guest identities and individual event answers are excluded. Requires sign-in.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_my_wedding_stats"
    },
    {
      "description": "Returns a destination wedding packing list by climate and role, covering clothing, weather essentials, travel documents and practical supplies.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "climate": {
            "description": "Destination climate type (default: tropical)",
            "enum": [
              "tropical",
              "mediterranean",
              "temperate",
              "cold"
            ],
            "type": "string"
          },
          "role": {
            "description": "Your role at the wedding (default: guest)",
            "enum": [
              "bride",
              "groom",
              "guest"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_packing_list"
    },
    {
      "description": "Returns a destination wedding planning timeline organized by months before the wedding, from venue planning through day-of logistics.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "months_out": {
            "description": "Months until the wedding day (filters to show only relevant tasks)",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "get_planning_timeline"
    },
    {
      "description": "Returns a published wedding vendor by its slug, including services, descriptions, FAQs, ratings, photos and website links. The result states whether the description, services and FAQs were generated by Aisle from public information or supplied by the vendor, gives a price band only when the vendor supplied one, whether the vendor chose its category, and where the rating comes from.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "Unique slug identifying a published Aisle vendor.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_vendor_details"
    },
    {
      "description": "Returns a published wedding venue by its slug, including photos, highlights, travel information, planning estimates and available sourced facts with provenance, with each price also given as numbers, its currency and what it is per. Cost estimates are the ones the venue page shows, so a response gives one price for the venue and names any older estimate it left out. An estimators block names the destination the budget and guest travel estimators accept for the venue, the country when its area has no budget row, and covered destinations in the same country when travel has no figures for its area. When a slug is not a published venue, the result says whether it was never listed or was taken down, and suggests published venues: by name for a slug that does not exist, or the listing of the same name and the closest venues for one taken down. Estimates are not supplier quotes or live availability.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "Unique slug identifying a published Aisle venue.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_venue_details"
    },
    {
      "description": "Returns destination wedding planning milestones across eight phases, from eighteen months before the wedding through the day itself. An optional month limit narrows the milestones shown.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "months_out": {
            "description": "Months until the wedding, returns only phases due within this window",
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "get_wedding_checklist"
    },
    {
      "description": "Calculates percentages and amounts for dividing a wedding budget among the couple and their families under a selected model, with each amount also given as a whole-dollar USD number. Traditional assignments describe etiquette conventions, not obligations. This tool does not transfer money.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "model": {
            "description": "Contribution model to split by (default: traditional)",
            "enum": [
              "traditional",
              "even-split",
              "both-families",
              "couple"
            ],
            "type": "string"
          },
          "total_budget": {
            "description": "Total wedding budget in USD",
            "minimum": 1,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "get_who_pays_split"
    },
    {
      "description": "Lists the selected wedding's places, including empty places with ids, position, arrangement, active and archived room counts, whether each place can be removed, stored room-choice overrides and effective modes, plus room descriptions, capacity, status, stay details, stored price and deposit overrides in property order. Guest assignments and occupant identities are excluded. Requires sign-in.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_my_accommodations"
    },
    {
      "description": "Lists the selected wedding's events in date order with their dates, times, venues, dress codes and descriptions. Optional filters narrow results by event type or by a range of calendar days in the wedding's time zone; the total counts the events returned. Each event names the other events whose times overlap it. Requires sign-in.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "from": {
            "description": "First day to include, as YYYY-MM-DD in the wedding's time zone.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "to": {
            "description": "Last day to include, as YYYY-MM-DD in the wedding's time zone.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "type": {
            "anyOf": [
              {
                "enum": [
                  "welcome_dinner",
                  "ceremony",
                  "reception",
                  "brunch",
                  "rehearsal",
                  "cocktail_hour",
                  "after_party",
                  "activity",
                  "other"
                ],
                "type": "string"
              },
              {
                "items": {
                  "enum": [
                    "welcome_dinner",
                    "ceremony",
                    "reception",
                    "brunch",
                    "rehearsal",
                    "cocktail_hour",
                    "after_party",
                    "activity",
                    "other"
                  ],
                  "type": "string"
                },
                "minItems": 1,
                "type": "array"
              }
            ],
            "description": "Filter by event type, one type or a list such as [\"ceremony\", \"reception\"]."
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_my_events"
    },
    {
      "description": "Lists guests in the selected wedding who are recorded as 13 or older, with saved names, contact preferences (a \"defaulted\" list names any nobody chose), language, RSVP status and timestamps. Optional filters narrow results by RSVP status, language or name, and results can be ordered by name or by most recent update, RSVP reply or addition; per-status counts cover every listed guest before filtering. Guests under 13 or with unconfirmed ages are excluded, as are guest notes and dietary details. Requires sign-in.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "language": {
            "description": "Filter by a language name or code, such as Spanish or es. Empty string selects guests with no recorded language. Supported languages: English (en), Spanish (es), French (fr), Italian (it), German (de), Portuguese (pt), Polish (pl).",
            "type": "string"
          },
          "rsvp_status": {
            "anyOf": [
              {
                "enum": [
                  "pending",
                  "attending",
                  "declined",
                  "maybe"
                ],
                "type": "string"
              },
              {
                "items": {
                  "enum": [
                    "pending",
                    "attending",
                    "declined",
                    "maybe"
                  ],
                  "type": "string"
                },
                "minItems": 1,
                "type": "array"
              }
            ],
            "description": "Filter by RSVP status, one status or a list such as [\"pending\", \"maybe\"] for everyone yet to confirm."
          },
          "search": {
            "description": "Search guests by name. A first name, a last name, or the whole name all match, and accents are ignored, so Ines finds Inês.",
            "type": "string"
          },
          "sort": {
            "description": "Order of the guests. \"name\" (the default) is last name then first. \"recently_updated\", \"recently_responded\" and \"recently_added\" put the newest first, by updatedAt, rsvpRespondedAt and createdAt; guests with no time sort last, by name.",
            "enum": [
              "name",
              "recently_updated",
              "recently_responded",
              "recently_added"
            ],
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_my_guests"
    },
    {
      "description": "Lists the selected wedding's registry and honeymoon fund items, descriptions, goal amounts and received totals. Donor identities are excluded. This tool does not collect contributions or initiate payments. Requires sign-in.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_my_registry"
    },
    {
      "description": "Lists every wedding vendor category and its published listing count, optionally filtered by location. A category with no listings is included with a count of 0.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "location": {
            "description": "Location slug to filter vendor counts (e.g. \"austin-tx\")",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_vendor_categories"
    },
    {
      "description": "Lists countries with published wedding venues on Aisle and the number of venues in each country, broken down by venue type and by searchable price band, with a count of venues that have no price band.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "list_venue_countries"
    },
    {
      "description": "Places many guests in the selected wedding's rooms in one call, from a rule (reply, group, named guests, optionally limited to a place or rooms) or from a list of rooms and guests. Rooms are filled to their bed counts with each household kept together; held-back and full rooms are skipped, and a rule places only guests not yet in a room. Only guests recorded as 13 or older are placed. Results list who was placed in each room with its occupancy, and every skipped guest with a reason. By default it only plans and places no one; guests are placed when dry_run is false. At most 200 guests are placed per call. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "assignments": {
            "description": "Your own list of rooms and guests; can move guests already placed. Exclusive with fill.",
            "items": {
              "properties": {
                "guest_ids": {
                  "description": "Guests for that room.",
                  "items": {
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                    "type": "string"
                  },
                  "maxItems": 200,
                  "minItems": 1,
                  "type": "array"
                },
                "room_id": {
                  "description": "A room in the selected wedding.",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                  "type": "string"
                }
              },
              "required": [
                "room_id",
                "guest_ids"
              ],
              "type": "object"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          },
          "dry_run": {
            "description": "When true or omitted, reports the placements and skipped guests that would result and places no one. Set to false to place guests.",
            "type": "boolean"
          },
          "fill": {
            "description": "A rule the server packs into open rooms. Only guests not yet in a room are considered. Exclusive with assignments.",
            "properties": {
              "guest_ids": {
                "description": "Only these guests. Named guests are taken even when declined.",
                "items": {
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                  "type": "string"
                },
                "maxItems": 500,
                "minItems": 1,
                "type": "array"
              },
              "include_household": {
                "description": "Also place the rest of each match’s household. Default true.",
                "type": "boolean"
              },
              "property_id": {
                "description": "Only rooms at this place.",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                "type": "string"
              },
              "room_ids": {
                "description": "Only these rooms.",
                "items": {
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                  "type": "string"
                },
                "maxItems": 100,
                "minItems": 1,
                "type": "array"
              },
              "rsvp_status": {
                "description": "Only guests with this reply.",
                "enum": [
                  "pending",
                  "attending",
                  "declined",
                  "maybe"
                ],
                "type": "string"
              },
              "share_rooms": {
                "description": "Let different households share a room. Default false; set it only when the couple has said unrelated guests may share.",
                "type": "boolean"
              },
              "tag": {
                "description": "Only guests in this group, ignoring case.",
                "maxLength": 100,
                "minLength": 1,
                "type": "string"
              }
            },
            "type": "object"
          },
          "set_rsvp_status": {
            "description": "Also record this reply for every guest who lands in a room.",
            "enum": [
              "pending",
              "attending",
              "declined",
              "maybe"
            ],
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "place_my_guests_in_rooms"
    },
    {
      "description": "Removes an identified room and its guest assignments from the selected wedding, subject to payment and checkout safeguards. Uncharged checkouts without a payment method require confirmed cancellation. Completed, refunded or processing payments and active checkouts with a card prevent removal. Payment history is retained. The place is retained unless remove_empty_place is set and the place has no other rooms or retained history; otherwise empty places require a separate explicit removal. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "accommodation_id": {
            "description": "Identifier of the room to remove from the selected wedding.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "remove_empty_place": {
            "description": "When true, also removes the room’s place if it has no other rooms or retained room history. Defaults to false, which keeps the place.",
            "type": "boolean"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "accommodation_id"
        ],
        "type": "object"
      },
      "name": "remove_my_accommodation"
    },
    {
      "description": "Removes an identified event from the selected wedding and returns the removed event's id and name. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "event_id": {
            "description": "Identifier of the event to remove from the selected wedding.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "remove_my_event"
    },
    {
      "description": "Removes an identified guest already recorded as 13 or older from the selected wedding and returns the removed guest's id and name. Guests under 13 or with unconfirmed ages are ineligible. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "guest_id": {
            "description": "Identifier of the guest to remove from the selected wedding.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "guest_id"
        ],
        "type": "object"
      },
      "name": "remove_my_guest"
    },
    {
      "description": "Removes one or several identified empty places from the selected wedding and its property order, and returns the order that remains. The places list supplies their ids. With several, each place is removed or kept on its own, and the result lists which were removed and which kept, with the reason. A dry run reports the same without removing anything. This removes any recommendation or booking link on a removed place. Any rooms, including archived history, prevent removal. No rooms or payments are deleted. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "dry_run": {
            "description": "When true, reports which of the named places would be removed and which kept, with reasons, and removes nothing. Defaults to false.",
            "type": "boolean"
          },
          "place_id": {
            "description": "Identifier of the empty property to remove, from the selected wedding’s places list. Provide this or place_ids.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "place_ids": {
            "description": "Identifiers of several empty properties to remove, from the selected wedding’s places list. Only these are considered. Provide this or place_id.",
            "items": {
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "type": "array"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "remove_my_place"
    },
    {
      "description": "Sets the order of all properties on the selected wedding's guest site and accommodation screen. The complete list is required, as property ids from the places list or as names; name matching ignores case and surrounding spaces. Results and refusals give the order as ids with names. Partial or invalid lists are refused with the current order. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "place_ids": {
            "description": "Complete list of property ids from the selected wedding’s places list, in the intended display order. Provide this or place_names.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "place_names": {
            "description": "Complete list of property names in the selected wedding, in the intended display order. Provide this or place_ids.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "reorder_my_places"
    },
    {
      "description": "Searches Aisle wedding planning guides by keywords and returns up to 10 relevant excerpts with links to the full articles and the date each guide was last revised, at most 3 from any one guide unless a different per-guide limit is supplied.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "max_per_guide": {
            "description": "How many sections one guide may hold among the 10 results (default 3). 1 gives one entry per guide; 10 ranks sections with no per-guide limit.",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "query": {
            "description": "Search query keywords (e.g. \"legal requirements Italy\", \"budget tips\", \"what to wear\")",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "search_guides"
    },
    {
      "description": "Searches published wedding vendors by category, location and price range. Results include business details and listing links, with totals and pagination; summary omits descriptions and images. Each result states whether its content was generated by Aisle from public information or is managed by the vendor, where its rating comes from, whether its category was chosen by the vendor or assigned by Aisle’s search, and the domain of its website. A price band is reported, and matched by the price filter, only when the vendor supplied it. Results can be filtered by minimum Google rating and review count, and ordered by name, rating or review count. When a location holds fewer than five matching vendors, the result lists nearby locations within 150km that hold more, with counts and distances. A location search also gives each vendor’s distance from the middle of that location’s listings, since the listed city is the place searched rather than the vendor’s own town. Vendors in the same category and location that share a website or phone number are named on each other’s results as possible duplicates. This search does not check live availability or make bookings.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Vendor category filter, fuzzy-matched. One of: photographer, videographer, florist, caterer, dj, band, planner, coordinator, hair_makeup, cake_bakery, officiant, rentals_decor, stationery, transportation.",
            "type": "string"
          },
          "limit": {
            "description": "Results per page, from 1 to 50 (default 50).",
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "location": {
            "description": "Location slug filter (e.g. \"austin-tx\", \"london-uk\")",
            "type": "string"
          },
          "min_rating": {
            "description": "Only vendors with at least this Google rating, out of 5. Unrated vendors are left out.",
            "maximum": 5,
            "minimum": 0,
            "type": "number"
          },
          "min_reviews": {
            "description": "Only vendors with at least this many Google reviews.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "offset": {
            "description": "Number of results to skip; nextOffset from the previous page continues the result set.",
            "maximum": 100000,
            "minimum": 0,
            "type": "integer"
          },
          "price_range": {
            "description": "Price range filter: $ (budget) to $$$$ (luxury). Matches only listings whose vendor gave a band; generated listings have none.",
            "enum": [
              "$",
              "$$",
              "$$$",
              "$$$$"
            ],
            "type": "string"
          },
          "sort": {
            "description": "Result order: name (default), rating (highest first, ties broken by review count) or reviews (most reviewed first).",
            "enum": [
              "name",
              "rating",
              "reviews"
            ],
            "type": "string"
          },
          "summary": {
            "description": "Return compact comparison fields without descriptions and images (default false).",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "name": "search_vendors"
    },
    {
      "description": "Searches published destination wedding venues by country, venue type, guest capacity and price range, optionally leaving out unverified imported listings. Results include descriptions, photos and listing links, with totals and pagination; summary omits descriptions and images. Unknown capacity and unverified imported price bands are null. This search does not check live availability or make bookings.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "capacity_max": {
            "description": "Upper end of your guest range. Matches venues with a known capacityMin no larger than this; unknown capacity is excluded.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "capacity_min": {
            "description": "Lower end of your guest range. Matches venues with a known capacityMax at least this large; unknown capacity is excluded.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "country": {
            "description": "Country name (e.g. \"Italy\", \"Mexico\"). A two-letter ISO code (\"GR\") or the country's own name (\"Italia\", \"España\") also works; appliedFilters.country gives the English name matched.",
            "type": "string"
          },
          "exclude_unverified_imports": {
            "description": "Leave out unverified imported listings (descriptionStatus \"unverified_import\"), which carry no description and usually no capacity or price. Default false.",
            "type": "boolean"
          },
          "include_unknown_capacity": {
            "description": "With capacity_min or capacity_max, also keep venues whose capacity is unknown (null) instead of leaving them out. Most imported listings have no known capacity. Default false.",
            "type": "boolean"
          },
          "limit": {
            "description": "Results per page, from 1 to 50 (default 50).",
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "description": "Number of results to skip; nextOffset from the previous page continues the result set.",
            "maximum": 100000,
            "minimum": 0,
            "type": "integer"
          },
          "price_range": {
            "description": "Price range filter: $ (budget) to $$$$ (luxury)",
            "enum": [
              "$",
              "$$",
              "$$$",
              "$$$$"
            ],
            "type": "string"
          },
          "summary": {
            "description": "Return compact comparison fields without descriptions and images (default false).",
            "type": "boolean"
          },
          "type": {
            "description": "Venue type filter",
            "enum": [
              "villa",
              "hotel",
              "estate",
              "beach",
              "restaurant",
              "garden",
              "castle",
              "resort"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "search_venues"
    },
    {
      "description": "Sets room choice for one Hosted property in the selected wedding. The property is identified by id or an exact, unambiguous name; matching ignores case and surrounding spaces. A non-null mode selects couple assignment or guest choice. Null restores the legacy wedding fallback. Other properties retain their settings. Results return the property id, stored override and effective mode. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "property_id": {
            "description": "Identifier of a property in the selected wedding.",
            "type": "string"
          },
          "property_name": {
            "description": "Exact property name, ignoring case and surrounding spaces. Duplicate names require a property identifier.",
            "type": "string"
          },
          "room_selection_mode": {
            "anyOf": [
              {
                "enum": [
                  "couple_assigned",
                  "guest_choice"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Property room choice: couple_assigned means the couple assigns rooms; guest_choice means guests choose available rooms. Null clears the override and follows the legacy wedding setting. A non-null choice requires a Hosted property."
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "room_selection_mode"
        ],
        "type": "object"
      },
      "name": "set_my_property_room_selection"
    },
    {
      "description": "Changes the selected wedding's guest-site address within aisle.wedding, retaining redirects from its previous address. Addresses use 2 to 63 lowercase letters, numbers or hyphens and must be available and unreserved. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "address": {
            "description": "The new address, without the aisle.wedding/ in front of it, for example maya-and-theo",
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "address"
        ],
        "type": "object"
      },
      "name": "set_my_site_address"
    },
    {
      "description": "Updates supplied room details, pricing, payment requirements or deposit and balance schedules in the selected wedding. Omitted fields remain unchanged. Null clears the room type, description, stay dates, check-in and check-out times or check-in notes. Setting a price enables payment unless explicitly disabled; zero makes the room free. Results return the saved room details, identify saved changes with their previous values and describe whether payment is available. This tool does not initiate a charge. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "accommodation_id": {
            "description": "Identifier of the room to update in the selected wedding.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "balance_due_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD, the day payment is due. Beside a deposit it dates the rest; on a room with no deposit it dates the whole price. Without it the room still charges, but nothing chases it."
          },
          "capacity": {
            "description": "How many it sleeps",
            "type": "number"
          },
          "check_in_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Check-in date (ISO format), or null to clear it"
          },
          "check_in_notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Check-in notes, or null to clear it"
          },
          "check_in_time": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "e.g. 3:00 PM, or null to clear it"
          },
          "check_out_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Check-out date (ISO format), or null to clear it"
          },
          "check_out_time": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "e.g. 11:00 AM, or null to clear it"
          },
          "deposit_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "What guests pay up front, with the rest due by balance_due_date. Null clears the schedule so the room is paid whole; 0 takes this room off a schedule its property sets."
          },
          "deposit_due_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "YYYY-MM-DD, the day the deposit is due. Without it the guest site says the deposit is due now. A date after balance_due_date is dropped."
          },
          "deposit_unit": {
            "description": "How the deposit is stated: \"amount\" for a flat sum, \"percent\" for a share of whatever the room comes to",
            "enum": [
              "percent",
              "amount"
            ],
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Room description, or null to clear it"
          },
          "price_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "The rate, or null to clear it, or 0 to make it free"
          },
          "price_unit": {
            "description": "What the amount buys",
            "enum": [
              "room",
              "night",
              "party",
              "head",
              "open"
            ],
            "type": "string"
          },
          "requires_payment": {
            "description": "Whether guests pay for this room",
            "type": "boolean"
          },
          "room_name": {
            "description": "The room name",
            "type": "string"
          },
          "room_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "e.g. \"Double\", \"Suite\", or null to clear it"
          },
          "status": {
            "description": "unavailable takes the room out of the block",
            "enum": [
              "available",
              "unavailable"
            ],
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "accommodation_id"
        ],
        "type": "object"
      },
      "name": "update_my_accommodation"
    },
    {
      "description": "Updates supplied name, type, schedule, venue, dress code or description fields for an identified event in the selected wedding. Omitted fields and existing invitations and responses remain unchanged. Null clears the end time, venue, address, dress code or description. Results identify saved changes with their previous values. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "all_day": {
            "description": "True for an all-day item with a day and no time, such as a travel day or a free day. Send date as the day (2027-06-12) and end_time as its last day for one that runs several days; a time sent with it is dropped.",
            "type": "boolean"
          },
          "date": {
            "description": "Event start. A time with no offset, such as 2027-06-12T18:00, is the wedding's local time; one ending in Z or an offset is that exact instant.",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Event description, or null to clear it"
          },
          "dress_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Dress code (e.g. Black Tie, Smart Casual), or null to clear it"
          },
          "end_time": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Event end time, read the same way as date., or null to clear it"
          },
          "event_id": {
            "description": "Identifier of the event to update in the selected wedding.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "name": {
            "description": "Event name",
            "type": "string"
          },
          "type": {
            "description": "Event type",
            "enum": [
              "welcome_dinner",
              "ceremony",
              "reception",
              "brunch",
              "rehearsal",
              "cocktail_hour",
              "after_party",
              "activity",
              "other"
            ],
            "type": "string"
          },
          "venue_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Venue address, or null to clear it"
          },
          "venue_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Venue name for this event, or null to clear it"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "update_my_event"
    },
    {
      "description": "Updates supplied name, contact, RSVP, communication preferences or language for a guest already recorded as 13 or older in the selected wedding. The guest identifier is required. Results return the saved guest details, including cleared values. This tool cannot change age bands, guest notes or dietary details. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "broadcast_channel": {
            "description": "How this guest asked to be reached by messages sent to everyone: 'email' for email only, 'sms' for text only, 'either' for no preference.",
            "enum": [
              "either",
              "email",
              "sms"
            ],
            "type": "string"
          },
          "email": {
            "description": "Updated email address. Empty string clears it.",
            "type": "string"
          },
          "first_name": {
            "description": "Updated first name",
            "type": "string"
          },
          "guest_id": {
            "description": "Identifier of a guest in the selected wedding.",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "language": {
            "description": "Which language this guest reads. A language name (\"Spanish\") or a code (\"es\", \"pt\"); both store the same value. Decides the language their guest site opens in, and which version of a message they get. Empty string clears it, which is not the same as 'en': a cleared guest follows the site's own language and their browser. Records a fact; translates nothing. Supported languages: English (en), Spanish (es), French (fr), Italian (it), German (de), Portuguese (pt), Polish (pl).",
            "type": "string"
          },
          "last_name": {
            "description": "Updated last name",
            "type": "string"
          },
          "phone": {
            "description": "Updated phone number, including + and its country code. Empty string clears it.",
            "type": "string"
          },
          "preferred_transport": {
            "description": "Which wire a text to this guest takes. 'sms' reaches US and Canadian numbers only; 'whatsapp' reaches any number and is the answer for a guest abroad. The guest can also choose on the wedding site.",
            "enum": [
              "sms",
              "whatsapp"
            ],
            "type": "string"
          },
          "rsvp_status": {
            "description": "RSVP status",
            "enum": [
              "pending",
              "attending",
              "declined",
              "maybe"
            ],
            "type": "string"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "required": [
          "guest_id"
        ],
        "type": "object"
      },
      "name": "update_my_guest"
    },
    {
      "description": "Updates supplied wedding settings and can publish or unpublish the guest site. Omitted fields remain unchanged; nullable dates, location, venue and display name can be cleared. Partner names cannot be empty. Results identify saved changes with their previous values, every saved setting, the resulting couple display name and site address. Requires sign-in and an Aisle membership.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "couple_display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Custom display name for the couple. Null restores the combined partner names. A custom value remains unchanged when individual partner names change."
          },
          "is_published": {
            "description": "Guest-site visibility. True publishes the site at its address; false returns it to a private draft and hides it from guests, including those with an existing link.",
            "type": "boolean"
          },
          "location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Wedding location, or null to clear it"
          },
          "partner1_name": {
            "description": "First partner name. Cannot be emptied, only replaced",
            "type": "string"
          },
          "partner2_name": {
            "description": "Second partner name. Cannot be emptied, only replaced",
            "type": "string"
          },
          "room_selection_mode": {
            "description": "Legacy bulk room choice: sets the wedding fallback and clears every property override, even when the supplied value matches the current wedding setting. Individual Hosted properties have their own room-choice setting. couple_assigned means the couple assigns rooms; guest_choice means guests choose available rooms and can pay once payouts are connected.",
            "enum": [
              "couple_assigned",
              "guest_choice"
            ],
            "type": "string"
          },
          "venue_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Venue name, or null to clear it"
          },
          "wedding_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Wedding date as a calendar day, YYYY-MM-DD, with no time and no zone, or null to clear it"
          },
          "wedding_end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Wedding end date as a calendar day, YYYY-MM-DD, with no time and no zone, or null to clear it"
          },
          "wedding_id": {
            "description": "Identifier of a wedding the signed-in account can manage. Required when the account has multiple weddings.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "update_my_wedding"
    }
  ]
}

What the leaf hashes

{"body":"cb539ca4168f63b0b7f3b588bab6fe03ffaefbbefad9dece6233dfab4f8f88ee","id":383424,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793059933228846,"prev":null,"subject":"b446cfc8-a0ae-49e0-819b-5f18daa5350d","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. 0x803af32cce2a4d6b8bf145ab26cb35ccc629470c1907a12149b28ebd6a695b32
  2. 0x56a28ddd40764b43a0006a30b2c3ea0b8ec69b970946260c3722d947968d718f
  3. 0x8ff27ad22460ce97fef791a58467c3529380065411604ebe776ceebd6087dceb
  4. 0x718ae7d1f3ab0f5ef082a1a6b855f47b420020aa06ee03ab464d3cfd9412c360
  5. 0x9de2d33fcd24a61d78c898ac7435800cde56a9df27fe232474a9489161b8ed80
  6. 0xe3f384d90b842430395fa8cb934243b57ede1043999ef21dfa89b2e289a1bf83
  7. 0x0127a4bb382a0f36d7698a5a9cc980973566ddd751e7968c489028e21985e69e
  8. 0x2c9987efde8cad4a3276b5db6c2725215a312f65a48ae28f1581ea4bbb765fb8
  9. 0xafaaccb531e3dd7347e085e0c8ca7adb609fb76f6a0ed99280297e39451f4624
  10. 0x7b13b5e83796d07f41512bb0ea274d92109c1c9521583d468dbaec41a34a5730
  11. 0x77641bdba200eb4cdb0cd7e7ae2756494b9b23a0e9cc5f962e803c9224e7281e
  12. 0x233ead52b2b0fe0c87ddc3cb1aef399b68e9e9e33cc2fd50a2643345ab7455ad
  13. 0xe38e66e8bf48306ee42504c4df50c2052cc9230af02e2ae6ff66da20232bf797
  14. 0xfa0c8e8f1a1710ff197533b0a28208f2e168afe71abb7bb3416e09d1ac371d60
  15. 0x3c500ec3d3edf0c74b87a6ca8fcd77656bfbe03db3d478bd0c184d0c88839c6b
  16. 0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d
  17. 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON