Use this skill BEFORE calling `explore_rates` or `create_alert` for a Walt Disney World resort (Polynesian, Grand Floridian, Contemporary, Wilderness Lodge, BoardWalk, Beach Club, Yacht Club, Caribbean Beach, Port Orleans Riverside/French Quarter, Pop Century, Art of Animation, All-Star Movies/Music/Sports, Saratoga Springs, Old Key West, Copper Creek, Riviera, Coronado Springs, Fort Wilderness, Swan, Dolphin, Swan Reserve, Animal Kingdom Lodge Jambo/Kidani) or any time the conversation is about a WDW trip in Florida — Magic Kingdom, EPCOT, Hollywood Studios, Animal Kingdom Park, Orlando. The skill contains the REQUIRED follow-up questionnaire (package vs room-only; if package: ticketDays 2-10, ticket type, dining plan, Memory Maker, Travel Protection), resort tier guidance (Value/Moderate/Deluxe/Deluxe Villa), and the post-quote suggestions. Do NOT guess package fields — use this skill to get the right questions.
Layer this on top of room-genie-core. Use the MCP tools from that skill; this skill adds WDW-specific domain knowledge for picking a resort and quoting full packages.
| Tier | Examples | Typical nightly rate | Who it's for |
|---|---|---|---|
| Value | All-Star (Movies/Music/Sports), Pop Century, Art of Animation | $150–250 | Budget trips, larger families |
| Moderate | Port Orleans (Riverside/French Quarter), Caribbean Beach, Coronado Springs | $250–400 | Balance of price and theming |
| Deluxe | Contemporary, Grand Floridian, Polynesian, BoardWalk, Beach Club, Yacht Club, Wilderness Lodge, Animal Kingdom Lodge (Jambo/Kidani) | $500–900+ | Short walks/monorails to parks, best theming |
| Deluxe Villa (DVC) | Bay Lake Tower, Grand Floridian Villas, Polynesian Villas, BoardWalk Villas, Beach Club Villas, Old Key West, Saratoga Springs, Copper Creek, Riviera, Animal Kingdom Villas |
| $500–1500+ |
| Kitchens, more space, longer stays |
| Other | Swan, Dolphin, Swan Reserve (Marriott, Disney perks) | varies | Bonvoy points, often cheaper than Deluxe |
ticketType for explore_rates / create_alert)| Value | What it is |
|---|---|
no-option | Standard one-park-per-day |
park-hopper | Hop between parks same day |
water-parks-sport | Park + Blizzard Beach/Typhoon Lagoon/sports admissions |
plus | Park Hopper + Water Parks |
genie-plus | Includes Lightning Lane (formerly Genie+) |
park-hopper-genie-plus | Park Hopper + Lightning Lane |
Default to no-option if the user hasn't expressed a preference; ask before assuming hopper.
diningPlan)none — no plan (most flexible)quick_service — counter-service only, cheapest planstandard — includes one table-service meal per night (the classic plan)deluxe — three table-service credits per night (foodies)Don't push a plan unless the user asks. When they do ask "is the dining plan worth it?", steer them to run explore_rates twice (once with none, once with the plan they're considering) and compare total.
explore_rates)Before you call explore_rates in room-only or package mode, confirm EVERY field below. Ask in a conversational bundle — one or two messages, not a form — but do NOT guess or default silently.
The year of the check-in date determines which dining plans Disney sells, so dates come first:
package, ask the rest — in this specific shape:Number of park days (integer 2–10). WDW tickets start at 2 days.
Ticket type — present ONLY these four labels to the user, not the raw enum values:
no-option)park-hopper)water-parks-sport)plus)Don't surface genie-plus / park-hopper-genie-plus as options in conversation — they exist in the API but aren't part of the standard consumer-facing pick list.
Dining plan — the offered set depends on the check-in year:
none)quick_service)standard)none)quick_service)standard)deluxe)NEVER offer Deluxe for a 2026 check-in — Disney doesn't sell it that year. If the user requests Deluxe for a 2026 trip, tell them it only becomes available for 2027+ arrivals and fall back to Disney Dining Plan.
Memory Maker? — ask as a separate yes/no question. $185 flat, unlimited PhotoPass photos. Default no.
Travel Protection? — ask as a separate yes/no question. $99 per adult, children free. Default no, but mention for trips over ~$3k total.
Do NOT bundle Memory Maker and Travel Protection into the same question — they're distinct products with different pricing, and users decide on them separately.
If the user asks for pricing without giving check-in dates, get dates (and party) first. Saying "I'll need dates and party first to know which dining plans are offered that year" is fine. Once dates land, come back with the year-appropriate questionnaire.
Once you have all the answers, walk through the full-package workflow below.
When the user says "quote me a full package at [resort]":
list_resorts({ query }) → confirm resortId (disambiguate if multiple matches — Polynesian Resort vs Polynesian Villas).list_room_types({ resortId }) → show the user the choices, ask which view/bedding they want (or track all).explore_rates({ mode: "package", ... }) — this can take 2–4 minutes; warn the user.create_alert with price_drop if the user wants to be notified when the package drops below that price.list_resorts may return each separately — ask the user which one.park-hopper-genie-plus) is often cheaper than buying them separately.explore_rates, so no special flag is needed.explore_rates uses a different cart flow under the hood and may be slower.Tailor follow-ups to the resort tier and package shape. Two to three, never more.
After a Deluxe / Deluxe Villa quote:
After a Moderate quote:
After a Value quote:
After explore_rates finds nothing available:
After a full package total (with tickets + dining + MM + TP):
travelProtection: false — it's $99/adult. Worth removing if you already have travel insurance."After list_room_types returns many options:
After create_alert for WDW: