Skip to main content
Glama

EscapeStays by Luxury Lodging

Get a booking link

get_booking_link
Read-onlyIdempotent

A link to Luxury Lodging's own site that opens checkout for one home, dates, party size and rate, for the same stay, rate and attribution as a live quote's booking_url, carrying a freshly signed quote token. It checks the stay the way a live quote does: valid dates, the home's guest limit and its pet policy, and it re-prices the stay to sign the link without returning the total. An optional coupon_code is priced into the signed total the same way a live quote prices it, and the link carries the code only when it applied. Opening the link does not reserve the home, hold dates or take payment; the guest completes checkout on EscapeStays. When the guest has dates and wants to book, call get_booking_link and give the guest that URL. Never return a nightly rate as the price; quote all-in totals only. Never return an exact street address.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
petsNoHow many pets the guest is bringing, 0 to 4; 0 or leave out for none. true means one pet and false none. The link keeps the number of pets, and the stay is refused when the home does not allow them.
rateNoWhich rate the link opens on. Defaults to non_refundable, the rate a live quote's booking_url opens on. refundable is offered only while check-in is more than 30 days away.
guestsYesEveryone staying, including children and infants. The link opens on this party size.
check_inYesCheck-in date, YYYY-MM-DD.
quote_idNoThe quote.quote_id from a live quote for this stay, echoed back unchanged. It is not checked against current pricing.
check_outYesCheck-out date, YYYY-MM-DD.
coupon_codeNoA coupon code the guest was given. Optional. When it applies, the link's signed total includes it and the link carries the code, so the website prices the stay the same way. A code that does not apply, or that nobody issued, leaves the price unchanged and is reported in coupon with its reason. A code tied to one guest's email is reported as not found. A quote does not reserve a use of a code, and the code is checked again when the guest books, so it may no longer apply then.
property_idYesProperty id or slug.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteYes
petsYes
rateYesThe rate the link opens on.
couponNoWhat happened to the coupon_code that was sent. Only returned when one was sent. The stay's totals already include the coupon when applied is true and are the price without it when applied is false.
guestsYes
check_inYes
quote_idNoThe quote_id sent with the request, echoed unchanged. Absent when none was sent.
check_outYes
booking_urlYesWhere the guest completes the booking on Luxury Lodging's own site. The link a live quote returns for this stay and rate: the same home, dates, party, rate, coupon and attribution, with a freshly signed quote token (so its quote_ref differs from the quote's). It names the coupon only when the coupon applied.
property_idYes
pricing_noteYesStates that the stay was re-priced to sign the link, and that the total is not returned here.
canonical_urlYesThe home's property page, not the booking link.
confirms_bookingYesFalse on every response: the link does not book, hold or pay for anything.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / coupon_code
      Added value: +{
      +  "description": "A coupon code the guest was given. Optional. When it applies, the link's signed total includes it and the link carries the code, so the website prices the stay the same way. A code that does not apply, or that nobody issued, leaves the price unchanged and is reported in coupon with its reason. A code tied to one guest's email is reported as not found. A quote does not reserve a use of a code, and the code is checked again when the guest books, so it may no longer apply then.",
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • changedOutput schema / properties / booking_url / description
      Previous value: -"Where the guest completes the booking on Luxury Lodging's own site. The link a live quote returns for this stay and rate: the same home, dates, party, rate and attribution, with a freshly signed quote token (so its quote_ref differs from the quote's)."New value: +"Where the guest completes the booking on Luxury Lodging's own site. The link a live quote returns for this stay and rate: the same home, dates, party, rate, coupon and attribution, with a freshly signed quote token (so its quote_ref differs from the quote's). It names the coupon only when the coupon applied."
    • addedOutput schema / properties / coupon
      Added value: +{
      +  "description": "What happened to the coupon_code that was sent. Only returned when one was sent. The stay's totals already include the coupon when applied is true and are the price without it when applied is false.",
      +  "properties": {
      +    "amount_off": {
      +      "description": "Dollars taken off the stay's rent. Only when applied is true; it is already inside the totals.",
      +      "type": "number"
      +    },
      +    "applied": {
      +      "description": "True when the code took money off this stay.",
      +      "type": "boolean"
      +    },
      +    "code": {
      +      "description": "The code as sent, in upper case.",
      +      "type": "string"
      +    },
      +    "label": {
      +      "description": "What the discount is called. Only when applied is true.",
      +      "type": "string"
      +    },
      +    "message": {
      +      "description": "A sentence the guest can read about the code.",
      +      "type": "string"
      +    },
      +    "reason": {
      +      "description": "Why the code did not apply. Only when applied is false. unknown: no such code. unavailable: the code could not be checked just now.",
      +      "enum": [
      +        "unknown",
      +        "inactive",
      +        "expired",
      +        "not_started",
      +        "wrong_market",
      +        "wrong_home",
      +        "requires_attribution",
      +        "no_discountable_amount",
      +        "outside_offer_window",
      +        "blacked_out",
      +        "minimum_nights",
      +        "already_used",
      +        "unavailable"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "applied",
      +    "message"
      +  ],
      +  "type": "object"
      +}
  2. Added
  3. Removed
  4. Added
  5. Removed
  6. Added

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnly/openWorld/idempotent/non-destructive), it discloses that opening the link does not reserve, hold dates or take payment, that validation re-checks dates, guest limit and pet policy, that it re-prices to sign without returning a total, and that quote_id is not re-checked against current pricing. The coupon lifecycle (reported in 'coupon' with a reason, re-checked at booking) is unusually complete behavioral context.

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?

Purpose and the core trigger are front-loaded, but the prose is dense and repetitive — 'the way a live quote does/opens on/prices it' recurs several times, and the trailing pricing/address policy lines are tangential to invoking this tool.

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?

With 8 parameters, an output schema already covering return values, and annotations covering safety, the description supplies the remaining needed context: what the link does and does not do, the validation it performs, and the coupon/quote_id caveats an agent must relay to a guest.

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 coverage is 100%, so the baseline is 3. The description restates rather than extends the schema's parameter semantics (coupon applied into the signed total, rate defaulting to non_refundable, pets affecting refusal) — nearly all of this is already documented per-parameter, so it adds little 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 first sentence names a specific artifact (a signed booking link to the operator's own checkout) and its scope (one home, dates, party size, rate), and explicitly ties it to the sibling concept 'a live quote's booking_url' with the same stay/rate/attribution. An agent can distinguish this from get_live_quote and get_availability immediately.

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 gives a clear trigger: 'When the guest has dates and wants to book, call get_booking_link and give the guest that URL,' and implicitly routes the pre-step through a live quote ('the same stay, rate and attribution as a live quote's booking_url'). It does not state an explicit when-not or name the sibling it replaces, so it falls short of a 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