Skip to main content
Glama

Landhaus Apartments Prägant

Show Availability Card

render_availability_card
Read-only

Show the availability result for given dates and party as an interactive card in the chat.

Use after check_availability (or instead of it) when the guest wants to SEE the options: photos, total price with an expandable breakdown, a booking button per apartment, tappable alternative dates. Use check_availability alone when only reasoning over the data or when the client cannot display cards. Behaviour and arguments are identical to check_availability (read-only, live, nothing booked); the result additionally contains small photos and the Google rating. Returns the same text and structuredContent.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
adultsNoTOTAL number of guests aged 18+ in the whole party — also for groups larger than one apartment (the tool plans the apartments). Guests aged 0-17 go into children.
check_inYesArrival date YYYY-MM-DD, e.g. '2027-06-12'
childrenNoAges of ALL children 0-17, comma-separated, e.g. '8,15'; empty if none. Ages change price and tourist tax (charged from age 17).
languageNoAnswer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.de
check_outYesDeparture date YYYY-MM-DD (after check_in, max. 60 nights)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
groupNorooms[] (like apartments, plus adults, child_ages), total, booking_url (all apartments in ONE basket on praegant.net, up to 4 apartments; else null -> enquiry), alternative{total, nrs[], rooms[], booking_url}
perksNokaernten_card, greenfee (bool, for this arrival date)
queryNocheck_in, check_out, nights, adults, child_ages, persons
rulesNook, problems[], min_nights, period{from,to,min_nights,arrival_weekdays 0=Mon}
termsNodeposit_pct, deposit_method, deposit_due_days, balance, card_required, tax_pp_night, tax_min_age, free_cancel_until
offersNoWebsite offers valid during the stay: title, url, price_text
ratingNoGoogle rating, review_count (render tool only)
statusNook: apartments free; group: several apartments needed; rule_violation: arrival/departure day or minimum stay not allowed; closed; fully_booked; not_released: beyond published dates
languageNo
apartmentsNoFree apartments, recommended first, then cheapest: nr, match{recommended, reasons[]}, total (EUR, whole stay+party), breakdown{logis, cleaning, tourist_tax, tax_persons, deposit, balance, free_cancel_until} or null, facts{name, m2, bedrooms, max_guests, url, image, photo}, booking_url
inquiry_urlNoPre-filled non-binding enquiry form
unavailableNoFitting apartments already booked: nr, name
alternativesNoNearest bookable stays: check_in, check_out, nights, from_price, cheapest, apartments[], booking_url
next_arrivalNoEarliest bookable arrival on/after the wish for the same stay length and party (fully booked / closed only)
recommendationNoBest fit for this party: nr, reasons[] (two_bedrooms, cheapest, most_space, best_value, terrace, loggia, balcony), needs_two_bedrooms, comfortable

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / next_arrival
      Added value: +{
      +  "description": "Earliest bookable arrival on/after the wish for the same stay length and party (fully booked / closed only)",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed1 schema field changed
    • changedOutput schema / properties / group / description
      Previous value: -"rooms[] (like apartments, plus adults, child_ages), total, alternative"New value: +"rooms[] (like apartments, plus adults, child_ages), total, booking_url (all apartments in ONE basket on praegant.net, up to 4 apartments; else null -> enquiry), alternative{total, nrs[], rooms[], booking_url}"
  3. Changed2 schema fields changed
    • changedOutput schema / properties / apartments / description
      Previous value: -"Free apartments, cheapest first: nr, total (EUR, whole stay+party), breakdown{logis, cleaning, tourist_tax, tax_persons, deposit, balance, free_cancel_until} or null, facts{name, m2, bedrooms, max_guests, url, image, photo}, booking_url"New value: +"Free apartments, recommended first, then cheapest: nr, match{recommended, reasons[]}, total (EUR, whole stay+party), breakdown{logis, cleaning, tourist_tax, tax_persons, deposit, balance, free_cancel_until} or null, facts{name, m2, bedrooms, max_guests, url, image, photo}, booking_url"
    • addedOutput schema / properties / recommendation
      Added value: +{
      +  "description": "Best fit for this party: nr, reasons[] (two_bedrooms, cheapest, most_space, best_value, terrace, loggia, balcony), needs_two_bedrooms, comfortable",
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  4. Changed6 schema fields changed
    • changedInput schema / properties / adults / description
      Previous value: -"TOTAL adults (18+) of the whole party — also for groups larger than one apartment; the tool plans the apartments"New value: +"TOTAL number of guests aged 18+ in the whole party — also for groups larger than one apartment (the tool plans the apartments). Guests aged 0-17 go into children."
    • changedInput schema / properties / check_in / description
      Previous value: -"Arrival date YYYY-MM-DD"New value: +"Arrival date YYYY-MM-DD, e.g. '2027-06-12'"
    • changedInput schema / properties / check_out / description
      Previous value: -"Departure date YYYY-MM-DD"New value: +"Departure date YYYY-MM-DD (after check_in, max. 60 nights)"
    • changedInput schema / properties / children / description
      Previous value: -"Ages of ALL children 0–17, comma-separated, e.g. '8,15'. Empty if none. Ages matter for price and tourist tax."New value: +"Ages of ALL children 0-17, comma-separated, e.g. '8,15'; empty if none. Ages change price and tourist tax (charged from age 17)."
    • changedInput schema / properties / language / description
      Previous value: -"'de' (default) or 'en' — the language of the conversation"New value: +"Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "Result of check_availability / render_availability_card.",
      +  "properties": {
      +    "alternatives": {
      +      "description": "Nearest bookable stays: check_in, check_out, nights, from_price, cheapest, apartments[], booking_url",
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "apartments": {
      +      "description": "Free apartments, cheapest first: nr, total (EUR, whole stay+party), breakdown{logis, cleaning, tourist_tax, tax_persons, deposit, balance, free_cancel_until} or null, facts{name, m2, bedrooms, max_guests, url, image, photo}, booking_url",
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "group": {
      +      "description": "rooms[] (like apartments, plus adults, child_ages), total, alternative",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "inquiry_url": {
      +      "description": "Pre-filled non-binding enquiry form",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "language": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "offers": {
      +      "description": "Website offers valid during the stay: title, url, price_text",
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "perks": {
      +      "description": "kaernten_card, greenfee (bool, for this arrival date)",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "query": {
      +      "description": "check_in, check_out, nights, adults, child_ages, persons",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "rating": {
      +      "description": "Google rating, review_count (render tool only)",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "rules": {
      +      "description": "ok, problems[], min_nights, period{from,to,min_nights,arrival_weekdays 0=Mon}",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "status": {
      +      "description": "ok: apartments free; group: several apartments needed; rule_violation: arrival/departure day or minimum stay not allowed; closed; fully_booked; not_released: beyond published dates",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "terms": {
      +      "description": "deposit_pct, deposit_method, deposit_due_days, balance, card_required, tax_pp_night, tax_min_age, free_cancel_until",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "unavailable": {
      +      "description": "Fitting apartments already booked: nr, name",
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  5. Changed7 schema fields changed
    • addedInput schema / properties / adults / description
      Added value: +"TOTAL adults (18+) of the whole party — also for groups larger than one apartment; the tool plans the apartments"
    • addedInput schema / properties / adults / maximum
      Added value: +30
    • addedInput schema / properties / adults / minimum
      Added value: +1
    • addedInput schema / properties / check_in / description
      Added value: +"Arrival date YYYY-MM-DD"
    • addedInput schema / properties / check_out / description
      Added value: +"Departure date YYYY-MM-DD"
    • addedInput schema / properties / children / description
      Added value: +"Ages of ALL children 0–17, comma-separated, e.g. '8,15'. Empty if none. Ages matter for price and tourist tax."
    • addedInput schema / properties / language / description
      Added value: +"'de' (default) or 'en' — the language of the conversation"
  6. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/destructiveHint/openWorldHint, and the description adds real value on top: it confirms 'live, nothing booked', states that behaviour and arguments are identical to check_availability, and discloses the extra output (small photos, Google rating) plus the fact that text and structuredContent are the same. That is exactly the kind of context annotations cannot carry.

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

Conciseness5/5

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

Three tight sentences: what it is, when to use it vs the alternative, then behavioural/output equivalence. The routing decision is front-loaded and no sentence is redundant.

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?

Output schema exists and the description need not explain return values, yet it still usefully notes the card's extra content and the parity with check_availability's text/structuredContent. For a read-only rendering tool with full annotations and full schema coverage, nothing an agent needs is missing.

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% and the schema itself explains adults-vs-children counting, date formats, night limits and language defaults in detail. The description only says arguments are 'identical to check_availability', adding no semantics beyond the schema, so the baseline of 3 applies.

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 ('Show the availability result ... as an interactive card in the chat') and immediately distinguishes itself from the near-identical sibling check_availability by naming the rendering difference. An agent can pick between the two 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 Guidelines5/5

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

Gives explicit when-to-use ('when the guest wants to SEE the options'), when-not ('only reasoning over the data or when the client cannot display cards'), and names the alternative tool (check_availability) by name. Nothing is left to inference.

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