Skip to main content
Glama

Read a Booking.com property

booking_hotel

Read one Booking.com property page -- price, rating, rooms, facilities -- priced for the stay given. Takes the property url, e.g. from a booking_search result. Spends a flat number of credits, refunded if the page could not be read. 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": {
      "url": "<url>"
    },
    "name": "booking_hotel"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesThe Booking.com property page, e.g. https://www.booking.com/hotel/it/hotel-name.html. Its own query string is ignored: the stay below is what is priced.
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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behavior: it costs a flat number of credits, those credits are refunded if the page could not be read, and queued/running jobs must be collected via `crawl_poll`. This adds concrete cost, failure, and async-job semantics that an agent would not infer from the annotations alone.

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?

The description is four compact sentences with no wasted language. It front-loads the core action and follows with URL source, credit behavior, and async polling instructions in a logical order.

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 nine-parameter read tool with no output schema, the description provides strong operational context: what is read, where the URL comes from, credit/refund behavior, and how to handle queued jobs. It only lightly describes the returned page fields and does not fully specify the response shape, which is a minor gap given there is no output schema.

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 the input schema already documents all nine parameters thoroughly. The description reinforces that the URL comes from a `booking_search` result and that pricing is for the given stay, but it does not add meaningful parameter-level detail beyond 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 states a specific verb and resource: 'Read one Booking.com property page', then enumerates the returned data: 'price, rating, rooms, facilities'. It also scopes the read to the given stay and identifies the URL source from `booking_search`, making it distinguishable from sibling tools.

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 clearly indicates the tool takes a property URL, such as one from a `booking_search` result, and explains what to do when the result is asynchronous: call `crawl_poll` with the `job_id` if `status` is 'queued' or 'running'. It does not explicitly list when not to use this tool, but the intended usage is clear.

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