waysway

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

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
96%
Vollständigkeit des Schemas
67%
Qualität der Benennung
95%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (1)

  • LOWTool 'clear_session' description lacks action verbin clear_session

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,909Tokens (Tool-Definitionen)
~1.3 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.05% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "waysway": {
      "url": "https://api.waysway.com/mcp"
    }
  }
}

Remote-Endpunkte

https://api.waysway.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (20)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "title": "get_user_profile_schemaArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_user_profile_schemaDictOutput"
}
🟡start_session(session_id, user_id, preferred_language, user_profile, metadata)

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", ...)

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "user_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "User Id"
    },
    "preferred_language": {
      "default": "en",
      "title": "Preferred Language",
      "type": "string"
    },
    "user_profile": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "User Profile"
    },
    "metadata": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Metadata"
    }
  },
  "required": [
    "session_id"
  ],
  "title": "start_sessionArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "start_sessionDictOutput"
}
🟢get_session_state(session_id)

Get a compact summary of the current session state.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    }
  },
  "required": [
    "session_id"
  ],
  "title": "get_session_stateArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_session_stateDictOutput"
}
🔴clear_session(session_id)

Clear the entire session.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    }
  },
  "required": [
    "session_id"
  ],
  "title": "clear_sessionArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "clear_sessionDictOutput"
}
🟢list_sessions

List all in-memory session summaries. Useful for debugging only.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "title": "list_sessionsArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "list_sessionsDictOutput"
}
🟡update_user_profile(session_id, user_profile, merge)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "user_profile": {
      "additionalProperties": true,
      "title": "User Profile",
      "type": "object"
    },
    "merge": {
      "default": true,
      "title": "Merge",
      "type": "boolean"
    }
  },
  "required": [
    "session_id",
    "user_profile"
  ],
  "title": "update_user_profileArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "update_user_profileDictOutput"
}
🟡update_user_profile_from_model(session_id, extracted_user_profile, merge)

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 }

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "extracted_user_profile": {
      "additionalProperties": true,
      "title": "Extracted User Profile",
      "type": "object"
    },
    "merge": {
      "default": true,
      "title": "Merge",
      "type": "boolean"
    }
  },
  "required": [
    "session_id",
    "extracted_user_profile"
  ],
  "title": "update_user_profile_from_modelArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "update_user_profile_from_modelDictOutput"
}
🟡extract_user_profile_from_text(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(...)

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "text": {
      "title": "Text",
      "type": "string"
    }
  },
  "required": [
    "text"
  ],
  "title": "extract_user_profile_from_textArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "extract_user_profile_from_textDictOutput"
}
🟡ingest_user_message(session_id, message, merge, use_fallback_extraction)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "message": {
      "title": "Message",
      "type": "string"
    },
    "merge": {
      "default": true,
      "title": "Merge",
      "type": "boolean"
    },
    "use_fallback_extraction": {
      "default": false,
      "title": "Use Fallback Extraction",
      "type": "boolean"
    }
  },
  "required": [
    "session_id",
    "message"
  ],
  "title": "ingest_user_messageArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "ingest_user_messageDictOutput"
}
🟢normalize_stay_dates(checkin_str, nights, checkout_str, user_profile)

Parse stay dates without using session state. user_profile here is optional and only accepts standard profile fields. city is not required here.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "checkin_str": {
      "title": "Checkin Str",
      "type": "string"
    },
    "nights": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Nights"
    },
    "checkout_str": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Checkout Str"
    },
    "user_profile": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "User Profile"
    }
  },
  "required": [
    "checkin_str"
  ],
  "title": "normalize_stay_datesArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "normalize_stay_datesDictOutput"
}
🟡update_stay_dates(session_id, checkin_str, nights, checkout_str)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "checkin_str": {
      "title": "Checkin Str",
      "type": "string"
    },
    "nights": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Nights"
    },
    "checkout_str": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Checkout Str"
    }
  },
  "required": [
    "session_id",
    "checkin_str"
  ],
  "title": "update_stay_datesArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "update_stay_datesDictOutput"
}
🟡search_hotels(session_id, city, main_interest, user_specific, room_type, ...)

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=..., ...)

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "city": {
      "title": "City",
      "type": "string"
    },
    "main_interest": {
      "title": "Main Interest",
      "type": "string"
    },
    "user_specific": {
      "default": "",
      "title": "User Specific",
      "type": "string"
    },
    "room_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Room Type"
    },
    "amenities": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Amenities"
    },
    "suitable": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Suitable"
    },
    "surroundings": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Surroundings"
    },
    "price_min": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Price Min"
    },
    "price_max": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Price Max"
    },
    "rating_min": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rating Min"
    },
    "hotel_class_stars": {
      "anyOf": [
        {
          "enum": [
            3,
            4,
            5
          ],
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hotel Class Stars"
    },
    "non_refundable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Non Refundable"
    },
    "limit": {
      "default": 3,
      "title": "Limit",
      "type": "integer"
    },
    "required_name_terms": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Required Name Terms"
    },
    "exclude_hotel_codes": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Exclude Hotel Codes"
    }
  },
  "required": [
    "session_id",
    "city",
    "main_interest"
  ],
  "title": "search_hotelsArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "search_hotelsDictOutput"
}
🟢get_hotel_details(session_id, hotel_code_or_name)

Get detailed information for a hotel. Use this after search_hotels when the user asks for more details about a recommended option.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "hotel_code_or_name": {
      "title": "Hotel Code Or Name",
      "type": "string"
    }
  },
  "required": [
    "session_id",
    "hotel_code_or_name"
  ],
  "title": "get_hotel_detailsArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_hotel_detailsDictOutput"
}
🟡check_stay_price(session_id, hotel_index, hotel_code_or_name)

Check live stay price for a previously recommended hotel. REQUIREMENT: - update_stay_dates must already have been called

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "hotel_index": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hotel Index"
    },
    "hotel_code_or_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hotel Code Or Name"
    }
  },
  "required": [
    "session_id"
  ],
  "title": "check_stay_priceArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "check_stay_priceDictOutput"
}
🟡get_booking_offers(session_id, hotel_index, hotel_code_or_name, preferred_room_name, limit)

Get available hotel offers for the current session dates. REQUIREMENT: - update_stay_dates should already be set - hotel should come from previous search results

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "hotel_index": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hotel Index"
    },
    "hotel_code_or_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hotel Code Or Name"
    },
    "preferred_room_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Preferred Room Name"
    },
    "limit": {
      "default": 3,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "session_id"
  ],
  "title": "get_booking_offersArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_booking_offersDictOutput"
}
🟢search_restaurants_near_hotel(session_id, hotel_lon, hotel_lat, hotel_index, hotel_code_or_name)

Search restaurants near a hotel.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "hotel_lon": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hotel Lon"
    },
    "hotel_lat": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hotel Lat"
    },
    "hotel_index": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hotel Index"
    },
    "hotel_code_or_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hotel Code Or Name"
    }
  },
  "required": [
    "session_id"
  ],
  "title": "search_restaurants_near_hotelArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "search_restaurants_near_hotelDictOutput"
}
🟢search_activities_in_city(session_id, city, limit)

Search activities in a city. If city is omitted, use session.city from prior hotel search.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "city": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "City"
    },
    "limit": {
      "default": 3,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "session_id"
  ],
  "title": "search_activities_in_cityArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "search_activities_in_cityDictOutput"
}
🟢search_flight_content(session_id, airline_tag, limit)

Search airline-related content.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "airline_tag": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Airline Tag"
    },
    "limit": {
      "default": 3,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "session_id"
  ],
  "title": "search_flight_contentArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "search_flight_contentDictOutput"
}
🟢search_homestays_in_city(session_id, city, limit)

Search homestays in a city. If city is omitted, use session.city from prior hotel search.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "session_id": {
      "title": "Session Id",
      "type": "string"
    },
    "city": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "City"
    },
    "limit": {
      "default": 3,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "session_id"
  ],
  "title": "search_homestays_in_cityArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "search_homestays_in_cityDictOutput"
}
🟢health_check

Health check for the MCP server.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "title": "health_checkArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "health_checkDictOutput"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet20 Tools
verifiziertVersion nicht aufgezeichnet20 Tools