Skip to main content
Glama

PriceWin

Request a Booking (hotel confirms, pay at the hotel)

request_booking

Sends a booking request for a room at an OpenTravel partner hotel. Nothing is charged and no room is held: the hotel confirms the request by email, and the guest pays at the property on arrival. There is no payment step, now or later. Takes the room and rate from get_hotel_detail and the guest's name, phone number and email; when any of these is missing, the result asks for it and, in clients that show widgets, opens a form for it. A few properties require payment at booking time, and the result says so for those. Returns a confirmation code.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
adultsYesNumber of adults
checkInYesCheck-in date YYYY-MM-DD. Must be today or later.
checkOutYesCheck-out date YYYY-MM-DD. Must be after checkIn.
childrenNoNumber of children (default 0)
currencyYesCurrency of totalAmount, as quoted by get_hotel_detail for the chosen room.
languageNoOptional response language hint. Only used when queryText gives no signal.
guestNameNoFull name of the primary guest. When omitted, the result asks the user for it.
queryTextNoShort excerpt (one sentence at most) of the guest's latest message in their own words, used only to detect the reply language; it is not stored or forwarded. It carries no names, contact details or other parts of the conversation.
guestEmailNoEmail address the confirmation is sent to, as the guest gave it; it cannot be changed after the request is sent. When omitted, the result asks the user for it.
guestPhoneNoGuest phone number; the hotel calls it to confirm the request. When omitted, the result asks the user for it.
propertyIdYesOpenTravel propertyId from get_hotel_detail
roomTypeIdYesroomTypeId from get_hotel_detail roomTypes array
totalAmountYesTotal amount in the property's base currency

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusYes
nextStepYes
bookingIdYes
quotedAmountYes
assignedRoomIdYes
quotedCurrencyYes
paymentRequiredYes
confirmationCodeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With annotations only covering safety flags (readOnly=false, destructive=false, openWorld=true), the description carries real behavioral weight: no charge, no room held, hotel confirms by email, guest pays at property, no payment step now or later, missing-field handling that may open a widget form, and the exception where some properties require payment at booking.

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?

Five sentences, front-loaded with the single most important fact (nothing is charged, no room held) before the input provenance and the payment exception. Slight redundancy between 'Nothing is charged and no room is held' and 'There is no payment step, now or later', which costs a point.

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?

Given 13 parameters, an output schema that already documents the confirmation code, and annotations that only cover safety, the description supplies the remaining context an agent needs: the non-committal nature of the call, fallback behavior for missing guest details, and the payment-at-booking exception.

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 description coverage is 100%, so the baseline is 3, but the description adds provenance the schema does not: which fields are sourced from get_hotel_detail versus from the guest, and that guestEmail cannot be changed after the request is sent. It does not explain totalAmount/currency sourcing in more depth than the schema already does.

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+resource ('Sends a booking request for a room at an OpenTravel partner hotel') and immediately scopes it as a non-binding request, which cleanly separates it from cancel_booking, check_booking_status and the get_hotel_detail family.

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?

Clearly states where the inputs come from ('Takes the room and rate from get_hotel_detail and the guest's name, phone number and email') and what happens when they are missing, which is strong usage context. It stops short of naming an explicit alternative or a when-not-to-use condition, so it is not a full 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