# waysway MCP server

Waysway AI travel MCP for hotels, live prices, restaurants, flights, and activities.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-waysway-app-waysway
- Repository: https://github.com/Waysway-app/waysway-mcp

## Install
- Endpoint: https://api.waysway.com/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://api.waysway.com/mcp

## Tools
- 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.
     Endpoint: https://api.waysway.com/mcp
- 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", ...)
     Endpoint: https://api.waysway.com/mcp
- get_session_state - 
    Get a compact summary of the current session state.
     Endpoint: https://api.waysway.com/mcp
- clear_session - 
    Clear the entire session.
     Endpoint: https://api.waysway.com/mcp
- list_sessions - 
    List all in-memory session summaries.
    Useful for debugging only.
     Endpoint: https://api.waysway.com/mcp
- 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
     Endpoint: https://api.waysway.com/mcp
- 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
    }
     Endpoint: https://api.waysway.com/mcp
- 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(...)
     Endpoint: https://api.waysway.com/mcp
- 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
     Endpoint: https://api.waysway.com/mcp
- 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.
     Endpoint: https://api.waysway.com/mcp
- 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
     Endpoint: https://api.waysway.com/mcp
- 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=..., ...)
     Endpoint: https://api.waysway.com/mcp
- 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.
     Endpoint: https://api.waysway.com/mcp
- check_stay_price - 
    Check live stay price for a previously recommended hotel.

    REQUIREMENT:
    - update_stay_dates must already have been called
     Endpoint: https://api.waysway.com/mcp
- 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
     Endpoint: https://api.waysway.com/mcp
- search_restaurants_near_hotel - 
    Search restaurants near a hotel.
     Endpoint: https://api.waysway.com/mcp
- search_activities_in_city - 
    Search activities in a city.

    If city is omitted, use session.city from prior hotel search.
     Endpoint: https://api.waysway.com/mcp
- search_flight_content - 
    Search airline-related content.
     Endpoint: https://api.waysway.com/mcp
- search_homestays_in_city - 
    Search homestays in a city.

    If city is omitted, use session.city from prior hotel search.
     Endpoint: https://api.waysway.com/mcp
- health_check - 
    Health check for the MCP server.
     Endpoint: https://api.waysway.com/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.github.Waysway-app
- Version: 1.0.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Apr 27, 2026
- Source: https://registry.modelcontextprotocol.io
