Search / io.github.Waysway-app/waysway
waysway
not classifiedWaysway AI travel MCP for hotels, live prices, restaurants, flights, and activities.
v1.0.0 · active · repository · descriptor JSON · versions
Search / io.github.Waysway-app/waysway
Waysway AI travel MCP for hotels, live prices, restaurants, flights, and activities.
v1.0.0 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"waysway": {
"type": "http",
"url": "https://api.waysway.com/mcp"
}
}
}claude mcp add --transport http waysway https://api.waysway.com/mcp[mcp_servers.waysway]
url = "https://api.waysway.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"waysway": {
"type": "remote",
"url": "https://api.waysway.com/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"waysway": {
"type": "http",
"url": "https://api.waysway.com/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=waysway&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLndheXN3YXkuY29tL21jcCJ9"
}{
"servers": {
"waysway": {
"type": "http",
"url": "https://api.waysway.com/mcp"
}
}
}{
"mcpServers": {
"waysway": {
"httpUrl": "https://api.waysway.com/mcp"
}
}
}extensions:
"waysway":
enabled: true
name: "waysway"
type: streamable_http
uri: "https://api.waysway.com/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky onestools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: clear_session (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); start_session (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); extract_user_profile_from_text (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 3,366 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo -unreachable(6 failures) ~updated-176d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://api.waysway.com/mcp streamable-http | none | no (6 failures) | 93% | 871 ms | 2025-06-18 | 2026-10-08 |
check_stay_price | Check live stay price for a previously recommended hotel. REQUIREMENT: - update_stay_dates must already have been called |
clear_session | Clear the entire session. |
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(...) |
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 |
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. |
get_session_state | Get a compact summary of the current session state. |
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. |
health_check | Health check for the MCP server. |
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 |
list_sessions | List all in-memory session summaries. Useful for debugging only. |
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. |
search_activities_in_city | Search activities in a city. If city is omitted, use session.city from prior hotel search. |
search_flight_content | Search airline-related content. |
search_homestays_in_city | Search homestays in a city. If city is omitted, use session.city from prior hotel search. |
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=..., ...) |
search_restaurants_near_hotel | Search restaurants near a hotel. |
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", ...) |
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 |
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 |
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 } |
Schemas: list_tools.
{
"name": "io.github.Waysway-app/waysway",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://api.waysway.com/mcp",
"type": "streamable-http"
}
],
"version": "1.0.0",
"repository": {
"url": "https://github.com/Waysway-app/waysway-mcp",
"source": "github"
},
"description": "Waysway AI travel MCP for hotels, live prices, restaurants, flights, and activities."
}