Skip to main content
Glama

Das 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

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

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
    • addedInput schema / additionalProperties
      Added value: +false
  2. 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"
      +  ]
      +}
  3. 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}"
  4. 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"
      +  ]
      +}
  5. 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"
      +}
  6. 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"
  7. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only/non-destructive/closed-world, yet the description still adds substantive context: behaviour and arguments are identical to check_availability, the data is live, nothing gets booked, and the result is enriched with small photos and the Google rating while returning the same text and structuredContent. That is exactly the kind of beyond-annotation disclosure that helps an agent predict the call's effect.

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?

Front-loaded with the action, then the routing rule, then behavioural equivalence. Every sentence carries information about either purpose, selection, or return content; it is slightly dense in the final sentence but not 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?

An output schema exists, so return values need not be spelled out, yet the description still summarises the enrichment and confirms text/structuredContent parity. For a read-only render tool with fully documented params, nothing an agent needs in order to call 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% and every parameter is well documented in the schema itself, so the baseline is 3. The description adds a cross-reference value the schema cannot — that arguments are identical to check_availability — which lets an agent reuse known argument semantics, though it adds no detail on individual fields.

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: render the availability result as an interactive card in the chat, with the exact interactive elements enumerated (photos, expandable price breakdown, per-apartment booking button, tappable alternative dates). It is explicitly distinguished from the closest sibling, check_availability, rather than being confused with it.

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 both branches of the routing decision: use this after check_availability (or instead of it) when the guest wants to SEE options, and use check_availability alone when only reasoning over data or when the client cannot display cards. That is an explicit when/when-not plus the named alternative.

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