{"id":1731396,"recorded_at":"2026-11-01T02:47:36.597249Z","observed_at":"2026-11-01T02:47:36.597196Z","subject_kind":"endpoint","subject":"450d6722-2bb0-49fc-b76c-a092a2e1f236","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":19,"tools":[{"description":"Save a pickup or dropoff address. The reply's serviceZoneId is null when we don't pick up there. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"city":{"type":"string"},"label":{"description":"e.g. \"Home\"","maxLength":120,"type":"string"},"line1":{"description":"Street address, e.g. 123 Main St","type":"string"},"line2":{"description":"Apartment or unit","maxLength":200,"type":"string"},"note":{"description":"Address notes: a gate code, where the bags will be, where to leave the clean laundry","maxLength":500,"type":"string"},"postalCode":{"description":"ZIP code","type":"string"},"state":{"description":"e.g. UT","type":"string"}},"required":["line1","city","state","postalCode"],"type":"object"},"name":"add_address"},{"description":"A link where the customer adds their card on our site; booking needs one. You can't take card details yourself. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"name":"add_card"},{"description":"One pickup on a date (check it with quote_one_time_pickup first). Get the customer's go-ahead on the price first. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"addressId":{"description":"Pickup address","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"bags":{"anyOf":[{"const":1,"type":"number"},{"const":2,"type":"number"}],"description":"Bags each pickup is booked with: 1 or 2 (the 1-bag or 2-bag price)"},"date":{"description":"YYYY-MM-DD","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"discountCode":{"maxLength":30,"type":"string"},"dropoffAddressId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"express":{"description":"24-hour turnaround, for a fee","type":"boolean"}},"required":["addressId","date","bags"],"type":"object"},"name":"book_one_time_pickup"},{"description":"Cancel one upcoming pickup (a subscription carries on). Before 8:00 AM on the day, nothing is charged. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"pickupId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["pickupId"],"type":"object"},"name":"cancel_pickup"},{"description":"Moves a subscription to another option, address or number of bags: it starts again, with its pickups booked right away, each at the price for its date. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"addressId":{"description":"New pickup address","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"bags":{"anyOf":[{"const":1,"type":"number"},{"const":2,"type":"number"}],"description":"Bags each pickup is booked with: 1 or 2 (the 1-bag or 2-bag price)"},"dropoffAddressId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"serviceZoneScheduleId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"subscriptionId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["subscriptionId"],"type":"object"},"name":"change_subscription"},{"description":"Whether we pick up at an address, and if we do, its pickup options: each day and how often (every week or every other week), the first pickup, when it comes back, and the prices with any subscriber discount.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"city":{"type":"string"},"line1":{"description":"Street address, e.g. 123 Main St","type":"string"},"postalCode":{"description":"ZIP code","type":"string"},"state":{"description":"e.g. UT","type":"string"}},"required":["line1","city","state","postalCode"],"type":"object"},"name":"check_address"},{"description":"The customer's profile, addresses (with their ids), Laundry preferences, whether a card is saved, subscriptions and one-time bookings, and upcoming pickups. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"name":"get_account"},{"description":"The subscriptions the customer can start at one of their addresses: each option's serviceZoneScheduleId, day, how often, first pickup (nextDate), when it comes back (backDate), and prices with their discount. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"addressId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["addressId"],"type":"object"},"name":"get_pickup_options"},{"description":"The areas we pick up in, the current prices (in cents, before tax) and the subscriber discount, and the first day a pickup can be booked.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"name":"get_service_info"},{"description":"Leave an email for an address we don't pick up at yet; we email them when we do.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"city":{"type":"string"},"email":{"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"line1":{"description":"Street address, e.g. 123 Main St","type":"string"},"postalCode":{"description":"ZIP code","type":"string"},"state":{"description":"e.g. UT","type":"string"}},"required":["email","line1","city","state","postalCode"],"type":"object"},"name":"join_waitlist"},{"description":"The customer's last 20 finished pickups, newest first. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"name":"list_past_pickups"},{"description":"What a one-time pickup at one of their addresses would cost on a date, whether that date can be booked, and when it would come back. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"addressId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"date":{"description":"YYYY-MM-DD","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"}},"required":["addressId","date"],"type":"object"},"name":"quote_one_time_pickup"},{"description":"The detergent and scent every load is washed with, unless a subscription or pickup says otherwise. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"detergent":{"description":"free_clear is fragrance-free, and takes no scent","enum":["regular","athletic","free_clear"],"type":"string"},"scent":{"anyOf":[{"enum":["fresh_linen","island_breeze","amberwood","warm_vanilla"],"type":"string"},{"type":"null"}],"description":"null = unscented"}},"required":["detergent","scent"],"type":"object"},"name":"set_laundry_preferences"},{"description":"Regular pickups on an option from get_pickup_options. Get the customer's go-ahead on the day and price first. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"addressId":{"description":"Pickup address","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"bagCount":{"description":"Bags every pickup has, extra ones included (extras cost more)","maximum":20,"minimum":1,"type":"integer"},"bags":{"anyOf":[{"const":1,"type":"number"},{"const":2,"type":"number"}],"description":"Bags each pickup is booked with: 1 or 2 (the 1-bag or 2-bag price)"},"discountCode":{"maxLength":30,"type":"string"},"dropoffAddressId":{"description":"Where it comes back; the pickup address if left out","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"serviceZoneScheduleId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["addressId","serviceZoneScheduleId","bags"],"type":"object"},"name":"start_subscription"},{"description":"Bring back a pickup canceled by mistake, as it was (until 1:00 AM on its day). Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"pickupId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["pickupId"],"type":"object"},"name":"uncancel_pickup"},{"description":"Change an address's label or Address notes, or its street (only until a pickup has been booked there). Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"addressId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"city":{"type":"string"},"label":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}]},"line1":{"type":"string"},"line2":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}]},"note":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"description":"Address notes"},"postalCode":{"type":"string"},"state":{"type":"string"}},"required":["addressId"],"type":"object"},"name":"update_address"},{"description":"Change one upcoming pickup before we collect it: its bag count, Job notes, 24-hour turnaround, or detergent and scent. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"bagCount":{"description":"Bags every pickup has, extra ones included (extras cost more)","maximum":20,"minimum":1,"type":"integer"},"express":{"description":"24-hour turnaround, for a fee","type":"boolean"},"jobNotes":{"anyOf":[{"maxLength":280,"type":"string"},{"type":"null"}]},"pickupId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"wash":{"anyOf":[{"properties":{"detergent":{"description":"free_clear is fragrance-free, and takes no scent","enum":["regular","athletic","free_clear"],"type":"string"},"scent":{"anyOf":[{"enum":["fresh_linen","island_breeze","amberwood","warm_vanilla"],"type":"string"},{"type":"null"}],"description":"null = unscented"}},"required":["detergent","scent"],"type":"object"},{"type":"null"}],"description":"Detergent and scent; null goes back to their Laundry preferences"}},"required":["pickupId"],"type":"object"},"name":"update_pickup"},{"description":"Change the customer's name or phone number. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"name":{"maxLength":120,"minLength":1,"type":"string"},"phone":{"description":"A US phone number","maxLength":40,"type":"string"}},"type":"object"},"name":"update_profile"},{"description":"Pause (until a date, or until resumed), resume or cancel a subscription, or change its bag count, Job notes, or detergent and scent. Canceling also cancels its upcoming pickups. Needs the customer's Happy Hamper login.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"action":{"enum":["pause","resume","cancel"],"type":"string"},"bagCount":{"description":"Bags every pickup has, extra ones included (extras cost more)","maximum":20,"minimum":1,"type":"integer"},"cancelReason":{"maxLength":500,"type":"string"},"jobNotes":{"anyOf":[{"maxLength":280,"type":"string"},{"type":"null"}],"description":"Job notes for every pickup; blank clears them"},"pausedUntil":{"description":"With pause: pickups start again on this date (YYYY-MM-DD)","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"subscriptionId":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"wash":{"anyOf":[{"properties":{"detergent":{"description":"free_clear is fragrance-free, and takes no scent","enum":["regular","athletic","free_clear"],"type":"string"},"scent":{"anyOf":[{"enum":["fresh_linen","island_breeze","amberwood","warm_vanilla"],"type":"string"},{"type":"null"}],"description":"null = unscented"}},"required":["detergent","scent"],"type":"object"},{"type":"null"}],"description":"Detergent and scent; null goes back to their Laundry preferences"}},"required":["subscriptionId"],"type":"object"},"name":"update_subscription"}]},"body_sha256":"5a0040b2d1728daf60e42080ed404fd9686fe9a6fc35626000d2c04cfd9c93e4","prev_id":null,"leaf":"0x2072606f1b52ca048c11ace0a544857a418c4907a5c9b9ea9130ab16f0af7118","leaf_text":"{\"body\":\"5a0040b2d1728daf60e42080ed404fd9686fe9a6fc35626000d2c04cfd9c93e4\",\"id\":1731396,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793501256597196,\"prev\":null,\"subject\":\"450d6722-2bb0-49fc-b76c-a092a2e1f236\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-11-01","leaves":302406,"root":"0x7fa2cba1cf3d6b35630896f5fe1a650adb307ea2c376e80a5f2d9276b7cb5ab3","chained":"0x577ff89ba012beeff3197bcff7fa86752074bdf54205a24359cc437be2a952a4","anchor_chain":"eip155:5042002","anchor_tx":"0x435bc1b9331471d72e1998f2e420983b5189d4da65ffbd6f27ef40daf5e1ea90","anchor_block":70262758},"proof":["0x20729da0127f07005d3b0742669d09ac17c1228dd62bc060dbe3851cb531cfde","0x55e1751fbefc668f47a999d1e5a710ec5ba94eb1f7d1576f1fbff7121b937624","0x35d8b61e906927697b84ac04bd7af371923436531c4b5978300e11b971a44441","0x0f9800b65a2e3101d0892ee8c1088d348f74b30e8a1decd164ba1a8e9b3d6e81","0xd3d9f07035d650e0390ab1aa3f973caaa2314f8ed5b51f8f51a9391e5f8d693e","0x2b62277dbab968540e6b4c3e6904511dbc9a3aebb3f035048146d4b8f3f59b31","0x7d43f887cd4b42637e35a2650e58f83cb245b1174d40267d8418c10350420dca","0x512a97631ade888ec48e1d71155afbd94537d2625686efeb3303cd54687e44dc","0x314052056750178c24c94e3fe30fd99e4ae1ec1695b593a3a92d17f04d7fdd4b","0x59746ec7d0880b830553004bdb17be54951fdba6bc7ed354cf1d13e2f92464a2","0x68d978f56018035e7a20ac8a2580189f290769c9589bcede39c11c158d428cf7","0xe0c6e8e8fb900d9a6980f3ca49963e1c565ddfdca02db71905a206e8075acdf3","0xd962e1b3842b353598d79ca5fe0b84b02369d05fe8f6e6103d51bf4d4d1edce4","0x175afd1319b72670e83bf74eef6f87ab2173061f5bacdfe981a6b0789c963022","0xb9d6fdc8e6fb3f4feffa2c18849d74fc34d8708b574a778ae149241a90aaf20b","0xa856ad79e6f29a2b5516257f0d4817172cca11251fe2e7e8f3911b105fe2b622","0x02b3554752e71a19b12d7a76dbff436e85387226ceec89fdebdcdaf0122c2932","0x1973893697931b7512ae5dc1a3c92ef92f633ae3574dce9029a35b5e94d2d364","0x3315fd2757fdd435852cc277377234a3f3909a6d2a089d0e36f6d59aacfda910"]}