Skip to content

Tools Overview

The Vio MCP server exposes two tools via the Model Context Protocol. Each tool is discoverable via tools/list and callable via tools/call.

Tool summary

ToolPurposeRequires search?
search_hotelsDiscover hotels and fetch dataYes - searches by location, coordinates, etc.
get_hotelsFetch data for known hotel IDsNo - direct fetch by ID

Coming soon

ToolPurpose
deal_freezeLock in a price for a limited time
bookingComplete hotel bookings directly
booking_managementView, modify, and cancel bookings
price_watchMonitor prices and get drop alerts

Search methods

All search tools support multiple ways to find hotels:

MethodDescriptionExample
queriesLocation or hotel name (1-3)["Amsterdam"], ["Hilton London"]
latitude + longitudeCoordinate-based search52.3676, 4.9041
nearMeUser's current locationRequires device GPS or geo headers
addressGeocoded address search"Dam Square, Amsterdam"
hotelIdsFetch specific hotels (via get_hotels)["hotel_abc", "hotel_xyz"]

Data blocks

Control which data is returned via the include array. Fetch only what you need to reduce response size and latency.

BlockDescription
locationAddress, coordinates, area info, nearby attractions
ratingGuest rating (0-10), review count, breakdown by category
classificationStar rating, property type, themes
facilityFacilities list (pool, gym, WiFi, etc.)
mediaHotel images (optimized via CDN)
offerRoom offers with pricing from multiple providers
roomRoom types with amenities, bed types, images
reviewGuest reviews with ratings and text
faqFrequently asked questions
insightAI-generated review summaries by category
policyCheck-in/out, fees, cancellation, deposits
analyticPrice analytics, historical data, comparison vs similar hotels

Default: ['location', 'rating', 'classification', 'media', 'offer']

Filters

FilterLogicExample
facilitiesAND (must have all)["pool", "gym", "pet friendly"]
propertyTypesOR (any match)["hotel", "apartment"]
themesOR (any match)["beach", "romantic"]
starRatingsOR[4, 5]
guestRatingOR[8, 9, 10]
minPrice / maxPriceRangePer-night rate
freeCancellationThree-stateany, included, excluded
mealIncludedThree-stateany, included, excluded
payLaterThree-stateany, included, excluded

Filter terms are resolved via semantic vector search — natural language values like "pet friendly" or "workout room" are matched automatically.

Common parameters

These parameters are shared across tools:

Room configuration

json
{
  "rooms": [
    {"adults": 2},
    {"adults": 2, "children": [5, 8]}
  ]
}

Each room specifies the number of adults (1+) and optionally children ages. Default: [{"adults": 2}].

Date parameters

ParameterFormatDescription
checkInYYYY-MM-DDCheck-in date
checkOutYYYY-MM-DDCheck-out date (alternative to nights)
nightsIntegerStay duration (default: 3)
dayDistanceIntegerDays from today for check-in

If no dates are provided, defaults to check-in 15 days from today for 3 nights.

Currency and pricing

ParameterDescription
currencyISO 4217 currency code (e.g., EUR, USD). Auto-detected from locale if not specified.
priceModetotal (entire stay, default) or nightly (per night)

Response structure

All tools return responses in this format:

json
{
  "content": [
    {
      "type": "text",
      "text": "{...}"  // JSON string with tool output
    }
  ],
  "isError": false
}

On error:

json
{
  "content": [
    {
      "type": "text",
      "text": "Actionable error message explaining how to fix the request"
    }
  ],
  "isError": true
}

Data types reference

See Data Types for detailed schemas of all response objects (hotels, offers, reviews, rooms, etc.).

Vio - Book like an insider