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. The price of the stay is the all-in total, which includes cleaning, fees and taxes; a nightly rate excludes them and is not the price of a stay. Neither the link nor this result carries a street address; the exact address is sent to the guest with check-in instructions before arrival.

Input 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

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?

Despite annotations already covering the safety profile, the description adds substantial behavior: it validates dates, guest limit and pet policy, re-prices to sign without returning the total, reprices the coupon into the signed total, and states plainly that opening the link does not reserve, hold dates, or take payment. It also clarifies that the price is the all-in total and that no street address is carried — real context beyond readOnly/idempotent 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?

Purpose is front-loaded in the first sentence and every sentence carries information, but the single dense paragraph is long and re-explains coupon behavior that the schema description already documents. Slightly redundant rather than padded.

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 an output schema present, return values need not be described, and the description still covers validation, pricing model, coupon handling, non-reservation semantics, and the address caveat. Nothing an agent needs to invoke it correctly is missing.

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 coverage is 100%, so the baseline is 3, but the description goes further by explaining that coupon_code is priced into the signed total only when it applies, that a non-applicable or unissued code leaves price unchanged, and that quote_id is echoed unchanged and not checked against current pricing. These semantics are not fully captured by the field descriptions alone.

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 — it returns a link that opens checkout for one home, dates, party size and rate — and pins its scope by tying it to 'the same stay, rate and attribution as a live quote's booking_url' with a freshly signed token. That framing lets an agent distinguish it from get_live_quote without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the link is equivalent to and that it carries a fresh quote token, which implies it is the hand-off step after a quote, but it never states when to prefer this over get_live_quote or any explicit when-not condition. Usage is inferable rather than spelled out.

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