← The evidence ledger
Evidence row 522874
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint ea098954-b688-4e38-af64-4c7ba546e88e
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 7e674e594605b47013139169142c8e40fe63142badb1107d893a9e897dfdf436
- Leaf
- 0xa6084bb090399138efdd384b85003b72d1aed087c32b708f604fd27a5ee76931
What was observed
{
"count": 34,
"tools": [
{
"description": "Activate a paid Semester Pass — the student supplies their phone (for pickup-day reminders), dorm building + room, and their CHOSEN PICKUP DAY (one of the campus's availablePickupDays from list_campuses). Only callable on a pass in PENDING_ACTIVATION status (i.e. payment has cleared). After activation, weekly pickup Orders auto-generate on the chosen day until the term ends. Activation is idempotent — re-calling on an already-ACTIVE pass is a no-op.",
"inputSchema": {
"properties": {
"code": {
"description": "Pass code (FSP-XXXXXX).",
"type": "string"
},
"dormBuilding": {
"description": "Dorm building name (e.g. \"Sproul Hall\", \"De Neve Plaza\").",
"type": "string"
},
"dormRoom": {
"description": "Room number (e.g. \"412B\").",
"type": "string"
},
"studentPhone": {
"description": "Student phone in E.164 format (+1XXXXXXXXXX) or US 10-digit.",
"type": "string"
},
"studentPickupDay": {
"description": "Pickup day of week — 0=Sun, 1=Mon, …, 6=Sat. Must be one of the campus's availablePickupDays from list_campuses.",
"maximum": 6,
"minimum": 0,
"type": "integer"
}
},
"required": [
"code",
"studentPhone",
"dormBuilding",
"dormRoom",
"studentPickupDay"
],
"type": "object"
},
"name": "activate_semester_pass"
},
{
"description": "Apply a promo / discount code to an existing order. Promo codes can only be applied to orders still in DRAFT or SCHEDULED state — before pickup. Requires order code, email, and the promo code (typically 4–12 alphanumeric, e.g. \"WELCOME10\" or \"REF-AB12\"). Returns the new total and the discount applied.",
"inputSchema": {
"properties": {
"email": {
"description": "Email used when scheduling. Not needed when the customer has connected their Fold account.",
"type": "string"
},
"orderCode": {
"description": "Order code (FHL-XXXXXX or FOLD-XXXXX).",
"type": "string"
},
"promoCode": {
"description": "Promo code (case-insensitive), e.g. \"WELCOME10\".",
"type": "string"
}
},
"required": [
"orderCode",
"promoCode"
],
"type": "object"
},
"name": "apply_promo_code"
},
{
"description": "Requires the connected Fold account of front-desk staff at a Fold partner hotel (the login must belong to the hotel's Fold business account). Schedules laundry pickup for a guest by room number at that hotel. billTo='hotel' (default) puts the order on the hotel's monthly Fold statement so the hotel can charge the guest's folio: no card link is sent and no card is charged. billTo='guest' sends the guest the usual card link instead and is priced at the hotel guest rates (see book_hotel_pickup); billTo='hotel' orders are priced on the hotel's Fold contract rates, with the same $49.99 hotel order minimum. Guest name, email and phone are still needed for status updates. returnPreference: same_day (bag at the desk before 9 AM), express_same_day (9 AM–noon, +$30), next_day, or flexible. This creates a real order.",
"inputSchema": {
"properties": {
"billTo": {
"description": "Default 'hotel' (on the hotel's monthly statement).",
"enum": [
"hotel",
"guest"
],
"type": "string"
},
"guestEmail": {
"description": "For order status updates and the receipt.",
"type": "string"
},
"guestFirstName": {
"type": "string"
},
"guestLastName": {
"type": "string"
},
"guestPhone": {
"description": "E.164 or US 10-digit, for pickup/delivery texts.",
"type": "string"
},
"hotelAccountName": {
"description": "Only needed if this login belongs to more than one partner hotel.",
"type": "string"
},
"idempotencyKey": {
"description": "UUID recommended. Retrying with the same key returns the same order.",
"type": "string"
},
"notes": {
"description": "For this order only, e.g. \"2 dress shirts on hangers, rush for 6 PM event\".",
"type": "string"
},
"returnPreference": {
"enum": [
"same_day",
"express_same_day",
"next_day",
"flexible"
],
"type": "string"
},
"roomNumber": {
"type": "string"
},
"services": {
"items": {
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"HANG_DRY"
],
"type": "string"
},
"type": "array"
}
},
"required": [
"roomNumber",
"guestFirstName",
"guestLastName",
"guestEmail",
"guestPhone",
"services",
"returnPreference"
],
"type": "object"
},
"name": "book_for_hotel_guest"
},
{
"description": "Schedule a laundry pickup for a hotel guest. Creates an order without requiring a Fold account. Returns an order tracking code (FHL-XXXXXX) and a Stripe payment-setup URL. The user must visit the Stripe URL to enter their card before pickup. The card is NOT charged when scheduling — only after intake when the actual price is known.\n\nHotel guest pricing: wash & fold is $49.99 flat for up to 15 lb, then $2.65/lb over 15 lb; dry cleaning is priced per garment. $49.99 hotel order minimum (covers wash & fold and dry cleaning — smaller orders are billed at $49.99). A flat $9.99 hotel service charge is added to every hotel order on top of that, and the $30 Express surcharge (when chosen) is also on top — neither counts toward the minimum.\n\nReturn-time tiers:\n • same_day — guest must drop the bag before 9 AM Pacific. Standard same-day return (back by 8 PM), no surcharge. Covers wash & fold AND dry cleaning.\n • express_same_day — drop between 9 AM and 12 PM. ⚡ Express same-day (back by 8 PM tonight). $30 flat surcharge.\n • next_day — drop any time. Standard next-day return (back by 8 PM tomorrow). No surcharge. Most common choice.\n • flexible — 48+ hours. No surcharge.\n\nSame-day options are not available after 12 PM Pacific time (Los Angeles / San Francisco); requests after noon are next_day or later. The server enforces these cut-offs on its own clock: a same_day request between 9 AM and noon is refused with a message to use express_same_day (+$30) — confirm the $30 with the guest before retrying — and any same-day request after noon is refused (use next_day). It never adds a surcharge or changes the day silently.",
"inputSchema": {
"properties": {
"guestEmail": {
"description": "Guest email (used for tracking + receipts)",
"type": "string"
},
"guestFirstName": {
"description": "Guest first name",
"type": "string"
},
"guestLastName": {
"description": "Guest last name",
"type": "string"
},
"guestPhone": {
"description": "Guest phone in E.164 format (+1XXXXXXXXXX) or US 10-digit",
"type": "string"
},
"hotelName": {
"description": "Hotel display name (from search_hotels result). Required.",
"type": "string"
},
"hotelPlaceId": {
"description": "Google Place ID for the hotel, obtained from search_hotels. Required.",
"type": "string"
},
"idempotencyKey": {
"description": "OPTIONAL — pass a unique identifier (UUID recommended) to make this call safe to retry. If we have already seen this key, we return the EXISTING order code instead of creating a duplicate. Highly recommended for production agents that may retry on network errors.",
"type": "string"
},
"notes": {
"description": "Optional special instructions (e.g. \"no fabric softener\", \"handle silk delicately\").",
"type": "string"
},
"returnPreference": {
"description": "When the guest wants the laundry back. same_day requires drop-off before 9 AM (no surcharge). express_same_day works for drop-off between 9 AM and 12 PM noon (+$30 surcharge, back by 8 PM tonight). next_day is the typical choice — drop any time, back by 8 PM tomorrow (no surcharge). flexible = 48hr+. Pick same_day or express_same_day only if local time clearly allows it.",
"enum": [
"same_day",
"express_same_day",
"next_day",
"flexible"
],
"type": "string"
},
"roomNumber": {
"description": "Guest room number at the hotel",
"type": "string"
},
"services": {
"description": "What services to perform. Most guests pick WASH_AND_FOLD.",
"items": {
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"HANG_DRY"
],
"type": "string"
},
"type": "array"
}
},
"required": [
"hotelPlaceId",
"hotelName",
"guestFirstName",
"guestLastName",
"guestEmail",
"guestPhone",
"roomNumber",
"services",
"returnPreference"
],
"type": "object"
},
"name": "book_hotel_pickup"
},
{
"description": "Requires the customer's connected Fold account. Schedules a pickup at one of their SAVED addresses using their saved card, gate code / access notes and laundry preferences — no payment link needed. Omit addressId to use their default address. pickupWindow must be one of the market's windows; if it is missing or invalid the response lists the valid windows and nothing is scheduled. Delivery is the next evening by default (Fold delivers in the evening only). sameAsLastOrder=true reuses the service, address and pickup window of the customer's most recent order (or of sameAsOrderCode, e.g. from a receipt); anything passed explicitly overrides it. This creates a real order. An optional idempotencyKey (UUID) makes retries return the same order instead of creating a second one.",
"inputSchema": {
"properties": {
"addressId": {
"description": "One of the customer's saved addressIds (from get_my_account). Default: their default address.",
"type": "string"
},
"deliveryDate": {
"description": "YYYY-MM-DD. Default: the day after pickup.",
"type": "string"
},
"deliveryWindow": {
"description": "Evening delivery window label. Default: the market's evening window.",
"type": "string"
},
"idempotencyKey": {
"description": "UUID recommended. Retrying with the same key returns the same order.",
"type": "string"
},
"notes": {
"description": "Notes for THIS order only (e.g. \"wine stain on white shirt\"). Standing preferences are applied automatically.",
"type": "string"
},
"pickupDate": {
"description": "YYYY-MM-DD, today or later (Pacific time).",
"type": "string"
},
"pickupWindow": {
"description": "Pickup window label, e.g. \"7:30 AM – 9:30 AM\".",
"type": "string"
},
"sameAsLastOrder": {
"description": "Reuse service, address and pickup window from the most recent order (\"same as last time\").",
"type": "boolean"
},
"sameAsOrderCode": {
"description": "Reuse service, address and pickup window from this specific past order (e.g. FOLD-24083).",
"type": "string"
},
"service": {
"description": "What to clean. Default WASH_AND_FOLD.",
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"BOTH"
],
"type": "string"
}
},
"type": "object"
},
"name": "book_my_pickup"
},
{
"description": "Schedule a laundry pickup at a residential address. For any non-hotel address in the service area, including Airbnb and other vacation rentals (the rental address is the pickup address). Creates a guest customer account (no password needed — they can claim it later by signing up with the same email). Returns an order code (FOLD-XXXXX) and a Stripe payment-setup URL. The card is NOT charged until after intake. $39.99 order minimum applies. Only ZIPs served by Fold are accepted (see check_service_zip).",
"inputSchema": {
"properties": {
"city": {
"description": "City, e.g. \"Los Angeles\"",
"type": "string"
},
"deliveryDate": {
"description": "YYYY-MM-DD delivery date. Defaults to pickup date + 1 day if omitted.",
"type": "string"
},
"deliveryNotes": {
"description": "How to find / deliver to the address (gate code, doorman, leave at door, etc.).",
"type": "string"
},
"deliveryWindow": {
"description": "Delivery time window label from check_service_zip.deliveryWindows. EVENING ONLY — Fold does not deliver in the morning. Defaults to the evening window if omitted.",
"type": "string"
},
"email": {
"description": "Customer email (used for tracking + receipts)",
"type": "string"
},
"firstName": {
"description": "Customer first name",
"type": "string"
},
"idempotencyKey": {
"description": "OPTIONAL — pass a unique identifier (UUID recommended) to make this call safe to retry. If we have already seen this key, we return the EXISTING order code instead of creating a duplicate. Highly recommended for production agents that may retry on network errors.",
"type": "string"
},
"lastName": {
"description": "Customer last name",
"type": "string"
},
"line1": {
"description": "Street address line 1, e.g. \"123 Main St\"",
"type": "string"
},
"line2": {
"description": "Apartment / suite / unit (optional)",
"type": "string"
},
"notes": {
"description": "Optional special instructions about the laundry (e.g. \"no fabric softener\").",
"type": "string"
},
"phone": {
"description": "Customer phone in E.164 format (+1XXXXXXXXXX) or US 10-digit",
"type": "string"
},
"pickupDate": {
"description": "YYYY-MM-DD date for pickup. Must be today or in the future.",
"type": "string"
},
"pickupWindow": {
"description": "Pickup time window label from check_service_zip.pickupWindows, e.g. \"9-11 AM\".",
"type": "string"
},
"services": {
"description": "What services to perform.",
"items": {
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"HANG_DRY"
],
"type": "string"
},
"type": "array"
},
"state": {
"description": "US state code, e.g. \"CA\"",
"type": "string"
},
"zipCode": {
"description": "5-digit ZIP. Must be in service area (use check_service_zip first).",
"type": "string"
}
},
"required": [
"firstName",
"lastName",
"email",
"phone",
"line1",
"city",
"state",
"zipCode",
"services",
"pickupDate",
"pickupWindow"
],
"type": "object"
},
"name": "book_residential_pickup"
},
{
"description": "Buy a Fold Semester Pass for a college student at UCLA, USC, UC Berkeley, or UCSF. The PURCHASER (often a parent) provides their own name + email for the receipt, plus the student's name + email. Returns a Stripe Checkout URL — the purchaser must visit it to complete payment. Once paid, the student gets a separate email with an activation link to fill in their dorm details. campusId, termId and pricing come from list_campuses. Pricing varies by campus and term; the response echoes the priceCents.",
"inputSchema": {
"properties": {
"campus": {
"description": "Campus ID from list_campuses.",
"enum": [
"UCLA",
"USC",
"UC_BERKELEY",
"UCSF"
],
"type": "string"
},
"frequency": {
"description": "Pickup cadence. WEEKLY is the most common choice.",
"enum": [
"WEEKLY",
"BI_WEEKLY"
],
"type": "string"
},
"giftMessage": {
"description": "Optional short message displayed to the student in the activation email.",
"type": "string"
},
"idempotencyKey": {
"description": "OPTIONAL — UUID for safe retry. Identical keys return the EXISTING pass + checkout URL instead of creating a duplicate. Recommended for production agents.",
"type": "string"
},
"isGift": {
"description": "Default true. Set false only if the purchaser IS the student.",
"type": "boolean"
},
"purchaserEmail": {
"description": "Email of the purchaser — Stripe receipt + thank-you confirmation go here",
"type": "string"
},
"purchaserName": {
"description": "Full name of the purchaser (parent/sponsor) — appears on the receipt",
"type": "string"
},
"studentEmail": {
"description": "Student email — .edu strongly preferred so the activation link reaches their school inbox",
"type": "string"
},
"studentFirstName": {
"description": "Student first name",
"type": "string"
},
"studentLastName": {
"description": "Student last name",
"type": "string"
},
"termId": {
"description": "Term ID from list_campuses (e.g. \"fall_2026\").",
"type": "string"
}
},
"required": [
"campus",
"termId",
"frequency",
"studentFirstName",
"studentLastName",
"studentEmail",
"purchaserName",
"purchaserEmail"
],
"type": "object"
},
"name": "buy_semester_pass"
},
{
"description": "Cancel a Fold order. Allowed only before the driver has picked up the bag — after pickup, items have to be returned unprocessed instead (the customer should call support). Requires the order code and the email used when scheduling. Returns the new state and confirms the saved card was not charged.",
"inputSchema": {
"properties": {
"email": {
"description": "Email used when scheduling. Not needed when the customer has connected their Fold account.",
"type": "string"
},
"orderCode": {
"description": "Order code like FHL-RRKU92 or FOLD-K9ZGQ.",
"type": "string"
},
"reason": {
"description": "Optional reason — shown to ops, helps us improve.",
"type": "string"
}
},
"required": [
"orderCode"
],
"type": "object"
},
"name": "cancel_order"
},
{
"description": "Check whether Fold serves a given ZIP code. Returns service availability, the market name (LA/SF), and a list of pickup window options that can be passed to book_residential_pickup. book_residential_pickup only accepts ZIPs this tool reports as served.",
"inputSchema": {
"properties": {
"zipCode": {
"description": "5-digit US ZIP code, e.g. \"90210\" or \"94103\". ZIP+4 and full addresses are accepted; the 5-digit ZIP is extracted.",
"type": "string"
}
},
"required": [
"zipCode"
],
"type": "object"
},
"name": "check_service_zip"
},
{
"description": "Enroll a Fold customer in Fold Club. Requires a recent order code + email for identity (same auth model as track_order). The customer MUST have a saved card on file — if not, we return an error pointing them to /app/payment. Three plans: WF_CLUB (Wash & Fold $19.99/mo or $219.89/yr), DC_CLUB (Dry Cleaning $12.99/mo or $142.89/yr), ALL_IN (Wash & Fold + Dry Cleaning $29.99/mo or $329.89/yr). Annual billing: 1 month free (pay for 11 months). The card is charged immediately and the plan renews automatically (every month, or every year for ANNUAL) at that price until cancelled; cancel any time in the app (Account → Fold Club) — the plan then runs to the end of the paid month/year with no refund for unused time. Before calling this tool, tell the customer the exact amount, that it renews automatically, and how to cancel, and get their explicit yes. promoCode WELCOME gives the first month free on MONTHLY billing only (it is typically sent to customers by SMS/email after their first delivery); promo codes are rejected on ANNUAL.",
"inputSchema": {
"properties": {
"billingInterval": {
"description": "Billing cadence. ANNUAL: 1 month free (pay for 11 months), charged once per year in advance, renews automatically each year.",
"enum": [
"MONTHLY",
"ANNUAL"
],
"type": "string"
},
"email": {
"description": "Customer email — must match the recentOrderCode owner.",
"type": "string"
},
"plan": {
"description": "Which Club plan to enroll in.",
"enum": [
"WF_CLUB",
"DC_CLUB",
"ALL_IN"
],
"type": "string"
},
"promoCode": {
"description": "Optional Stripe promo code (e.g. WELCOME for first month free). MONTHLY billing only.",
"type": "string"
},
"recentOrderCode": {
"description": "A recent Fold order code (FOLD-XXXXX) belonging to this customer — used as proof of identity.",
"type": "string"
}
},
"required": [
"recentOrderCode",
"plan",
"billingInterval"
],
"type": "object"
},
"name": "enroll_in_club"
},
{
"description": "Requires the connected Fold account, and only returns data when that login belongs to a Fold business (B2B) account such as a hotel, office or property-management company. For each such account: this month's deliveries and running total, the last three months' statement totals, payments, balance and due date, an open invoice payment link if one exists, and the scheduled delivery days. Read-only.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_business_account"
},
{
"description": "Calculate an itemized price estimate for what the user actually wants — bags or pounds of wash & fold plus dry-cleaning garments named in plain words (e.g. '2-piece suit', 'dress shirt', 'winter coat'). Answers 'how much will it cost' before scheduling. Returns line items, subtotal, and total in cents and USD (no hidden fees; orders under the $39.99 minimum are billed at the minimum). Note: the actual charge is calculated at intake when bags are weighed, but this estimate is accurate to within ~10% for typical orders. These are residential prices — hotel guest orders are priced differently (see get_pricing hotelGuestRates).",
"inputSchema": {
"properties": {
"dryCleaningItems": {
"description": "Dry-cleaning garments. Name each one in plain words; it is matched to Fold's garment list: Dress shirt, Blouse, Polo shirt, T-shirt, Tank top / cami, Scarf, Tie, Pants / slacks, Jeans, Skirt, Shorts, Sweater, Cardigan, Vest, Light jacket, Dress, Jumpsuit / romper, Blazer, Sport coat, Light coat / trench, Suit jacket (1 piece), 2-piece suit, 3-piece suit, Gown / formal dress, Tuxedo, Winter coat / parka, Leather jacket (light). Unrecognized names are returned in unmatchedItems instead of being priced.",
"items": {
"properties": {
"garment": {
"description": "Garment in plain words, e.g. 'suit', 'blouse', 'parka'.",
"type": "string"
},
"hangDry": {
"description": "Hang-dry instead of folding.",
"type": "boolean"
},
"quantity": {
"maximum": 50,
"minimum": 1,
"type": "number"
},
"tier": {
"description": "Deprecated — use garment.",
"enum": [
"T1",
"T2",
"T3",
"T4",
"T5",
"T6"
],
"type": "string"
}
},
"required": [
"quantity"
],
"type": "object"
},
"type": "array"
},
"washFoldBags": {
"description": "Number of W&F bags. Each bag holds ~22 lb. Set to 0 if no W&F.",
"maximum": 10,
"minimum": 0,
"type": "number"
},
"washFoldPounds": {
"description": "Alternative to washFoldBags — total pounds for à-la-carte PAYG W&F pricing ($2.65/lb). Use one or the other, not both.",
"maximum": 200,
"minimum": 0,
"type": "number"
},
"zipCode": {
"description": "Optional ZIP for market-specific pricing (defaults to LA rates if omitted).",
"type": "string"
}
},
"type": "object"
},
"name": "get_estimate"
},
{
"description": "Returns Fold's linen-turnover program for Airbnb / Vrbo / short-term rental hosts: how same-day turnovers work, pricing by host size (à la carte, Fold Club, portfolio volume rates), and how to get started. Use when the user hosts a short-term rental, manages STR properties, or asks about linen/turnover service between guests.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_host_program_info"
},
{
"description": "Only call this when the customer asks about their own Fold account, saved details or orders — it requires their connected Fold account and asks them to sign in. Prices, ZIP coverage, estimates and guest orders work without signing in (get_pricing, check_service_zip, get_estimate, book_residential_pickup). Returns their saved addresses (with gate code / access notes), whether a card is on file, Fold credit balance, Fold Club membership, laundry care preferences (detergent, water temperature, special instructions) and recurring pickups. book_my_pickup uses these saved details.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_my_account"
},
{
"description": "Returns current Fold pricing for all services. A quick rate-card overview; itemized totals for a specific order come from get_estimate. Prices are in USD.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_pricing"
},
{
"description": "Itemized receipt for an order: items, subtotal, fees, discounts, credits, tax and total, plus payment status. Before intake the items are not known yet and the total is an estimate. Works with the connected account, or order code + the email used when scheduling.",
"inputSchema": {
"properties": {
"email": {
"description": "Not needed with a connected account.",
"type": "string"
},
"orderCode": {
"type": "string"
}
},
"required": [
"orderCode"
],
"type": "object"
},
"name": "get_receipt"
},
{
"description": "Look up a customer's Fold referral code and share link. Use this when the customer wants to share Fold with a friend or check how many people they've successfully referred. Returns the code, a ready-to-paste link (foldlaundry.com/r/CODE), and stats. Both sides get $25 in credit after the friend completes their first pickup.",
"inputSchema": {
"properties": {
"email": {
"description": "Customer email used at Fold signup. Required.",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "get_referral_code"
},
{
"description": "Look up a Fold Semester Pass by code (FSP-XXXXXX). Returns current status, campus, term, dorm details (if claimed), and whether it's ready for pickups. Use this for \"is my pass active yet?\" or \"what's the status of FSP-XXXXXX?\" inquiries.",
"inputSchema": {
"properties": {
"code": {
"description": "Pass code (FSP-XXXXXX). Case-insensitive.",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "get_semester_pass"
},
{
"description": "Returns service area, hours, contact info, and key policies. Use this when the user asks \"where do you serve?\" or for a general overview.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_service_info"
},
{
"description": "Adds an email address to Fold's waitlist for a ZIP code Fold doesn't serve yet; Fold emails if service starts there. Only for unserved ZIPs (served ZIPs return an error saying Fold already serves them). Use the person's own email with their permission.",
"inputSchema": {
"properties": {
"email": {
"description": "The person's email address.",
"type": "string"
},
"firstName": {
"description": "Optional first name.",
"type": "string"
},
"zipCode": {
"description": "5-digit US ZIP code where they want service.",
"type": "string"
}
},
"required": [
"email",
"zipCode"
],
"type": "object"
},
"name": "join_waitlist"
},
{
"description": "List the campuses where Fold offers a Semester Pass (prepaid weekly laundry pickup for college students). Returns four campuses — UCLA, USC, UC Berkeley, UCSF — each with their available terms (e.g. \"Fall 2026\"), the weekly pickup day, and pricing for both weekly and bi-weekly cadence. buy_semester_pass takes a campusId and termId from this list. Prices are in USD.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_campuses"
},
{
"description": "List the customer's recent Fold orders (most recent first, max 10). If the customer has connected their Fold account to this assistant, returns each order's code, status, dates and address — no email needed. Without a connected account, only says how many recent orders exist (order codes are never revealed from an email alone, for privacy) — use the order code from the customer's confirmation text/email with track_order, or ask them to connect Fold.",
"inputSchema": {
"properties": {
"email": {
"description": "Customer email. Only used when the customer has NOT connected their Fold account; then only a count is returned.",
"type": "string"
}
},
"type": "object"
},
"name": "list_my_orders"
},
{
"description": "Records the customer's 1–5 star rating and optional comment for a delivered Fold order (rating again replaces the earlier one). Works with the connected account, or order code + the email used when scheduling. For a high rating the response includes Fold's public review link the customer may choose to use; for a low rating it notes that report_issue opens a support case (re-clean, damage, missing item).",
"inputSchema": {
"properties": {
"comment": {
"description": "Optional, up to 500 characters, in the customer's words.",
"type": "string"
},
"email": {
"description": "Not needed with a connected account.",
"type": "string"
},
"orderCode": {
"type": "string"
},
"stars": {
"maximum": 5,
"minimum": 1,
"type": "integer"
}
},
"required": [
"orderCode",
"stars"
],
"type": "object"
},
"name": "rate_order"
},
{
"description": "Open a support case for an order (damaged / missing / wrong item, stain not removed, late delivery, re-clean, other). Works with the connected Fold account, or with order code + the email used when scheduling. A Fold specialist follows up by text or email; re-cleans are free. Describe what happened in the customer's words.",
"inputSchema": {
"properties": {
"description": {
"description": "10–2000 characters.",
"type": "string"
},
"email": {
"description": "Email used when scheduling. Not needed with a connected account.",
"type": "string"
},
"issueType": {
"enum": [
"damaged_item",
"missing_item",
"stain_not_removed",
"wrong_item",
"late_delivery",
"needs_reclean",
"other"
],
"type": "string"
},
"orderCode": {
"type": "string"
},
"preferredResolution": {
"description": "Optional, e.g. \"re-clean\" or \"refund for the shirt\".",
"type": "string"
}
},
"required": [
"orderCode",
"issueType",
"description"
],
"type": "object"
},
"name": "report_issue"
},
{
"description": "Move the pickup date/window, delivery date/window, or both, on an existing order. Pickup can only be moved while still in SCHEDULED or PICKUP_ASSIGNED (i.e. driver has not started). Delivery can be moved any time before the delivery driver is en route. Requires order code + email. Pass at least one leg.",
"inputSchema": {
"properties": {
"email": {
"description": "Email used when scheduling. Not needed when the customer has connected their Fold account.",
"type": "string"
},
"newDeliveryDate": {
"description": "YYYY-MM-DD — new delivery calendar date.",
"type": "string"
},
"newDeliveryWindow": {
"description": "Delivery window label from check_service_zip.deliveryWindows (evening only, e.g. \"6:30 PM – 9:30 PM\").",
"type": "string"
},
"newPickupDate": {
"description": "YYYY-MM-DD — new pickup calendar date.",
"type": "string"
},
"newPickupWindow": {
"description": "Pickup window label, e.g. \"9-11 AM\".",
"type": "string"
},
"orderCode": {
"description": "Order code (FHL-XXXXXX or FOLD-XXXXX).",
"type": "string"
}
},
"required": [
"orderCode"
],
"type": "object"
},
"name": "reschedule_order"
},
{
"description": "Requires the connected Fold account. For short-term-rental hosts: schedules linen pickups for several guest checkouts at once across the host's saved addresses (up to 10). Each item: addressId (from get_my_account), checkoutDate (pickup day), pickupWindow, optional nextCheckInDate (return day; default the day after checkout) and notes. With confirm=false (default) nothing is scheduled: the response previews every item and flags problems. With confirm=true each valid item is scheduled as a real order on the card on file (same rules as book_my_pickup). Returns are in the evening; same-day turnovers rely on a second linen set at the property.",
"inputSchema": {
"properties": {
"confirm": {
"description": "false (default) = preview only; true = schedule every valid item.",
"type": "boolean"
},
"idempotencyKey": {
"description": "UUID recommended. Retrying a confirmed call with the same key returns the same orders.",
"type": "string"
},
"turnovers": {
"items": {
"properties": {
"addressId": {
"description": "Saved address (property) id from get_my_account.",
"type": "string"
},
"checkoutDate": {
"description": "YYYY-MM-DD guest checkout = pickup day.",
"type": "string"
},
"nextCheckInDate": {
"description": "YYYY-MM-DD next guest check-in = return day. Default: day after checkout.",
"type": "string"
},
"notes": {
"description": "For this pickup only, e.g. \"2 king sets + 6 bath towels\".",
"type": "string"
},
"pickupWindow": {
"description": "Pickup window label for that market.",
"type": "string"
},
"service": {
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"BOTH"
],
"type": "string"
}
},
"required": [
"addressId",
"checkoutDate"
],
"type": "object"
},
"maxItems": 10,
"type": "array"
}
},
"required": [
"turnovers"
],
"type": "object"
},
"name": "schedule_turnovers"
},
{
"description": "Search for a hotel by name within Fold service areas (Los Angeles and San Francisco). Returns up to 6 hotels matching the query with their place IDs (used in book_hotel_pickup) and addresses. book_hotel_pickup requires one of these hotelPlaceIds.",
"inputSchema": {
"properties": {
"query": {
"description": "Hotel name or address. Minimum 2 characters. Example: \"Four Seasons Beverly Hills\" or \"Marriott San Francisco\".",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_hotels"
},
{
"description": "Requires the connected Fold account (with a saved address and card). Creates a standing pickup — e.g. every Tuesday — at the customer's default address. Fold schedules each pickup a few days ahead; the customer can skip or pause any time. This creates real recurring orders.",
"inputSchema": {
"properties": {
"daysOfWeek": {
"description": "e.g. [\"TUE\"]",
"items": {
"enum": [
"SUN",
"MON",
"TUE",
"WED",
"THU",
"FRI",
"SAT"
],
"type": "string"
},
"type": "array"
},
"frequency": {
"description": "Default WEEKLY.",
"enum": [
"WEEKLY",
"BIWEEKLY",
"MONTHLY"
],
"type": "string"
},
"service": {
"description": "Default WASH_AND_FOLD.",
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"BOTH"
],
"type": "string"
}
},
"required": [
"daysOfWeek"
],
"type": "object"
},
"name": "set_recurring_pickup"
},
{
"description": "For agents that can receive webhooks: registers an https URL that Fold POSTs to on every status change of one order (picked up, washing, out for delivery, delivered…). Payload: {event:\"order.status_changed\", orderCode, state, statusLabel, statusDescription, occurredAt}. Header Fold-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"t.body\" with the returned secret>. Works with the connected account or order code + the email used when scheduling. Max 3 per order.",
"inputSchema": {
"properties": {
"email": {
"description": "Not needed with a connected account.",
"type": "string"
},
"orderCode": {
"type": "string"
},
"webhookUrl": {
"description": "Public https URL.",
"type": "string"
}
},
"required": [
"orderCode",
"webhookUrl"
],
"type": "object"
},
"name": "subscribe_order_updates"
},
{
"description": "Check the status of any Fold order — works for both hotel-guest pickups and residential pickups. Needs the order code (FOLD-XXXXXX or FHL-XXXXXX) plus the email used when scheduling; with a connected Fold account the email is not needed. Returns current state, a milestone timeline, scheduled dates, items if itemized, and proof-of-delivery photo URL if delivered.",
"inputSchema": {
"properties": {
"email": {
"description": "Email used when scheduling. Not needed when the customer has connected their Fold account.",
"type": "string"
},
"orderCode": {
"description": "Order tracking code like FHL-RRKU92 (hotel) or FOLD-K9ZGQ (residential). Optional when the customer has connected their Fold account: omit it to get their most recent order.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "track_order"
},
{
"description": "Requires the connected Fold account. Saves how a driver gets in at one of the customer's saved addresses: gateCode (gate / building / lockbox code), howToGetIn (buzzer, doorman, side entrance), whereToLeaveBag. Drivers see these on every pickup and delivery there. Omit addressId for the default address. Pass an empty string to clear a field.",
"inputSchema": {
"properties": {
"addressId": {
"type": "string"
},
"gateCode": {
"description": "Max 40 chars.",
"type": "string"
},
"howToGetIn": {
"description": "Max 200 chars.",
"type": "string"
},
"whereToLeaveBag": {
"description": "Max 500 chars.",
"type": "string"
}
},
"type": "object"
},
"name": "update_access_info"
},
{
"description": "Requires the connected Fold account. Saves standing laundry preferences applied to every future order: detergent (eco_unscented = unscented eco, free & clear, the default; or tide), waterTemp (mixed = standard: colors cold, whites warm, the default; cold; warm; hot), and specialInstructions (free text the facility sees on every order, max 500 chars; pass an empty string to clear). Only the fields you pass change.",
"inputSchema": {
"properties": {
"detergent": {
"enum": [
"eco_unscented",
"tide"
],
"type": "string"
},
"specialInstructions": {
"description": "e.g. \"hang-dry activewear, no fabric softener\". Empty string clears.",
"type": "string"
},
"waterTemp": {
"enum": [
"mixed",
"cold",
"warm",
"hot"
],
"type": "string"
}
},
"type": "object"
},
"name": "update_care_preferences"
},
{
"description": "Requires the connected Fold account. Turns Fold's order-status text messages on or off (orderTexts: picked up, out for delivery, delivered; when off, the same updates arrive by email) and marketing emails on or off (marketingEmails). Only the fields passed change. Returns the resulting settings.",
"inputSchema": {
"properties": {
"marketingEmails": {
"description": "Offers and news by email on (true) or off (false).",
"type": "boolean"
},
"orderTexts": {
"description": "Order-status text messages on (true) or off (false).",
"type": "boolean"
}
},
"type": "object"
},
"name": "update_notification_preferences"
},
{
"description": "Requires the connected Fold account. action: pause (optionally until a YYYY-MM-DD date), resume, or cancel a recurring pickup (recurringId from get_my_account).",
"inputSchema": {
"properties": {
"action": {
"enum": [
"pause",
"resume",
"cancel"
],
"type": "string"
},
"pauseUntil": {
"description": "YYYY-MM-DD (pause only). Omit to pause until resumed.",
"type": "string"
},
"recurringId": {
"type": "string"
}
},
"required": [
"recurringId",
"action"
],
"type": "object"
},
"name": "update_recurring_pickup"
}
]
}What the leaf hashes
{"body":"7e674e594605b47013139169142c8e40fe63142badb1107d893a9e897dfdf436","id":522874,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793124014531707,"prev":null,"subject":"ea098954-b688-4e38-af64-4c7ba546e88e","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).
- 0xa608433e79cf8fb70a70a84771b361e56eef45d4f00529b7a93d1a92f1ff9c15
- 0xf78bfc9e14e0fa0729bcaf25f09e43789a34a486b9299449ba027d145fa809b9
- 0x5ad9720660cdef55da4174735050d1bf17da63492ac39639091f9e9203346fd3
- 0x050e5a66cb9b99431e8609757121032962a7c929abe531da9501af6b36524975
- 0x2db591a4cdb0a5ed60f74a834c634b1741dcec8dd1e04c6b7deee7b932a172db
- 0x66632df16bf7edb28d31a05ca06526deabc2d13264eb6d79afe4cc43941ad461
- 0x086bde5de86acefed117fca8d45e49223140f0f87b4ab27809127adb4a7cbeab
- 0xa71b1cf191339143037cf60aa38b62c5597a4e36b7e6b1fc22d1d3d225a710f0
- 0x29c25246b5016a3b27ff3c79af1611fa5516f0d6c95c2ca6e9900bb7c1deba1d
- 0x99eecac57123d9ae94240e923031e14d88325c55b0ede1b3cfa92914ef9e1293
- 0x034cc06723268ab88a0185a8a88debb3a8fa6b85f9f28c3208420f7ab19160f8
- 0x98f564dcc2f0d0fd67cbc3a17211687e12a4becc9b9c47ef78c02ff7431b734a
- 0xb37156a04839055daed26674da38864f8dae598cab9742c6fb3e74eb3178f2d4
- 0x0644f7e2a4b5bf9b66f185cc3fbb766d456ad94490183852f4c6db5855114cc5
- 0xa3fff4662cd48659f5bafd0612931759a90e53a7b4209ed8f26f6594a07bb547
- 0x64c405a28e8819716221eb2529fe4ce277ab08025e17e685cbd5ece75ceb75c7
- 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
- 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
- 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
- Day root
- 0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
- Chained
- 0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
- Published
- On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4