Skip to content

Features

See how Vio's hotel search capabilities can enhance your AI product. The examples below show common scenarios in a conversational AI assistant.

Search and discovery

User: "Find me a pet-friendly hotel in Barcelona with a pool, under 150 per night"

Your AI assistant calls search_hotels with:

json
{
  "queries": ["Barcelona"],
  "filters": {
    "facilities": ["pet friendly", "pool"],
    "maxPrice": 150
  },
  "include": ["location", "rating", "media", "offer"]
}

Result: Curated list of hotels matching all criteria, with images, ratings, and best available prices from multiple providers.

User: "What hotels are near me?" / "Hotels near the Eiffel Tower" / "Hotels at 52.37, 4.90"

The MCP server supports multiple ways to search by location:

  • Near me — Uses device GPS or IP geolocation when your app provides user location
  • Coordinates — Search by latitude/longitude for precise location targeting
  • Address or POI — Natural language addresses and points of interest (e.g., "Dam Square, Amsterdam", "Charles de Gaulle Airport") are geocoded automatically

Result: Hotels sorted by distance from the search location, with the same rich data (images, ratings, prices) as a standard search.

Similar hotels

User: "I like the Hilton Amsterdam but it's fully booked — anything similar nearby?"

Your AI calls search_hotels with the hotel name as a query:

json
{
  "queries": ["Hilton Amsterdam"],
  "include": ["location", "rating", "media", "offer"]
}

When a query resolves to a specific hotel, the server automatically returns similar hotels nearby. The anchor hotel is marked in the results so your AI can distinguish it from the alternatives.

Result: The original hotel plus similar properties matched by style, rating, and location — ideal for finding alternatives when the user's first choice is unavailable or out of budget.

Deep hotel comparison

User: "Compare the top 3 hotels you found — what do reviewers say about each?"

Your AI calls get_hotels for the previously found hotels:

json
{
  "hotelIds": ["hotel_1", "hotel_2", "hotel_3"],
  "include": ["insight", "review", "facility", "room"]
}

Result: AI-generated review summaries broken down by category (Location, Service, Cleanliness, Rooms, Food, Facilities), plus room details and amenity lists. Your AI can produce a rich comparison table.

Room configuration

User: "We need two rooms — one for us and one for the kids (ages 5 and 8)"

Your AI calls search_hotels with a multi-room setup:

json
{
  "queries": ["Barcelona"],
  "rooms": [
    {"adults": 2},
    {"adults": 2, "children": [5, 8]}
  ],
  "include": ["room", "offer"]
}

Result: Hotels with availability for the exact room configuration, with prices reflecting the actual group size. Children's ages are used to find properties with appropriate room types and to calculate accurate pricing — including child discounts where available.

Filtering and ordering

User: "Show me 4- or 5-star hotels with a gym, sorted by price, with free cancellation"

Your AI calls search_hotels with filters and sort options:

json
{
  "queries": ["Amsterdam"],
  "filters": {
    "starRatings": [4, 5],
    "facilities": ["gym"],
    "freeCancellation": "included"
  },
  "sortBy": "price",
  "sortOrder": "asc"
}

Filter terms are resolved via semantic vector search — natural language values like "pet friendly" or "workout room" are matched automatically to the correct facilities. No exact IDs or codes needed.

Result: Hotels matching all filter criteria, sorted by the requested field. Available sort options include price, rating, distance, and popularity. Filters can be combined freely — star rating, guest rating, property type, price range, facilities, meal plans, and more. See Filters Reference for the full list.

Price intelligence

User: "Is this a good deal? Should I book now or wait?"

Your AI calls get_hotels with the analytic data block:

json
{
  "hotelIds": ["hotel_abc"],
  "include": ["offer", "analytic"]
}

Result: Historical pricing data and comparison to similar hotels. Your AI can confidently answer "This hotel is cheaper than similar hotels in the area - it's a good deal."

Booking flow

User: "I want to book the second hotel"

Every hotel and offer includes direct booking URLs. When a user is ready to book:

  1. Your AI presents the offer with provider name and price breakdown
  2. User clicks the booking link
  3. They complete the booking on the provider's site (Booking.com, Expedia, etc.)
  4. The booking is attributed to your integration for commission tracking

Result: A seamless handoff from your AI to the booking provider, with full attribution for revenue sharing.

Offer aggregation

User: "Show me all available rates for this hotel — I want to compare providers"

Vio compares rates from multiple providers in real time. Three retrieval modes are available:

ModeDescriptionUse case
cheapestSingle best rate per hotelQuick price display
top_offersLimited set of competitive offersPrice comparison
allEvery available offerFull offer listing

Result: Side-by-side comparison of offers from multiple providers. Each offer includes: price breakdown (base, taxes, hotel fees), cancellation policy, meal plan, provider name, room type, and a direct booking URL.

Progressive detail loading

User: "Tell me more about this hotel" / "What do reviews say?" / "What's the area like?"

Your AI starts with a quick overview, then loads details on demand:

  1. Initial search: include: ["location", "rating", "media", "offer"] - fast, lightweight
  2. User clicks a hotel: include: ["room", "facility", "policy"] - detailed room options
  3. User asks about reviews: include: ["review", "insight"] - social proof
  4. User wants to see the area: include: ["location"] - nearby attractions and area description

Result: Fast initial responses with the ability to drill deeper on demand. This progressive pattern minimizes latency while keeping all data accessible.

Localization

User: "Suche mir ein Hotel in Berlin" / "Show prices in Brazilian reais"

Your AI passes locale and currency via the _meta field on each tool call:

json
{
  "_meta": {
    "vio/locale": "de-DE",
    "vio/userLocation": {"country": "DE"}
  },
  "queries": ["Berlin"],
  "currency": "BRL"
}

Result: Hotel names, descriptions, reviews, and insights returned in the user's language. Prices displayed in the requested currency. Locale and currency can be set independently — a German-speaking user can see prices in any supported currency.

Image optimization

User: "Show me photos of this hotel"

Hotel images are served via CDN with dynamic resizing. Each image URL supports width and height parameters, so your app can request the exact dimensions it needs.

Result: Fast-loading, properly sized images for any device or layout. The CDN handles format conversion, compression, and caching automatically.

Pagination

User: "Show me more hotels"

Your AI calls search_hotels with the offset parameter to load the next page:

json
{
  "queries": ["Barcelona"],
  "offset": 10,
  "include": ["location", "rating", "media", "offer"]
}

Result: The next set of hotels beyond the initial results. Your AI can present results incrementally, keeping responses fast and conversational while giving users access to the full inventory.

Roadmap

FeatureDescription
Deal FreezeLock in a price for a limited time
BookingComplete bookings directly through the MCP server
Booking ManagementView, modify, and cancel existing bookings
Price WatchMonitor prices and receive drop alerts

New features follow the same protocol and authentication. Partners integrating today can adopt them with minimal effort.

Next steps

  1. Try the Quick Start to explore the API
  2. Review the API Reference for detailed tool documentation
  3. See Examples for working code implementations

Vio - Book like an insider