Google Hotels MCP
Server Details
Live Google Hotels search: properties with rates and ratings, plus photos and reviews.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: search (discovery plus single-property details via property_token), photos, and reviews. There is minor overlap in that search can also return a single property's details, but the photos/reviews tools remain unambiguous specialists.
All three tools follow the same predictable pattern: google_hotels_<resource> in snake_case. No mixed conventions or vague verbs.
Three tools is on the lean side for a hotel data server, but each one earns its place and covers a distinct facet (search/details, photos, reviews). Slightly minimal but well-scoped for a read-only SerpAPI wrapper.
The surface covers the core read-only lifecycle: search, property details (via token), photos, and reviews, with pagination and filtering supported. Minor gaps exist—no dedicated property-details or booking/availability tool separate from search—but agents can work around them by reusing the token.
Available Tools
3 toolsgoogle_hotels_photosGet Google Hotels Property Photos (SerpAPI)AInspect
Fetch the full set of photos for a single Google Hotels property via SerpAPI. Requires a property_token taken from a google_hotels_search result. Paginate with next_page_token.
| Name | Required | Description | Default |
|---|---|---|---|
| no_cache | No | Force a fresh SerpAPI fetch and bypass this server's result cache. Default false. | |
| zero_trace | No | Enterprise-only ZeroTrace mode: don't store search params/metadata on SerpAPI. Default false. | |
| property_token | Yes | Property token from a google_hotels_search result identifying the property whose photos to fetch. | |
| next_page_token | No | Token from a prior response to fetch the next page of photos. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It implies a read-only fetch and discloses pagination, but says nothing about rate limits, cache behavior beyond the schema's no_cache, or what 'full set' means in practice (count, ordering, size). Adequate but thin for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, no filler, with the core action front-loaded and the prerequisite and pagination following in priority order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter read tool with full schema coverage and no output schema, the description covers action, prerequisite, and pagination sufficiently. Only the return shape ('full set of photos' – unknown size/format) is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters, including that property_token must come from a search result. The description restates the same facts rather than adding format, constraints, or edge cases, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Fetch the full set of photos for a single Google Hotels property via SerpAPI.' The mention of property_token from a google_hotels_search result implicitly separates it from the two siblings, though it never explicitly says 'not reviews' or 'not search'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear prerequisite (needs property_token from a google_hotels_search result) and the pagination path (next_page_token), which is exactly what an agent needs to sequence calls. It stops short of stating exclusions or when to prefer a sibling, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_hotels_reviewsGet Google Hotels Property Reviews (SerpAPI)AInspect
Fetch reviews for a single Google Hotels property via SerpAPI. Requires a property_token taken from a google_hotels_search result. Filter by category_token or source_number, order with sort_by, and paginate with next_page_token.
| Name | Required | Description | Default |
|---|---|---|---|
| hl | No | Language code, e.g. 'en', 'es', 'pt-br'. | |
| sort_by | No | Sort order: 1 = most helpful, 2 = most recent, 3 = highest rating, 4 = lowest rating. | |
| no_cache | No | Force a fresh SerpAPI fetch and bypass this server's result cache. Default false. | |
| zero_trace | No | Enterprise-only ZeroTrace mode: don't store search params/metadata on SerpAPI. Default false. | |
| source_number | No | Filter reviews by a specific review source (provider) number, as listed in a prior response. | |
| category_token | No | Token to filter reviews by a category/topic (from a prior reviews response). | |
| property_token | Yes | Property token from a google_hotels_search result identifying the property whose reviews to fetch. | |
| next_page_token | No | Token from a prior response to fetch the next page of reviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Fetch' implies a read-only call, but caching behavior (no_cache), ZeroTrace mode, rate limits, and what the response contains are only documented in the schema or not at all.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and the hard prerequisite, followed by the optional knobs. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no annotations, and no output schema, the description should say more about what comes back (review objects plus tokens for subsequent calls) and the caching/ZeroTrace tradeoffs. It covers the call path adequately but leaves the result shape opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented structurally. The description mostly restates that role (filter by category_token/source_number, sort_by, next_page_token) without adding syntax, valid-value, or interaction detail beyond the schema, which is the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fetch reviews for a single Google Hotels property via SerpAPI') and ties the tool to its sibling by requiring a property_token from a google_hotels_search result. It is clearly distinguishable from google_hotels_photos and google_hotels_search, though the sibling routing is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition (must first obtain a property_token from google_hotels_search) and outlines the optional workflows: filter, sort, paginate. It stops short of explicit when-not-to-use guidance, but there are no competing review tools to disambiguate against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_hotels_searchSearch Google Hotels (SerpAPI)AInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query: a destination, area, or hotel name (e.g. 'Bali resorts', 'hotels in Paris'). | |
| gl | No | Country code for the search, e.g. 'us', 'uk', 'de'. | |
| hl | No | Language code, e.g. 'en', 'es', 'pt-br'. | |
| adults | No | Number of adults. Default 2. | |
| brands | No | Filter by hotel brand: comma-separated brand ids (see brands in a prior response). Not applicable to vacation rentals. | |
| rating | No | Minimum overall rating: 7 = 3.5+, 8 = 4.0+, 9 = 4.5+. | |
| sort_by | No | Sort order: 3 = lowest price, 8 = highest rating, 13 = most reviewed. Omit for SerpAPI's default relevance ranking. | |
| bedrooms | No | Minimum number of bedrooms. Vacation rentals only. Default 0. | |
| children | No | Number of children. Default 0. | |
| currency | No | Currency of returned prices (ISO code, e.g. 'USD', 'EUR'). Default USD. | |
| no_cache | No | Force a fresh SerpAPI fetch and bypass this server's result cache. Default false. | |
| amenities | No | Filter by amenities: comma-separated amenity ids (see amenities in a prior response). | |
| bathrooms | No | Minimum number of bathrooms. Vacation rentals only. Default 0. | |
| max_price | No | Maximum price per night in the selected currency. | |
| min_price | No | Minimum price per night in the selected currency. | |
| zero_trace | No | Enterprise-only ZeroTrace mode: don't store search params/metadata on SerpAPI. Default false. | |
| hotel_class | No | Filter by hotel class (stars): comma-separated values from 2 to 5, e.g. '4,5'. | |
| check_in_date | Yes | Check-in date, YYYY-MM-DD. | |
| children_ages | No | Ages of the children as comma-separated values, e.g. '5,8'. Each age 1-17; the count should match `children`. | |
| eco_certified | No | Only show eco-certified properties. Default false. | |
| check_out_date | Yes | Check-out date, YYYY-MM-DD. | |
| property_token | No | Token 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_types | No | Filter by property type: comma-separated type ids (see property_types in a prior response). | |
| special_offers | No | Only show properties with special offers. Default false. | |
| next_page_token | No | Token from a prior response to fetch the next page of results. | |
| vacation_rentals | No | Search vacation rentals instead of hotels. Default false (hotels). | |
| free_cancellation | No | Only show properties offering free cancellation. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ads | No | |
| query | Yes | |
| brands | No | |
| source | Yes | |
| fetchedAt | Yes | |
| properties | No | |
| search_metadata | No | |
| search_parameters | No | |
| search_information | No | |
| serpapi_pagination | No |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
google_hotels_photos - First observed
google_hotels_reviews - First observed
google_hotels_search
Related MCP Connectors
Hotel prices, ratings, reviews and amenities from Google Hotels for any city, dates and guests.
Google Hotels search: rates, ratings, amenities and what each booking site charges, as JSON.
Google Hotels prices for any dates and guests, ratings, amenities and every booking site's price.
Search hotels & rentals: live prices & reviews across Booking.com, Airbnb, Vrbo & Google Hotels.
Related MCP Servers
- AlicenseAqualityAmaintenanceSearches hotels and vacation rentals with nightly and total rates, ratings, amenities, and detailed property information through natural language in any MCP client.1191 npm34 PyPI2MIT
- FlicenseNot gradedqualityFmaintenanceProvides live hotel room rates, availability, and guest reviews from Agoda, enabling searches by destination and dates, property details, and structured review data.1-
- FlicenseNot gradedqualityCmaintenanceHotel Intelligence MCP — 8 tools for hotel search, price comparison across booking sites, area guides via Google Hotels. Part of ToolOracle.2-
- AlicenseNot gradedqualityCmaintenanceEnables verified, bookable hotel price checking with tax-inclusive totals, OTA tax status flags, and durable Booking.com fallback links for budget travel planning.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.