MCP-Server

waysway

io.github.Waysway-app/waysway
Karten & Standort Reisen & Hospitality Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Searches and recommends hotels, homestays, restaurants, flights, and activities, while managing travel dates, preferences, session state, and booking offers.

check_stay_price
Check live stay price for a previously recommended hotel. REQUIREMENT: - update_stay_dates must already have been called
Eingabeschema
{'type': 'object', 'title': 'check_stay_priceArguments', 'required': ['session_id'], 'properties': {'session_id': {'type': 'string', 'title': 'Session Id'}, 'hotel_index': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Hotel Index', 'default': None}, 'hotel_code_or_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Hotel Code Or Name', 'default': None}}}
Ausgabeschema
{'type': 'object', 'title': 'check_stay_priceDictOutput', 'additionalProperties': True}
clear_session
Clear the entire session.
Eingabeschema
{'type': 'object', 'title': 'clear_sessionArguments', 'required': ['session_id'], 'properties': {'session_id': {'type': 'string', 'title': 'Session Id'}}}
Ausgabeschema
{'type': 'object', 'title': 'clear_sessionDictOutput', 'additionalProperties': True}
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(...)
Eingabeschema
{'type': 'object', 'title': 'extract_user_profile_from_textArguments', 'required': ['text'], 'properties': {'text': {'type': 'string', 'title': 'Text'}}}
Ausgabeschema
{'type': 'object', 'title': 'extract_user_profile_from_textDictOutput', 'additionalProperties': True}
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
Eingabeschema
{'type': 'object', 'title': 'get_booking_offersArguments', 'required': ['session_id'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 3}, 'session_id': {'type': 'string', 'title': 'Session Id'}, 'hotel_index': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Hotel Index', 'default': None}, 'hotel_code_or_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Hotel Code Or Name', 'default': None}, 'preferred_room_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Preferred Room Name', 'default': None}}}
Ausgabeschema
{'type': 'object', 'title': 'get_booking_offersDictOutput', 'additionalProperties': True}
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.
Eingabeschema
{'type': 'object', 'title': 'get_hotel_detailsArguments', 'required': ['session_id', 'hotel_code_or_name'], 'properties': {'session_id': {'type': 'string', 'title': 'Session Id'}, 'hotel_code_or_name': {'type': 'string', 'title': 'Hotel Code Or Name'}}}
Ausgabeschema
{'type': 'object', 'title': 'get_hotel_detailsDictOutput', 'additionalProperties': True}
get_session_state
Get a compact summary of the current session state.
Eingabeschema
{'type': 'object', 'title': 'get_session_stateArguments', 'required': ['session_id'], 'properties': {'session_id': {'type': 'string', 'title': 'Session Id'}}}
Ausgabeschema
{'type': 'object', 'title': 'get_session_stateDictOutput', 'additionalProperties': True}
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.
Eingabeschema
{'type': 'object', 'title': 'get_user_profile_schemaArguments', 'properties': {}}
Ausgabeschema
{'type': 'object', 'title': 'get_user_profile_schemaDictOutput', 'additionalProperties': True}
health_check
Health check for the MCP server.
Eingabeschema
{'type': 'object', 'title': 'health_checkArguments', 'properties': {}}
Ausgabeschema
{'type': 'object', 'title': 'health_checkDictOutput', 'additionalProperties': True}
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
Eingabeschema
{'type': 'object', 'title': 'ingest_user_messageArguments', 'required': ['session_id', 'message'], 'properties': {'merge': {'type': 'boolean', 'title': 'Merge', 'default': True}, 'message': {'type': 'string', 'title': 'Message'}, 'session_id': {'type': 'string', 'title': 'Session Id'}, 'use_fallback_extraction': {'type': 'boolean', 'title': 'Use Fallback Extraction', 'default': False}}}
Ausgabeschema
{'type': 'object', 'title': 'ingest_user_messageDictOutput', 'additionalProperties': True}
list_sessions
List all in-memory session summaries. Useful for debugging only.
Eingabeschema
{'type': 'object', 'title': 'list_sessionsArguments', 'properties': {}}
Ausgabeschema
{'type': 'object', 'title': 'list_sessionsDictOutput', 'additionalProperties': True}
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.
Eingabeschema
{'type': 'object', 'title': 'normalize_stay_datesArguments', 'required': ['checkin_str'], 'properties': {'nights': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Nights', 'default': None}, 'checkin_str': {'type': 'string', 'title': 'Checkin Str'}, 'checkout_str': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Checkout Str', 'default': None}, 'user_profile': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'User Profile', 'default': None}}}
Ausgabeschema
{'type': 'object', 'title': 'normalize_stay_datesDictOutput', 'additionalProperties': True}
search_activities_in_city
Search activities in a city. If city is omitted, use session.city from prior hotel search.
Eingabeschema
{'type': 'object', 'title': 'search_activities_in_cityArguments', 'required': ['session_id'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'City', 'default': None}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 3}, 'session_id': {'type': 'string', 'title': 'Session Id'}}}
Ausgabeschema
{'type': 'object', 'title': 'search_activities_in_cityDictOutput', 'additionalProperties': True}
search_flight_content
Search airline-related content.
Eingabeschema
{'type': 'object', 'title': 'search_flight_contentArguments', 'required': ['session_id'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 3}, 'session_id': {'type': 'string', 'title': 'Session Id'}, 'airline_tag': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Airline Tag', 'default': None}}}
Ausgabeschema
{'type': 'object', 'title': 'search_flight_contentDictOutput', 'additionalProperties': True}
search_homestays_in_city
Search homestays in a city. If city is omitted, use session.city from prior hotel search.
Eingabeschema
{'type': 'object', 'title': 'search_homestays_in_cityArguments', 'required': ['session_id'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'City', 'default': None}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 3}, 'session_id': {'type': 'string', 'title': 'Session Id'}}}
Ausgabeschema
{'type': 'object', 'title': 'search_homestays_in_cityDictOutput', 'additionalProperties': True}
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=..., ...)
Eingabeschema
{'type': 'object', 'title': 'search_hotelsArguments', 'required': ['session_id', 'city', 'main_interest'], 'properties': {'city': {'type': 'string', 'title': 'City'}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 3}, 'suitable': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Suitable', 'default': None}, 'amenities': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Amenities', 'default': None}, 'price_max': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Price Max', 'default': None}, 'price_min': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Price Min', 'default': None}, 'room_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Room Type', 'default': None}, 'rating_min': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Rating Min', 'default': None}, 'session_id': {'type': 'string', 'title': 'Session Id'}, 'surroundings': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Surroundings', 'default': None}, 'main_interest': {'type': 'string', 'title': 'Main Interest'}, 'user_specific': {'type': 'string', 'title': 'User Specific', 'default': ''}, 'non_refundable': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Non Refundable', 'default': None}, 'hotel_class_stars': {'anyOf': [{'enum': [3, 4, 5], 'type': 'integer'}, {'type': 'null'}], 'title': 'Hotel Class Stars', 'default': None}, 'exclude_hotel_codes': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Exclude Hotel Codes', 'default': None}, 'required_name_terms': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Required Name Terms', 'default': None}}}
Ausgabeschema
{'type': 'object', 'title': 'search_hotelsDictOutput', 'additionalProperties': True}
search_restaurants_near_hotel
Search restaurants near a hotel.
Eingabeschema
{'type': 'object', 'title': 'search_restaurants_near_hotelArguments', 'required': ['session_id'], 'properties': {'hotel_lat': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Hotel Lat', 'default': None}, 'hotel_lon': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Hotel Lon', 'default': None}, 'session_id': {'type': 'string', 'title': 'Session Id'}, 'hotel_index': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Hotel Index', 'default': None}, 'hotel_code_or_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Hotel Code Or Name', 'default': None}}}
Ausgabeschema
{'type': 'object', 'title': 'search_restaurants_near_hotelDictOutput', 'additionalProperties': True}
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", ...)
Eingabeschema
{'type': 'object', 'title': 'start_sessionArguments', 'required': ['session_id'], 'properties': {'user_id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'User Id', 'default': None}, 'metadata': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Metadata', 'default': None}, 'session_id': {'type': 'string', 'title': 'Session Id'}, 'user_profile': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'User Profile', 'default': None}, 'preferred_language': {'type': 'string', 'title': 'Preferred Language', 'default': 'en'}}}
Ausgabeschema
{'type': 'object', 'title': 'start_sessionDictOutput', 'additionalProperties': True}
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
Eingabeschema
{'type': 'object', 'title': 'update_stay_datesArguments', 'required': ['session_id', 'checkin_str'], 'properties': {'nights': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Nights', 'default': None}, 'session_id': {'type': 'string', 'title': 'Session Id'}, 'checkin_str': {'type': 'string', 'title': 'Checkin Str'}, 'checkout_str': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Checkout Str', 'default': None}}}
Ausgabeschema
{'type': 'object', 'title': 'update_stay_datesDictOutput', 'additionalProperties': True}
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
Eingabeschema
{'type': 'object', 'title': 'update_user_profileArguments', 'required': ['session_id', 'user_profile'], 'properties': {'merge': {'type': 'boolean', 'title': 'Merge', 'default': True}, 'session_id': {'type': 'string', 'title': 'Session Id'}, 'user_profile': {'type': 'object', 'title': 'User Profile', 'additionalProperties': True}}}
Ausgabeschema
{'type': 'object', 'title': 'update_user_profileDictOutput', 'additionalProperties': True}
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 }
Eingabeschema
{'type': 'object', 'title': 'update_user_profile_from_modelArguments', 'required': ['session_id', 'extracted_user_profile'], 'properties': {'merge': {'type': 'boolean', 'title': 'Merge', 'default': True}, 'session_id': {'type': 'string', 'title': 'Session Id'}, 'extracted_user_profile': {'type': 'object', 'title': 'Extracted User Profile', 'additionalProperties': True}}}
Ausgabeschema
{'type': 'object', 'title': 'update_user_profile_from_modelDictOutput', 'additionalProperties': True}
Hinzugefügt
health_check
17. September 2026 12:53
Hinzugefügt
search_homestays_in_city
17. September 2026 12:53
Hinzugefügt
search_flight_content
17. September 2026 12:53
Hinzugefügt
search_activities_in_city
17. September 2026 12:53
Hinzugefügt
search_restaurants_near_hotel
17. September 2026 12:53
Hinzugefügt
get_booking_offers
17. September 2026 12:53
Hinzugefügt
check_stay_price
17. September 2026 12:53
Hinzugefügt
get_hotel_details
17. September 2026 12:53
Hinzugefügt
search_hotels
17. September 2026 12:53
Hinzugefügt
update_stay_dates
17. September 2026 12:53
Hinzugefügt
normalize_stay_dates
17. September 2026 12:53
Hinzugefügt
ingest_user_message
17. September 2026 12:53
Hinzugefügt
extract_user_profile_from_text
17. September 2026 12:53
Hinzugefügt
update_user_profile_from_model
17. September 2026 12:53
Hinzugefügt
update_user_profile
17. September 2026 12:53
Hinzugefügt
list_sessions
17. September 2026 12:53
Hinzugefügt
clear_session
17. September 2026 12:53
Hinzugefügt
get_session_state
17. September 2026 12:53
Hinzugefügt
start_session
17. September 2026 12:53
Hinzugefügt
get_user_profile_schema
17. September 2026 12:53