Fold Laundry
Book, track and manage laundry & dry-cleaning pickup in Los Angeles and San Francisco.
使うべきか
品質と安全性
検出事項(6)
- HIGH
- LOWupdate_notification_preferences 内
- INFObook_hotel_pickup 内
- INFObook_residential_pickup 内
- INFOtrack_order 内
- INFOget_semester_pass 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"fold-laundry": {
"url": "https://foldlaundry.com/mcp"
}
}
}リモートエンドポイント
https://foldlaundry.com/mcpstreamable-httpできること
ツール一覧
ツール(34)
🟢search_hotels(query)
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.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Hotel name or address. Minimum 2 characters. Example: \"Four Seasons Beverly Hills\" or \"Marriott San Francisco\"."
}
},
"required": [
"query"
]
}🔴book_hotel_pickup(hotelPlaceId, hotelName, guestFirstName, guestLastName, guestEmail, ...)
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 at booking — only after intake when the actual price is known. $39.99 order minimum applies. Return-time tiers: • same_day — guest must drop the bag before 9 AM. Standard same-day return (back by 7 PM), no surcharge. • express_same_day — drop between 9 AM and 12 PM. ⚡ Express same-day (back by 7 PM tonight). $30 flat surcharge. • next_day — drop any time. Standard next-day return (back by 7 PM tomorrow). No surcharge. Most common choice. • flexible — 48+ hours. No surcharge. Same-day options are not available after 12 PM local time (Los Angeles / San Francisco); requests after noon are next_day or later.
入力スキーマ
{
"type": "object",
"properties": {
"hotelPlaceId": {
"type": "string",
"description": "Google Place ID for the hotel, obtained from search_hotels. Required."
},
"hotelName": {
"type": "string",
"description": "Hotel display name (from search_hotels result). Required."
},
"guestFirstName": {
"type": "string",
"description": "Guest first name"
},
"guestLastName": {
"type": "string",
"description": "Guest last name"
},
"guestEmail": {
"type": "string",
"description": "Guest email (used for tracking + receipts)"
},
"guestPhone": {
"type": "string",
"description": "Guest phone in E.164 format (+1XXXXXXXXXX) or US 10-digit"
},
"roomNumber": {
"type": "string",
"description": "Guest room number at the hotel"
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"HANG_DRY"
]
},
"description": "What services to perform. Most guests pick WASH_AND_FOLD."
},
"returnPreference": {
"type": "string",
"enum": [
"same_day",
"express_same_day",
"next_day",
"flexible"
],
"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 7 PM tonight). next_day is the typical choice — drop any time, back by 7 PM tomorrow (no surcharge). flexible = 48hr+. Pick same_day or express_same_day only if local time clearly allows it."
},
"notes": {
"type": "string",
"description": "Optional special instructions (e.g. \"no fabric softener\", \"handle silk delicately\")."
},
"idempotencyKey": {
"type": "string",
"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."
}
},
"required": [
"hotelPlaceId",
"hotelName",
"guestFirstName",
"guestLastName",
"guestEmail",
"guestPhone",
"roomNumber",
"services",
"returnPreference"
]
}⚪join_waitlist(email, zipCode, firstName)
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.
入力スキーマ
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The person's email address."
},
"zipCode": {
"type": "string",
"description": "5-digit US ZIP code where they want service."
},
"firstName": {
"type": "string",
"description": "Optional first name."
}
},
"required": [
"email",
"zipCode"
]
}🟢check_service_zip(zipCode)
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.
入力スキーマ
{
"type": "object",
"properties": {
"zipCode": {
"type": "string",
"description": "5-digit US ZIP code, e.g. \"90210\" or \"94103\"."
}
},
"required": [
"zipCode"
]
}🔴book_residential_pickup(firstName, lastName, email, phone, line1, ...)
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).
入力スキーマ
{
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "Customer first name"
},
"lastName": {
"type": "string",
"description": "Customer last name"
},
"email": {
"type": "string",
"description": "Customer email (used for tracking + receipts)"
},
"phone": {
"type": "string",
"description": "Customer phone in E.164 format (+1XXXXXXXXXX) or US 10-digit"
},
"line1": {
"type": "string",
"description": "Street address line 1, e.g. \"123 Main St\""
},
"line2": {
"type": "string",
"description": "Apartment / suite / unit (optional)"
},
"city": {
"type": "string",
"description": "City, e.g. \"Los Angeles\""
},
"state": {
"type": "string",
"description": "US state code, e.g. \"CA\""
},
"zipCode": {
"type": "string",
"description": "5-digit ZIP. Must be in service area (use check_service_zip first)."
},
"deliveryNotes": {
"type": "string",
"description": "How to find / deliver to the address (gate code, doorman, leave at door, etc.)."
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"HANG_DRY"
]
},
"description": "What services to perform."
},
"pickupDate": {
"type": "string",
"description": "YYYY-MM-DD date for pickup. Must be today or in the future."
},
"pickupWindow": {
"type": "string",
"description": "Pickup time window label from check_service_zip.pickupWindows, e.g. \"9-11 AM\"."
},
"deliveryDate": {
"type": "string",
"description": "YYYY-MM-DD delivery date. Defaults to pickup date + 1 day if omitted."
},
"deliveryWindow": {
"type": "string",
"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."
},
"notes": {
"type": "string",
"description": "Optional special instructions about the laundry (e.g. \"no fabric softener\")."
},
"idempotencyKey": {
"type": "string",
"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."
}
},
"required": [
"firstName",
"lastName",
"email",
"phone",
"line1",
"city",
"state",
"zipCode",
"services",
"pickupDate",
"pickupWindow"
]
}🟢track_order(orderCode, email)
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 at booking; 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.
入力スキーマ
{
"type": "object",
"properties": {
"orderCode": {
"type": "string",
"description": "Order tracking code like FHL-RRKU92 (hotel) or FOLD-K9ZGQ (residential)"
},
"email": {
"type": "string",
"description": "Email used at booking. Not needed when the customer has connected their Fold account."
}
},
"required": [
"orderCode"
]
}🔴cancel_order(orderCode, email, reason)
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 at booking. Returns the new state and confirms the saved card was not charged.
入力スキーマ
{
"type": "object",
"properties": {
"orderCode": {
"type": "string",
"description": "Order code like FHL-RRKU92 or FOLD-K9ZGQ."
},
"email": {
"type": "string",
"description": "Email used at booking. Not needed when the customer has connected their Fold account."
},
"reason": {
"type": "string",
"description": "Optional reason — shown to ops, helps us improve."
}
},
"required": [
"orderCode"
]
}🔴enroll_in_club(email, recentOrderCode, plan, billingInterval, promoCode)
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 $199.99/yr), DC_CLUB (Dry Cleaning $12.99/mo or $129.99/yr), ALL_IN (Wash & Fold + Dry Cleaning $29.99/mo or $299.99/yr). promoCode WELCOME gives the first month free (it is typically sent to customers by SMS/email after their first delivery).
入力スキーマ
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Customer email — must match the recentOrderCode owner."
},
"recentOrderCode": {
"type": "string",
"description": "A recent Fold order code (FOLD-XXXXX) belonging to this customer — used as proof of identity."
},
"plan": {
"type": "string",
"enum": [
"WF_CLUB",
"DC_CLUB",
"ALL_IN"
],
"description": "Which Club plan to enroll in."
},
"billingInterval": {
"type": "string",
"enum": [
"MONTHLY",
"ANNUAL"
],
"description": "Billing cadence. ANNUAL saves ~2 months vs monthly."
},
"promoCode": {
"type": "string",
"description": "Optional Stripe promo code (e.g. WELCOME for first month free)."
}
},
"required": [
"recentOrderCode",
"plan",
"billingInterval"
]
}🔴reschedule_order(orderCode, email, newPickupDate, newPickupWindow, newDeliveryDate, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"orderCode": {
"type": "string",
"description": "Order code (FHL-XXXXXX or FOLD-XXXXX)."
},
"email": {
"type": "string",
"description": "Email used at booking. Not needed when the customer has connected their Fold account."
},
"newPickupDate": {
"type": "string",
"description": "YYYY-MM-DD — new pickup calendar date."
},
"newPickupWindow": {
"type": "string",
"description": "Pickup window label, e.g. \"9-11 AM\"."
},
"newDeliveryDate": {
"type": "string",
"description": "YYYY-MM-DD — new delivery calendar date."
},
"newDeliveryWindow": {
"type": "string",
"description": "Delivery window label from check_service_zip.deliveryWindows (evening only, e.g. \"6:30 PM – 9:30 PM\")."
}
},
"required": [
"orderCode"
]
}🟢list_my_orders(email)
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.
入力スキーマ
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Customer email. Only used when the customer has NOT connected their Fold account; then only a count is returned."
}
}
}🟢get_estimate(washFoldBags, washFoldPounds, dryCleaningItems, zipCode)
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 booking. Returns line items, subtotal, and total in cents and USD (no service 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.
入力スキーマ
{
"type": "object",
"properties": {
"washFoldBags": {
"type": "number",
"description": "Number of W&F bags. Each bag holds ~22 lb. Set to 0 if no W&F.",
"minimum": 0,
"maximum": 10
},
"washFoldPounds": {
"type": "number",
"description": "Alternative to washFoldBags — total pounds for à-la-carte PAYG W&F pricing ($2.65/lb). Use one or the other, not both.",
"minimum": 0,
"maximum": 200
},
"dryCleaningItems": {
"type": "array",
"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": {
"type": "object",
"properties": {
"garment": {
"type": "string",
"description": "Garment in plain words, e.g. 'suit', 'blouse', 'parka'."
},
"tier": {
"type": "string",
"enum": [
"T1",
"T2",
"T3",
"T4",
"T5",
"T6"
],
"description": "Deprecated — use garment."
},
"quantity": {
"type": "number",
"minimum": 1,
"maximum": 50
},
"hangDry": {
"type": "boolean",
"description": "Hang-dry instead of folding."
}
},
"required": [
"quantity"
]
}
},
"zipCode": {
"type": "string",
"description": "Optional ZIP for market-specific pricing (defaults to LA rates if omitted)."
}
}
}🔴apply_promo_code(orderCode, email, promoCode)
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.
入力スキーマ
{
"type": "object",
"properties": {
"orderCode": {
"type": "string",
"description": "Order code (FHL-XXXXXX or FOLD-XXXXX)."
},
"email": {
"type": "string",
"description": "Email used at booking. Not needed when the customer has connected their Fold account."
},
"promoCode": {
"type": "string",
"description": "Promo code (case-insensitive), e.g. \"WELCOME10\"."
}
},
"required": [
"orderCode",
"promoCode"
]
}🟢list_campuses
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.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🔴buy_semester_pass(campus, termId, frequency, studentFirstName, studentLastName, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"campus": {
"type": "string",
"enum": [
"UCLA",
"USC",
"UC_BERKELEY",
"UCSF"
],
"description": "Campus ID from list_campuses."
},
"termId": {
"type": "string",
"description": "Term ID from list_campuses (e.g. \"fall_2026\")."
},
"frequency": {
"type": "string",
"enum": [
"WEEKLY",
"BI_WEEKLY"
],
"description": "Pickup cadence. WEEKLY is the most common choice."
},
"studentFirstName": {
"type": "string",
"description": "Student first name"
},
"studentLastName": {
"type": "string",
"description": "Student last name"
},
"studentEmail": {
"type": "string",
"description": "Student email — .edu strongly preferred so the activation link reaches their school inbox"
},
"purchaserName": {
"type": "string",
"description": "Full name of the purchaser (parent/sponsor) — appears on the receipt"
},
"purchaserEmail": {
"type": "string",
"description": "Email of the purchaser — Stripe receipt + thank-you confirmation go here"
},
"isGift": {
"type": "boolean",
"description": "Default true. Set false only if the purchaser IS the student."
},
"giftMessage": {
"type": "string",
"description": "Optional short message displayed to the student in the activation email."
},
"idempotencyKey": {
"type": "string",
"description": "OPTIONAL — UUID for safe retry. Identical keys return the EXISTING pass + checkout URL instead of creating a duplicate. Recommended for production agents."
}
},
"required": [
"campus",
"termId",
"frequency",
"studentFirstName",
"studentLastName",
"studentEmail",
"purchaserName",
"purchaserEmail"
]
}🟢get_semester_pass(code)
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.
入力スキーマ
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Pass code (FSP-XXXXXX). Case-insensitive."
}
},
"required": [
"code"
]
}🔴activate_semester_pass(code, studentPhone, dormBuilding, dormRoom, studentPickupDay)
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.
入力スキーマ
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Pass code (FSP-XXXXXX)."
},
"studentPhone": {
"type": "string",
"description": "Student phone in E.164 format (+1XXXXXXXXXX) or US 10-digit."
},
"dormBuilding": {
"type": "string",
"description": "Dorm building name (e.g. \"Sproul Hall\", \"De Neve Plaza\")."
},
"dormRoom": {
"type": "string",
"description": "Room number (e.g. \"412B\")."
},
"studentPickupDay": {
"type": "integer",
"minimum": 0,
"maximum": 6,
"description": "Pickup day of week — 0=Sun, 1=Mon, …, 6=Sat. Must be one of the campus's availablePickupDays from list_campuses."
}
},
"required": [
"code",
"studentPhone",
"dormBuilding",
"dormRoom",
"studentPickupDay"
]
}🟢get_pricing
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.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_service_info
Returns service area, hours, contact info, and key policies. Use this when the user asks "where do you serve?" or for a general overview.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_host_program_info
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.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_referral_code(email)
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.
入力スキーマ
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Customer email used at Fold signup. Required."
}
},
"required": [
"email"
]
}🟢get_my_account
Requires the customer's connected Fold account. 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.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🔴book_my_pickup(pickupDate, pickupWindow, service, addressId, deliveryDate, ...)
Requires the customer's connected Fold account. Books 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 booked. 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 booking instead of creating a second one.
入力スキーマ
{
"type": "object",
"properties": {
"pickupDate": {
"type": "string",
"description": "YYYY-MM-DD, today or later (Pacific time)."
},
"pickupWindow": {
"type": "string",
"description": "Pickup window label, e.g. \"7:30 AM – 9:30 AM\"."
},
"service": {
"type": "string",
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"BOTH"
],
"description": "What to clean. Default WASH_AND_FOLD."
},
"addressId": {
"type": "string",
"description": "One of the customer's saved addressIds (from get_my_account). Default: their default address."
},
"deliveryDate": {
"type": "string",
"description": "YYYY-MM-DD. Default: the day after pickup."
},
"deliveryWindow": {
"type": "string",
"description": "Evening delivery window label. Default: the market's evening window."
},
"notes": {
"type": "string",
"description": "Notes for THIS order only (e.g. \"wine stain on white shirt\"). Standing preferences are applied automatically."
},
"sameAsLastOrder": {
"type": "boolean",
"description": "Reuse service, address and pickup window from the most recent order (\"same as last time\")."
},
"sameAsOrderCode": {
"type": "string",
"description": "Reuse service, address and pickup window from this specific past order (e.g. FOLD-24083)."
},
"idempotencyKey": {
"type": "string",
"description": "UUID recommended. Retrying with the same key returns the same booking."
}
}
}🔴schedule_turnovers(turnovers, confirm, idempotencyKey)
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 booked: the response previews every item and flags problems. With confirm=true each valid item is booked 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.
入力スキーマ
{
"type": "object",
"properties": {
"turnovers": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"properties": {
"addressId": {
"type": "string",
"description": "Saved address (property) id from get_my_account."
},
"checkoutDate": {
"type": "string",
"description": "YYYY-MM-DD guest checkout = pickup day."
},
"pickupWindow": {
"type": "string",
"description": "Pickup window label for that market."
},
"nextCheckInDate": {
"type": "string",
"description": "YYYY-MM-DD next guest check-in = return day. Default: day after checkout."
},
"service": {
"type": "string",
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"BOTH"
]
},
"notes": {
"type": "string",
"description": "For this pickup only, e.g. \"2 king sets + 6 bath towels\"."
}
},
"required": [
"addressId",
"checkoutDate"
]
}
},
"confirm": {
"type": "boolean",
"description": "false (default) = preview only; true = book every valid item."
},
"idempotencyKey": {
"type": "string",
"description": "UUID recommended. Retrying a confirmed call with the same key returns the same bookings."
}
},
"required": [
"turnovers"
]
}🟢get_business_account
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.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🔴update_care_preferences(detergent, waterTemp, specialInstructions)
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.
入力スキーマ
{
"type": "object",
"properties": {
"detergent": {
"type": "string",
"enum": [
"eco_unscented",
"tide"
]
},
"waterTemp": {
"type": "string",
"enum": [
"mixed",
"cold",
"warm",
"hot"
]
},
"specialInstructions": {
"type": "string",
"description": "e.g. \"hang-dry activewear, no fabric softener\". Empty string clears."
}
}
}🔴update_access_info(addressId, gateCode, howToGetIn, whereToLeaveBag)
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.
入力スキーマ
{
"type": "object",
"properties": {
"addressId": {
"type": "string"
},
"gateCode": {
"type": "string",
"description": "Max 40 chars."
},
"howToGetIn": {
"type": "string",
"description": "Max 200 chars."
},
"whereToLeaveBag": {
"type": "string",
"description": "Max 500 chars."
}
}
}🟡update_notification_preferences(orderTexts, marketingEmails)
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.
入力スキーマ
{
"type": "object",
"properties": {
"orderTexts": {
"type": "boolean",
"description": "Order-status text messages on (true) or off (false)."
},
"marketingEmails": {
"type": "boolean",
"description": "Offers and news by email on (true) or off (false)."
}
}
}🔴set_recurring_pickup(daysOfWeek, frequency, service)
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 books each pickup a few days ahead; the customer can skip or pause any time. This creates real recurring orders.
入力スキーマ
{
"type": "object",
"properties": {
"daysOfWeek": {
"type": "array",
"items": {
"type": "string",
"enum": [
"SUN",
"MON",
"TUE",
"WED",
"THU",
"FRI",
"SAT"
]
},
"description": "e.g. [\"TUE\"]"
},
"frequency": {
"type": "string",
"enum": [
"WEEKLY",
"BIWEEKLY",
"MONTHLY"
],
"description": "Default WEEKLY."
},
"service": {
"type": "string",
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"BOTH"
],
"description": "Default WASH_AND_FOLD."
}
},
"required": [
"daysOfWeek"
]
}🔴update_recurring_pickup(recurringId, action, pauseUntil)
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).
入力スキーマ
{
"type": "object",
"properties": {
"recurringId": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"pause",
"resume",
"cancel"
]
},
"pauseUntil": {
"type": "string",
"description": "YYYY-MM-DD (pause only). Omit to pause until resumed."
}
},
"required": [
"recurringId",
"action"
]
}🔴report_issue(orderCode, email, issueType, description, preferredResolution)
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 at booking. A Fold specialist follows up by text or email; re-cleans are free. Describe what happened in the customer's words.
入力スキーマ
{
"type": "object",
"properties": {
"orderCode": {
"type": "string"
},
"email": {
"type": "string",
"description": "Email used at booking. Not needed with a connected account."
},
"issueType": {
"type": "string",
"enum": [
"damaged_item",
"missing_item",
"stain_not_removed",
"wrong_item",
"late_delivery",
"needs_reclean",
"other"
]
},
"description": {
"type": "string",
"description": "10–2000 characters."
},
"preferredResolution": {
"type": "string",
"description": "Optional, e.g. \"re-clean\" or \"refund for the shirt\"."
}
},
"required": [
"orderCode",
"issueType",
"description"
]
}⚪rate_order(orderCode, stars, comment, email)
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 + booking email. 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).
入力スキーマ
{
"type": "object",
"properties": {
"orderCode": {
"type": "string"
},
"stars": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"comment": {
"type": "string",
"description": "Optional, up to 500 characters, in the customer's words."
},
"email": {
"type": "string",
"description": "Not needed with a connected account."
}
},
"required": [
"orderCode",
"stars"
]
}🟢get_receipt(orderCode, email)
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 + booking email.
入力スキーマ
{
"type": "object",
"properties": {
"orderCode": {
"type": "string"
},
"email": {
"type": "string",
"description": "Not needed with a connected account."
}
},
"required": [
"orderCode"
]
}🔴subscribe_order_updates(orderCode, email, webhookUrl)
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 + booking email. Max 3 per order.
入力スキーマ
{
"type": "object",
"properties": {
"orderCode": {
"type": "string"
},
"email": {
"type": "string",
"description": "Not needed with a connected account."
},
"webhookUrl": {
"type": "string",
"description": "Public https URL."
}
},
"required": [
"orderCode",
"webhookUrl"
]
}🔴book_for_hotel_guest(roomNumber, guestFirstName, guestLastName, guestEmail, guestPhone, ...)
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). Books 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. 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.
入力スキーマ
{
"type": "object",
"properties": {
"roomNumber": {
"type": "string"
},
"guestFirstName": {
"type": "string"
},
"guestLastName": {
"type": "string"
},
"guestEmail": {
"type": "string",
"description": "For order status updates and the receipt."
},
"guestPhone": {
"type": "string",
"description": "E.164 or US 10-digit, for pickup/delivery texts."
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"WASH_AND_FOLD",
"DRY_CLEANING",
"HANG_DRY"
]
}
},
"returnPreference": {
"type": "string",
"enum": [
"same_day",
"express_same_day",
"next_day",
"flexible"
]
},
"billTo": {
"type": "string",
"enum": [
"hotel",
"guest"
],
"description": "Default 'hotel' (on the hotel's monthly statement)."
},
"notes": {
"type": "string",
"description": "For this order only, e.g. \"2 dress shirts on hangers, rush for 6 PM event\"."
},
"hotelAccountName": {
"type": "string",
"description": "Only needed if this login belongs to more than one partner hotel."
},
"idempotencyKey": {
"type": "string",
"description": "UUID recommended. Retrying with the same key returns the same booking."
}
},
"required": [
"roomNumber",
"guestFirstName",
"guestLastName",
"guestEmail",
"guestPhone",
"services",
"returnPreference"
]
}コミュニティ
エビデンス