Skip to main content
Glama

Prebook a room

prebook
Idempotent

Holds one room (an offer_id from search_hotels or get_hotel) with the partner for the named guest and returns booking_id, booking_secret (shown once), the confirmed total (price_changed and previous_total when the hotel repriced it), the cancellation terms and pay_url. Nothing is ever charged by a tool: the person named as guest pays on the pay_url page, Nuitee's payment form, and the booking exists only after that payment. Give the guest pay_url and tell them the total and the cancellation terms; if price_changed is true, say so. The guest's name must match the ID shown at check-in; email and phone with country code are required. Send an idempotency_key to make a retry safe. Needs a Quub API key (this connection has none yet: use request_api_key).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
adultsNoAdults in the one room, 1 to 8. Default 2.
checkinYesCheck-in date, YYYY-MM-DD, today or later.
remarksNoSpecial requests for the hotel, not guaranteed.
checkoutYesCheck-out date, YYYY-MM-DD, 1 to 30 nights after check-in.
currencyNoISO 4217 currency for the prices, default EUR.
hotel_idYesThe hotel id the offer belongs to.
offer_idYesoffer_id from search_hotels or get_hotel, for these dates and adults.
guest_emailYesThe confirmation goes here; the guest needs it to cancel.
guest_phoneYesWith country code, e.g. +31 6 1234 5678.
nationalityNoGuest nationality, ISO 3166 alpha-2 (prices can depend on it). Default from the client's language, else NL.
expected_totalNoThe total you saw for this offer, so a change is flagged.
guest_last_nameYesAs on the ID shown at check-in.
idempotency_keyNoAny unique string; the same key returns the same booking instead of a second one.
guest_first_nameYesAs on the ID shown at check-in.

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?

Annotations only declare the mutation/idempotency profile, but the description carries much more: nothing is charged by any tool, the booking exists only after payment on Nuitee's form, booking_secret is shown once, price_changed flags repricing, and idempotency_key makes retries safe. These are real behavioral traits beyond the structured hints.

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-loads the core action and return values, then moves to guest-facing instructions, with no filler sentences. It is dense and slightly long, but each clause (repricing, cancellation terms, API key) carries actionable information.

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 14-parameter mutation with no output schema, the description adequately explains what is returned (booking_id, booking_secret, total, price_changed, cancellation terms, pay_url) and the auth prerequisite, so an agent has everything needed to call it and act on the result.

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 schema already documents dates, nationality defaults, currency, and idempotency semantics. The description largely restates the critical constraints (guest name matching the ID, phone with country code, sending an idempotency key) rather than adding new format or edge-case detail, so baseline 3 is appropriate.

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 ('Holds one room ... with the partner for the named guest') and names where the offer_id comes from (search_hotels, get_hotel), which cleanly separates it from those exploration siblings. An agent can identify this as the committing step of the booking flow without opening the schema.

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?

Gives clear sequencing context — this follows search_hotels/get_hotel, and the guest pays on pay_url rather than through the tool — plus a concrete fallback (request_api_key) when the connection lacks a key. It never states an explicit when-not or a named alternative for the booking step (e.g., vs cancel_booking), so it stops short of 5.

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