Skip to main content
Glama

Google Hotels MCP

Search Google Hotels (SerpAPI)

google_hotels_search

Search Google Hotels live via SerpAPI. Returns properties (hotels and, with vacation_rentals, rentals) with names, prices/rates, overall ratings, review counts, amenities, images and location, plus the brands/property_types/amenities filter ids you can feed back in. Requires q (a destination, area or hotel name), check_in_date and check_out_date (YYYY-MM-DD). Every property in the results carries a property_token: pass it back here (keeping the same check_in_date/check_out_date) to get that one property's full details, or hand it to google_hotels_photos and google_hotels_reviews. Paginate with next_page_token. Prices are in currency (default USD). Result shape: { source, fetchedAt, query, search_metadata, search_parameters, search_information, brands, ads, properties: [...], serpapi_pagination } — the list key is properties (ads are separate). Each property: { type, name, property_token, link, gps_coordinates, rate_per_night: { lowest, extracted_lowest }, total_rate, prices: [{ source, num_guests, rate_per_night }], overall_rating, reviews, hotel_class (label), extracted_hotel_class (number), amenities, images: [{ thumbnail, original_image }], nearby_places, description }. With property_token the single property's fields come back at the top level instead of properties.

Input Schema

NameRequiredDescriptionDefault
qYesSearch query: a destination, area, or hotel name (e.g. 'Bali resorts', 'hotels in Paris').
glNoCountry code for the search, e.g. 'us', 'uk', 'de'.
hlNoLanguage code, e.g. 'en', 'es', 'pt-br'.
adultsNoNumber of adults. Default 2.
brandsNoFilter by hotel brand: comma-separated brand ids (see brands in a prior response). Not applicable to vacation rentals.
ratingNoMinimum overall rating: 7 = 3.5+, 8 = 4.0+, 9 = 4.5+.
sort_byNoSort order: 3 = lowest price, 8 = highest rating, 13 = most reviewed. Omit for SerpAPI's default relevance ranking.
bedroomsNoMinimum number of bedrooms. Vacation rentals only. Default 0.
childrenNoNumber of children. Default 0.
currencyNoCurrency of returned prices (ISO code, e.g. 'USD', 'EUR'). Default USD.
no_cacheNoForce a fresh SerpAPI fetch and bypass this server's result cache. Default false.
amenitiesNoFilter by amenities: comma-separated amenity ids (see amenities in a prior response).
bathroomsNoMinimum number of bathrooms. Vacation rentals only. Default 0.
max_priceNoMaximum price per night in the selected currency.
min_priceNoMinimum price per night in the selected currency.
zero_traceNoEnterprise-only ZeroTrace mode: don't store search params/metadata on SerpAPI. Default false.
hotel_classNoFilter by hotel class (stars): comma-separated values from 2 to 5, e.g. '4,5'.
check_in_dateYesCheck-in date, YYYY-MM-DD.
children_agesNoAges of the children as comma-separated values, e.g. '5,8'. Each age 1-17; the count should match `children`.
eco_certifiedNoOnly show eco-certified properties. Default false.
check_out_dateYesCheck-out date, YYYY-MM-DD.
property_tokenNoToken for a single property from a prior search result; returns that property's full details. Still pass check_in_date and check_out_date.
property_typesNoFilter by property type: comma-separated type ids (see property_types in a prior response).
special_offersNoOnly show properties with special offers. Default false.
next_page_tokenNoToken from a prior response to fetch the next page of results.
vacation_rentalsNoSearch vacation rentals instead of hotels. Default false (hotels).
free_cancellationNoOnly show properties offering free cancellation. Default false.

Output Schema

NameRequiredDescriptionDefault
adsNo
queryYes
brandsNo
sourceYes
fetchedAtYes
propertiesNo
search_metadataNo
search_parametersNo
search_informationNo
serpapi_paginationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well: it discloses live SerpAPI fetching, caching behavior via no_cache, currency defaults, pagination, ads being separate from properties, and the exact difference in response shape when property_token is supplied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, requirements, token workflow, and pagination, which is appropriate for a 27-parameter tool. It is somewhat verbose in enumerating the full result shape and per-property fields even though an output schema exists, but the information is mostly relevant and not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 27-parameter search tool with no annotations, the description covers the essential operational context: required inputs, token-based detail retrieval, pagination, filter ids, currency, caching, and response structure. An agent has enough information to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds workflow-level meaning beyond the schema for key parameters such as property_token, next_page_token, and reusing brand/property_type/amenity ids from prior responses, though it does not add much for the many filter parameters already documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: 'Search Google Hotels live via SerpAPI.' It clearly distinguishes list-search behavior from single-property detail behavior via property_token, and it names the sibling tools google_hotels_photos and google_hotels_reviews for token handoff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states required inputs, explains how to paginate with next_page_token, and tells the agent to pass property_token back for full details or to the sibling photo/review tools. It does not explicitly say when not to use this tool, but the alternative routing is clear enough for an agent to choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources