Skip to main content
Glama

Get host booking link

get_booking_link
Read-onlyIdempotent

Get a currently published property's host destination, reviewed bookingCapabilities and matching handoff instructions. Request-only homes accept a booking request; price-only readers cannot confirm availability. Unknown or expired capabilities never promise online quotes or checkout. Open the destination for the host's booking options. This tool never creates a reservation or takes payment. Set includeCapabilities:true to inspect the current host capability. bookingStatus=requires_host_confirmation describes Chucho's handoff, not proof of manual host approval. A quote capability does not establish instant booking; say when the host's confirmation method is unknown. After displaying cards, default to 1–3 short sentences, usually under 60 words unless the traveler requests a detailed comparison: explain a helpful fit or next choice, and include only a material price/availability caveat or a necessary question. Do not repeat result counts, card facts or the home list unless the traveler asks for a textual comparison. Do not narrate tools called or not called, backend mechanics, or your process. Keep operational checks internal; disclose material uncertainty and pricing assumptions plainly when they affect the traveler’s decision.

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": {
      "id": "<id>"
    },
    "name": "get_booking_link"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYes
localeNoen
currencyNoPreferred ISO 4217 currency, e.g. USD, EUR or NOK. Rough nightly estimates use approximate conversions (USD by default) when a fresh rate is supported; otherwise retain the host currency. Dated quotes depend on host support: always inspect the returned currency. May be supplied without dates for browsing.
includeCapabilitiesNoSet true to include the current host bookingCapabilities. Use for questions about booking methods, price checks or host approval. Missing or expired evidence remains unknown.

Output Schema

NameRequiredDescriptionDefault
actionYes
bookingUrlYes
propertyIdYes
instructionsYes
propertyNameYes
bookingStatusYes
bookingProviderYes
reservationCreatedYes
bookingCapabilitiesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / currency
      Added value: +{
      +  "description": "Preferred ISO 4217 currency, e.g. USD, EUR or NOK. Rough nightly estimates use approximate conversions (USD by default) when a fresh rate is supported; otherwise retain the host currency. Dated quotes depend on host support: always inspect the returned currency. May be supplied without dates for browsing.",
      +  "pattern": "^[A-Z]{3}$",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / includeCapabilities
      Added value: +{
      +  "const": true,
      +  "description": "Set true to include the current host bookingCapabilities. Use for questions about booking methods, price checks or host approval. Missing or expired evidence remains unknown.",
      +  "type": "boolean"
      +}
  3. Changed6 schema fields changed
    • removedOutput schema / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / action / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / action / properties / @type / const
      Removed value: -"ReserveAction"
    • addedOutput schema / properties / action / properties / @type / enum
      Added value: +[
      +  "CommunicateAction",
      +  "ViewAction",
      +  "ReserveAction"
      +]
    • removedOutput schema / properties / action / properties / target / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / bookingCapabilities
      Added value: +{
      +  "properties": {
      +    "expiresAt": {
      +      "type": "number"
      +    },
      +    "mode": {
      +      "enum": [
      +        "request",
      +        "quote",
      +        "price",
      +        "unknown",
      +        "unsupported"
      +      ],
      +      "type": "string"
      +    },
      +    "verifiedAt": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "mode"
      +  ],
      +  "type": "object"
      +}
  4. Added

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare a safe, idempotent, closed-world read, and the description goes beyond them with genuinely non-obvious semantics: expired/unknown capabilities never promise checkout, bookingStatus=requires_host_confirmation is a handoff rather than verified host approval, and a quote capability does not imply instant booking. Those caveats materially change how an agent interprets results. It stops short of 5 because it omits what the tool actually returns (a URL? a card payload?) and whether destinations expire.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Roughly two-thirds of the text is output-style coaching — 'default to 1–3 short sentences, usually under 60 words', 'do not narrate tools called', 'keep operational checks internal' — which is presentation policy, not tool-selection or invocation information, and would apply equally to every sibling. The genuine purpose and caveats are front-loaded, but the bulk of the remainder does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With rich annotations and a full output schema, the description does not need to explain returns, so the main burden is selection and caveat handling — both partially covered. What is missing is the practical shape of the operation: whether 'open the destination' means the caller receives a URL, whether the link is single-use or time-limited, and why the tool mentions 'displaying cards' at all when the schema only takes an id, locale, currency, and a capability flag.

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?

At 50% schema coverage the schema handles `currency` and `includeCapabilities`, and the description reinforces `includeCapabilities:true` purpose and the 'missing or expired evidence remains unknown' fallback. But `id` (the only required parameter, 1–160 chars) and `locale` (en/es) get no explanation in either the schema or the description, so the description only partially compensates for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb and resource set — 'host destination, reviewed bookingCapabilities and matching handoff instructions' for a published property — which is more precise than the name 'get_booking_link' alone suggests. It also draws a line against enquiry/quote behaviour ('never creates a reservation or takes payment'), though it never names the sibling that does (e.g. prepare_enquiry, get_stay_quote), so an agent still has to infer the boundary.

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?

There is conditional context ('Request-only homes accept a booking request; price-only readers cannot confirm availability') and one parameter-level nudge ('Set includeCapabilities:true to inspect the current host capability'), which implies when the tool is appropriate. However, no alternative tool is ever named and there are no prerequisites or exclusions telling the agent when to pick get_property, get_stay_quote, or get_enquiry_form instead.

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