Skip to main content
Glama

Search Booking.com

booking_search

Search Booking.com for places to stay at a destination and return the properties listed, priced for the stay given. Use booking_hotel with a property url for one hotel in detail. Spends a flat number of credits. If status is "queued" or "running", call crawl_poll with the job_id to collect it.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "destination": "<destination>"
    },
    "name": "booking_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
cityNoThe city inside that country to appear to browse from, as the pool spells it: letters, digits, hyphens or underscores, e.g. berlin or new_york. Requires country. Doubles the price of the crawl.
roomsNoHow many rooms they need.
adultsNoHow many adults are staying.
checkinNoThe first night, as YYYY-MM-DD, today or later. Requires checkout. Without dates Booking prices nothing.
countryNoThe country to appear to browse from, as a two-letter ISO 3166-1 code such as es, us or de. Free. Required to use city.
premiumNoFetch through the premium proxy pool instead of the standard one. Costs more; use it for targets that refuse ordinary requests.
checkoutNoThe day you leave, as YYYY-MM-DD, after checkin. Requires checkin.
currencyNoThe currency to price in, as a three-letter ISO 4217 code such as EUR. Left to Booking when absent.
destinationYesWhere to stay, as you would type it into Booking's search box: a city, a region, a landmark.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only carry openWorldHint and destructiveHint, and the description adds real context beyond them: a flat credit cost and an asynchronous job model with a status field and job_id hand-off to crawl_poll. It does not cover pagination or result volume limits, so it falls just short of full disclosure.

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

Conciseness5/5

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

Four short sentences, each doing distinct work: purpose, alternative tool, cost, async follow-up. Purpose is front-loaded and there is no filler.

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

Completeness4/5

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

For a 9-parameter open-world crawl with no output schema, the description covers the essential behavioral contract: cost, async polling, and the single-hotel alternative. Return shape is only loosely characterized ('the properties listed'), and result-set size/ordering is unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including the cost-doubling city/country interaction and date dependencies is already documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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?

Names a specific verb and resource ('Search Booking.com for places to stay'), states the return ('properties listed, priced for the stay given'), and explicitly contrasts with the sibling booking_hotel. An agent can distinguish it from booking_hotel and crawl_poll without opening a 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?

Explicitly routes the agent: use booking_hotel with a property url for a single hotel, and call crawl_poll with the job_id when status is queued or running. Both the alternative and the follow-up condition are stated, not implied.

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