Skip to main content
Glama

Search multiple Brek hotels

search_accommodations
Read-onlyIdempotent

Searches and compares multiple hotels in a city, neighborhood, airport, landmark, or other destination. Every search requires both checkinDate and checkoutDate, or dateIntent=tonight when the user explicitly asks for tonight. If the user supplied neither, ask for stay dates before calling; do not choose dates for them. Supports occupancy, price range, star rating, guest score, property types, amenities, cancellation preference, and sort order. Returns an ordered list with property IDs, hotel facts, masked wholesale price bands, public-rate comparisons, and Brek links. For a follow-up by position or partial hotel name, match against the most recent relevant search list. If one hotel matches, copy its propertyId exactly into get_accommodation_details or get_accommodation_offers; never shorten, combine, or replace IDs with placeholders. If the ID is unavailable, pass hotelName and optional destination instead. If several hotels match, ask which hotel the user means. Intended for destination discovery and multi-hotel comparison; room-level offers for one property are not included. Exact private wholesale prices are available on Brek.

Input Schema

NameRequiredDescriptionDefault
pageNo
sortNoResult order: top-picks, distance, total price ascending, total price descending, or guest reviews.top-picks
roomsNoNumber of rooms. Each room receives the default of 2 adults when adults is omitted.
adultsNoTotal adult guests. When omitted, Brek defaults to 2 adults per room.
childrenNoTotal child guests; when omitted, uses childrenAges.length.
currencyNoOnly specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL.
latitudeNoOptional latitude when already known.
timeZoneNoOptional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence.
amenitiesNoAmenities required in every result.
longitudeNoOptional longitude when already known.
dateIntentNoUse only when the user explicitly requests tonight. Resolves check-in as the current local date and check-out as the following date; otherwise provide both stay dates.
checkinDateNoRequired with checkoutDate unless the user explicitly requested tonight. Use YYYY-MM-DD.
destinationYesCity, neighborhood, airport, landmark, or other broad destination.
starRatingsNoExact accepted hotel star classifications.
user_localeNoOptional traveler locale from the Claude client context, such as en-US. Omit if unavailable; do not infer it from the hotel destination.
checkoutDateNoRequired with checkinDate unless the user explicitly requested tonight. Use YYYY-MM-DD.
childrenAgesNoAge of every child at check-in. The array length must equal children.
maximumPriceNoMaximum nightly price in the selected currency.
minimumPriceNoMinimum nightly price in the selected currency.
propertyTypesNoAccepted accommodation types, such as hotel, motel, resort, hostel, or apartment.
minimumStarRatingNoMinimum hotel star classification from 1 to 5; distinct from guest review score.
minimumReviewScoreNoMinimum guest review score out of 10; distinct from hotel star classification.
user_location_cityNoOptional approximate traveler city supplied by the Claude client. Omit if unavailable; this is not the hotel destination.
freeCancellationOnlyNoWhether results require free cancellation or refundable rates.
user_location_regionNoOptional traveler state or region supplied by the Claude client. Omit if unavailable; do not infer it from the hotel destination.
user_location_countryNoOptional two-letter traveler country supplied by the Claude client, such as US. Omit if unavailable; do not infer it from the hotel destination.
user_location_timezoneNoOptional IANA timezone of the traveler supplied by the Claude client. Omit if unavailable; this does not set the hotel's local stay dates.

Output Schema

NameRequiredDescriptionDefault
pageYes
totalYes
searchYes
statusNo
messageNo
totalPagesYes
requiredInputNo
accommodationsYes
priceDisclosureYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description still discloses that results carry masked wholesale price bands with public-rate comparisons and that exact wholesale prices live on Brek. It also warns that ID handling must be verbatim, which is real behavioral guidance. Pagination and result-size behavior are not described, keeping it short of a 5.

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?

Front-loaded with purpose, then date rules, then filters, then return shape, then follow-up routing — a sensible precedence order with no filler. It runs long and the closing line about exact prices on Brek is closer to marketing than instruction, which costs it the top mark.

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 27-parameter tool the description covers the hard parts: when it is legal to call (dates), what comes back at a high level, and how to continue after the call. The output schema documents the return payload and the input schema documents every field at 96% coverage, so nothing essential is left for the description to carry.

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 coverage is 96%, so the schema carries most semantics and baseline 3 applies. The description still adds decision-level meaning the schema cannot: the date invariant, the dateIntent fallback, and a grouped inventory of the filter families (occupancy, price range, stars, guest score, property types, amenities, cancellation, sort) so the agent knows what is available without reading 27 properties.

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?

States a specific verb and resource ("searches and compares multiple hotels") plus the destination scope, and closes with an explicit exclusion: "room-level offers for one property are not included." That sentence alone separates it from get_accommodation_offers and get_accommodation_details without opening either schema.

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

Usage Guidelines5/5

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

Gives concrete gating conditions (both stay dates required, or dateIntent=tonight only on explicit request) and an instruction for the missing case: ask the user, never pick dates. It also routes follow-ups: single match goes to get_accommodation_details or get_accommodation_offers, multiple matches require asking the user.

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