io.github.Waysway-app/waysway
Official20 toolsWaysway AI travel MCP for hotels, live prices, restaurants, flights, and activities.
AI travel assistant for booking hotels, flights, restaurants, and activities.
Captured live from the server via tools/list.
get_user_profile_schema
Return the strict standard schema for user_profile. IMPORTANT: - Only these standard UserProfile fields are allowed. - No alias mapping is supported. - city is NOT a profile field. - checkin_date / checkout_date are NOT profile fields. - Numeric budget constraints usually belong to search_hotels price_min/price_max. Use this tool when the external model is unsure what fields are allowed.
No parameters.
start_session
Create or replace a session. PURPOSE: - Initialize conversation state - Optionally store stable user profile fields DO: - pass stable or semi-stable profile information in user_profile - pass preferred_language if known - call this before other hotel-related tools DO NOT: - do NOT put city inside user_profile - do NOT put checkin_date or checkout_date inside user_profile - do NOT put search filters inside user_profile CORRECT WORKFLOW: 1. start_session(...) 2. update_user_profile_from_model(...) # optional 3. update_stay_dates(...) # optional 4. search_hotels(city=..., ...) WRONG: user_profile = { "city": "New York", "checkin_date": "2023-04-01", "checkout_date": "2023-04-05" } RIGHT: start_session(user_profile={"preferred_language": "en"}) update_stay_dates(checkin_str="2023-04-01", checkout_str="2023-04-05") search_hotels(city="New York", ...)
Parameters (5)
- session_idstringrequired
- user_idany
- preferred_languagestring
- user_profileany
- metadataany
get_session_state
Get a compact summary of the current session state.
Parameters (1)
- session_idstringrequired
clear_session
Clear the entire session.
Parameters (1)
- session_idstringrequired
list_sessions
List all in-memory session summaries. Useful for debugging only.
No parameters.
update_user_profile
Update session.user_profile using standard UserProfile fields only. USE THIS WHEN: - the caller already has structured profile fields DO NOT PUT HERE: - city - checkin_date - checkout_date - raw numeric search constraints that belong in search_hotels Preferred profile fields include: - price_range - budget_flexibility - relationships - travel_purpose - hotel_style - facilities_like - surroundings_like
Parameters (3)
- session_idstringrequired
- user_profileobjectrequired
- mergeboolean
update_user_profile_from_model
Preferred path for profile extraction. The external model should: - read the user's natural language message - decide which STANDARD UserProfile fields are supported by evidence - send ONLY those fields here HARD RULES: - only standard UserProfile fields are allowed - do NOT invent new fields - do NOT put city here - do NOT put checkin_date or checkout_date here - omit uncertain fields instead of guessing - numeric budget constraints usually belong to search_hotels price_min/price_max GOOD EXAMPLE: { "relationships": "solo", "travel_purpose": "leisure", "hotel_style": "luxury", "facilities_like": "breakfast, gym", "surroundings_like": "downtown" } BAD EXAMPLE: { "city": "New York", "checkin_date": "2023-04-01", "checkout_date": "2023-04-05", "budget": 100 }
Parameters (3)
- session_idstringrequired
- extracted_user_profileobjectrequired
- mergeboolean
extract_user_profile_from_text
Lightweight fallback extraction from raw text. This is mainly for debugging and fallback use. It is NOT the preferred production path. Preferred production path: - external model understands raw text - external model outputs standard UserProfile fields - call update_user_profile_from_model(...)
Parameters (1)
- textstringrequired
ingest_user_message
Store raw user message into session context. IMPORTANT: This tool is no longer the main profile extraction path. RECOMMENDED USE: - store raw user text for context - let the external model decide profile fields - then call update_user_profile_from_model(...) DEFAULT BEHAVIOR: - append raw text into user_info - do not aggressively infer profile fields OPTIONAL: - if use_fallback_extraction=True, run a lightweight fallback extractor
Parameters (4)
- session_idstringrequired
- messagestringrequired
- mergeboolean
- use_fallback_extractionboolean
normalize_stay_dates
Parse stay dates without using session state. user_profile here is optional and only accepts standard profile fields. city is not required here.
Parameters (4)
- checkin_strstringrequired
- nightsany
- checkout_strany
- user_profileany
update_stay_dates
Update session stay dates. USE THIS TOOL FOR: - check-in date - check-out date - nights-based date calculation DO NOT: - do NOT put dates inside user_profile - do NOT try to pass dates through start_session user_profile
Parameters (4)
- session_idstringrequired
- checkin_strstringrequired
- nightsany
- checkout_strany
search_hotels
Search and recommend hotels. USE THIS TOOL FOR: - city-based hotel search - main search intent - direct numeric search constraints such as price_min / price_max - explicit room or amenity filters IMPORTANT: - city MUST be passed here, not inside user_profile - user_profile is for stable preferences, not for search location - if dates are known, call update_stay_dates first - if profile preferences are known, call update_user_profile_from_model first RECOMMENDED ORDER: 1. start_session 2. update_user_profile_from_model (optional) 3. update_stay_dates (optional) 4. search_hotels(city=..., ...)
Parameters (16)
- session_idstringrequired
- citystringrequired
- main_intereststringrequired
- user_specificstring
- room_typeany
- amenitiesany
- suitableany
- surroundingsany
- price_minany
- price_maxany
- rating_minany
- hotel_class_starsany
- non_refundableany
- limitinteger
- required_name_termsany
- exclude_hotel_codesany
get_hotel_details
Get detailed information for a hotel. Use this after search_hotels when the user asks for more details about a recommended option.
Parameters (2)
- session_idstringrequired
- hotel_code_or_namestringrequired
check_stay_price
Check live stay price for a previously recommended hotel. REQUIREMENT: - update_stay_dates must already have been called
Parameters (3)
- session_idstringrequired
- hotel_indexany
- hotel_code_or_nameany
get_booking_offers
Get available hotel offers for the current session dates. REQUIREMENT: - update_stay_dates should already be set - hotel should come from previous search results
Parameters (5)
- session_idstringrequired
- hotel_indexany
- hotel_code_or_nameany
- preferred_room_nameany
- limitinteger
search_restaurants_near_hotel
Search restaurants near a hotel.
Parameters (5)
- session_idstringrequired
- hotel_lonany
- hotel_latany
- hotel_indexany
- hotel_code_or_nameany
search_activities_in_city
Search activities in a city. If city is omitted, use session.city from prior hotel search.
Parameters (3)
- session_idstringrequired
- cityany
- limitinteger
search_flight_content
Search airline-related content.
Parameters (3)
- session_idstringrequired
- airline_tagany
- limitinteger
search_homestays_in_city
Search homestays in a city. If city is omitted, use session.city from prior hotel search.
Parameters (3)
- session_idstringrequired
- cityany
- limitinteger
health_check
Health check for the MCP server.
No parameters.
README not available yet.
Install
claude_desktop_config.json
{
"mcpServers": {
"waysway": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.waysway.com/mcp"
]
}
}
}Desktop config is stdio-only; this bridges via mcp-remote. Native remote: Settings > Connectors.