Skip to main content
Glama

Das Landhaus Apartments Prägant

Server Details

Live availability, rates and offers: Das Landhaus Apartments Prägant, Bad Kleinkirchheim, Austria.

Ownership verified
Status
Healthy
Uptime
99.9% over 41 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.4/5.0

Scored across 11 tools

Disambiguation4/5

The data tools and their render_* counterparts intentionally overlap because each render tool shows the same information as its data counterpart in a visual card. The descriptions very clearly explain when to use which, so misselection risk is low, but the paired duplication keeps it from being perfectly distinct.

Naming Consistency4/5

Most tools follow a consistent snake_case verb_noun pattern with clear get_*, check_*, and render_* prefixes. Minor asymmetry exists because visual counterparts are not always named after the same noun (e.g. get_region_info vs render_house_photos, get_apartment_details vs render_apartment_gallery).

Tool Count5/5

Eleven tools are well within a reasonable range for a focused apartment-booking information server. Each tool has a clear role: core data retrieval, booking-link generation, or visual card rendering for clients that can display cards.

Completeness5/5

The surface covers the full guest inquiry lifecycle: exact availability and pricing, month-level rate overviews, apartment details, offers, region/house information, booking links, and visual versions for each major content type. No obvious operational gaps remain for a read-only booking-information connector.

Available Tools

11 tools
check_availabilityCheck AvailabilityA
Read-only
Inspect

Check live availability and exact prices at Landhaus Apartments Prägant for concrete dates and a party.

Use this whenever a guest names dates — it is the main tool. It applies the booking rules (arrival days, minimum stay, closures), recommends the apartment that suits the party best (with reasons, e.g. 2 separate bedrooms for families) and lists the free apartments with the total split into stay, final cleaning and tourist tax, the payment and cancellation terms, the website offers valid for the stay and a pre-filled booking link per apartment. If the wish is not bookable it returns the nearest bookable alternative dates with prices instead; parties larger than one apartment get a combination of apartments. Ask for dates, number of adults and the ages of all children first — never assume them. Not for: prices of a whole month without dates (get_rates), apartment descriptions (get_apartment_details). To show the result visually, call render_availability_card with the same arguments.

Behaviour: read-only, nothing is booked or reserved, no personal data. Live from the property's booking system (typically 1-2 s, identical requests cached 90 s). Invalid input returns isError with the reason. Returns a text summary plus structuredContent (status, apartments with breakdown and booking_url, alternatives, group, terms, offers, inquiry_url).

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

NameRequiredDescription
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

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description discloses that nothing is booked or reserved, no personal data is involved, the data is live from the booking system, typical latency is 1-2 seconds, identical requests are cached for 90 seconds and invalid input returns isError with a reason. It also summarizes the return shape and includes alternatives, group planning, terms, offers and booking links.

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?

The description is long but appropriately structured for a complex booking-availability tool. It is front-loaded with the core purpose, then covers exclusions, visual rendering, behaviour and return content in distinct, skimmable sentences.

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?

Given the tool's complexity and the presence of an output schema, the description is complete enough for correct invocation. It covers purpose, required guest inputs, exclusions, alternatives, group handling, performance, caching, error behaviour and the main structured return fields.

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 the schema already documents all five parameters thoroughly. The description adds useful operational meaning by emphasizing that dates, adult count and all children's ages must be requested from the guest and never assumed, which goes beyond the schema's field-level descriptions.

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 description states a specific verb and resource: checking live availability and exact prices for concrete dates and a party. It clearly distinguishes itself from siblings by naming get_rates and get_apartment_details as not-for cases and render_availability_card as the visual follow-up.

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?

It explicitly says to use this whenever a guest names dates and calls it the main tool. It gives a clear exclusion for month-level prices and apartment descriptions, and instructs the agent to collect dates, adults and children's ages before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_apartment_detailsGet Apartment DetailsA
Read-only
Inspect

Describe one or all apartments: size, bedrooms, maximum guests, description and page link.

Use for questions about the apartments themselves ("how big is #16?", "which apartment has 2 bedrooms?", "which apartments fit 5 people?"). It contains no prices or availability — use check_availability for dates and prices, or get_rates for a month overview. Studio #17 is only listed when asked for by number and is marked as bookable on request. Visual version with photos: render_apartment_gallery. Behaviour: read-only; facts as maintained on praegant.net (synced hourly), answers in milliseconds. Returns text plus structuredContent.apartments (nr, name, m2, bedrooms, max_guests, description, url, on_request, images, and where maintained: beds, outdoor, notes, recommended_for). An unknown number returns the list of existing apartment numbers.

NameRequiredDescriptionDefault
nameNoApartment number such as '12' or '#16'; empty or 'all' = all online-bookable apartments; '17' = Studio #17 (on request only)
languageNoAnswer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.de

Output Schema

NameRequiredDescription
languageNo
apartmentsNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds valuable operational context: facts are synced hourly from praegant.net, answers are returned in milliseconds, Studio #17 is only listed when asked for by number and marked bookable on request, and unknown numbers return the list of existing apartment numbers.

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?

The description is front-loaded with purpose, then moves efficiently through use cases, alternatives, special-case handling, visual equivalent, behavioral guarantees, return shape, and unknown-number behavior. It is dense but every sentence supplies routing or behavioral value.

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 fully explained, yet the description still summarizes structuredContent.apartments and covers data freshness, latency, alternatives, and edge cases. For a two-parameter read-only lookup tool, nothing important 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 structured parameter descriptions already do most of the work. The description still adds meaning beyond the schema by explaining 'all' vs '#17' behavior and the unknown-number fallback, though it does not add much about the 'language' parameter beyond what the schema already states.

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 ('Describe') and resource ('apartments'), enumerates the returned facts (size, bedrooms, max guests, description, page link), and explicitly distinguishes itself from check_availability, get_rates, and render_apartment_gallery. An agent can tell exactly what this tool does and which sibling to use for prices or visuals.

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?

Provides concrete example questions ('how big is #16?', 'which apartments fit 5 people?'), states it contains no prices or availability, and routes date/price questions to check_availability and month overviews to get_rates. It also calls out the Studio #17 on-request-only exception, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_offersGet OffersA
Read-only
Inspect

List all current seasonal offers and packages published on praegant.net.

Use when the guest asks about deals, packages or what is special in a season, independent of dates. When the guest already has dates, check_availability includes only the offers valid for that stay — no need to call both. Visual version: render_offers_card. Behaviour: read-only; offers as published on the website (synced hourly, expired ones removed). Returns text plus structuredContent.offers (title, valid_from, valid_to, price_text, summary, url).

NameRequiredDescriptionDefault
languageNoAnswer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.de

Output Schema

NameRequiredDescription
offersNotitle, valid_from, valid_to, price_text, summary, season, url, includes, image
languageNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/destructive, yet the description still adds real context beyond them: offers are 'as published on the website (synced hourly, expired ones removed)', which tells the agent about freshness and why an offer may be missing. It also discloses the return shape (text plus structuredContent.offers). Not a 5 only because it restates 'read-only' redundantly and says nothing about what happens when no offers are published.

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?

Front-loaded with purpose, then usage, then routing, then behaviour, then returns — each line carries distinct information with no filler. Dense but every sentence earns its place.

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

Completeness4/5

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

Covers selection criteria, sibling routing, freshness semantics and returned fields, which is more than enough for a zero-required-param list tool. Minor gap: no indication of behaviour when nothing is currently published (empty list vs. error), which matters slightly more here than a normal read since the description itself mentions expiry pruning.

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?

Only one optional parameter and its schema description already covers the 'de'/'en' default and the text/card language consistency at 100% coverage. The tool description itself adds no parameter guidance, so the baseline 3 applies rather than a higher score.

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?

Specific verb + resource ('List all current seasonal offers and packages') with the source named (praegant.net). It explicitly differentiates itself from two siblings by name, check_availability for date-scoped use and render_offers_card for the visual variant.

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?

States the triggering condition ('guest asks about deals, packages or what is special in a season, independent of dates') and the exclusion ('when the guest already has dates, check_availability... no need to call both'). The visual alternative render_offers_card is also named, so routing is fully determined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ratesGet RatesA
Read-only
Inspect

Get the price level of each apartment for a whole month plus that month's booking rules.

Use when the guest has no exact dates yet ("what does a week in July cost?", "when is it cheapest?"). For each apartment it returns the lowest total price of a real reference stay in that month (usually 7 nights, incl. final cleaning and tourist tax) and the arrival days / minimum stay / closures of the month. Not for exact prices on specific dates — use check_availability for that. Visual version: render_rates_card with the same arguments. Behaviour: read-only, live from the booking system (about 1-2 s, cached 5 min). Returns text plus structuredContent (apartments, periods, weeks, perks, offers).

NameRequiredDescriptionDefault
monthNoMonth as '2027-07', 'July', 'Juli 2027'; empty = next month
adultsNoAdults sharing one apartment (1-5)
guestsNoDeprecated alias of adults (clients before 2.2.0); 0 = unused
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

Output Schema

NameRequiredDescription
monthNoYYYY-MM
perksNo
weeksNoSearched reference stays with all prices
adultsNo
offersNo
statusNook, closed, fully_booked or not_released
periodsNoBooking rules: from, to, closed, min_nights, arrival_weekdays
languageNo
apartmentsNoPer apartment: nr, name, lowest total EUR, nights, check_in/check_out of that reference stay
child_agesNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover the read-only safety profile, and the description adds genuinely new context: the data is live from the booking system, takes about 1-2 s, is cached 5 minutes, and returns both text and structuredContent with named sections (apartments, periods, weeks, perks, offers). That is meaningful operational context beyond the annotations.

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?

Front-loaded with the core purpose, then use cases, then the exclusion and alternative, then behaviour and latency. Every sentence carries information the agent would otherwise lack; there is no filler.

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?

For a read-only lookup with a full schema and an output schema, the description covers purpose, selection criteria, alternatives, return shape, and latency/caching. Nothing needed 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter already carries format examples ('2027-07', 'July', '8,15'), the deprecated-alias note, and the children/tourist-tax rule. The description adds no parameter-level detail beyond the schema, so the baseline 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 ('get the price level of each apartment for a whole month plus that month's booking rules') and pins down exactly what is returned (lowest total price of a reference stay, arrival days, minimum stay, closures). This is clearly distinguishable from check_availability (exact dates) and render_rates_card (visual version).

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?

Explicit when-to-use with concrete guest utterances ("what does a week in July cost?"), an explicit when-not ('Not for exact prices on specific dates — use check_availability for that'), and a stated alternative for the visual variant (render_rates_card with the same arguments). 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.

get_region_infoGet Region InformationA
Read-only
Inspect

Return curated information about Bad Kleinkirchheim and the house for a topic.

Use for "what can we do there?" and house questions: house rules and services (self-catering, no breakfast, bread-roll service, no pets, baby cot/high chair on request, chip access), skiing (winter), hiking, biking and lakes (summer), thermal spas and the in-house sauna (wellness), golf incl. the free green fee and tee-time booking, families, workation, arrival. The Kärnten Card (summer only) and the free green fee are explained exactly. Not for prices or availability (check_availability) and not for apartment facts (get_apartment_details). Behaviour: read-only, static curated content from the property (no web search), instant; topics 'house' and 'wellness' also list the property's official house photos (sauna, steam bath, relaxation room …) — to show them, call render_house_photos, never a web image search (other businesses share the 'Prägant' name). Returns text plus structuredContent.topics (topic, lines), photos (kind, url, caption) and contact details.

NameRequiredDescriptionDefault
topicNoOne of house (self-catering, bread rolls, pets, baby cot, chip access), winter, summer, wellness, golf, family, workation, arrival (aliases like 'ski', 'hund', 'breakfast', 'anreise' work); empty = overview
languageNoAnswer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.de

Output Schema

NameRequiredDescription
emailNo
phoneNo
topicsNoSections: topic, lines
languageNo

TDQS

A4.8/5.0
Behavior5/5

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

The annotations already declare read-only, non-destructive, closed-world behavior, and the description adds substantial context beyond that: static curated content, no web search, instant response, photo behavior for 'house' and 'wellness', and the shape of returned text plus structuredContent. These details are consistent with the annotations and materially help invocation.

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?

The description is front-loaded with purpose and usage, then proceeds to behavior and return details, so an agent can stop reading early if needed. It is somewhat long due to the full topic inventory, but the detail is mostly useful rather than 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?

Given the annotations, output schema, and sibling tools, the description is complete enough to call correctly. It covers when to use it, when not to, photo rendering behavior, and what the response contains, leaving no major gaps for an agent.

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 description coverage is 100%, so the baseline is 3, but the description adds meaningful topic semantics by explaining what categories like house services, skiing, wellness, golf, and arrival cover. It does not describe the language parameter, but the schema already handles that fully.

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 description states a specific verb and resource: returning curated information about Bad Kleinkirchheim and the house for a topic. It explicitly distinguishes itself from sibling tools check_availability and get_apartment_details, so an agent can select it without opening other schemas.

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?

It names concrete use cases such as 'what can we do there?' and house questions, then explicitly excludes prices/availability and apartment facts while pointing to the correct alternatives. It also gives a specific workflow for showing house photos via render_house_photos rather than a web image search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_availability_cardShow Availability CardA
Read-only
Inspect

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.

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

NameRequiredDescription
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

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.

render_house_photosShow House PhotosA
Read-only
Inspect

Show the property's official photos of the house as an interactive card in the chat.

Use when the guest wants to SEE the house, the sauna/wellness area or the outside of the building — instead of a web image search, which finds other businesses named 'Prägant'. Same behaviour (read-only) and result as get_region_info for the topic, plus the photos in the card.

NameRequiredDescriptionDefault
topicNo'house' = all official house photos (outside view summer/winter, sauna, steam bath, relaxation room …); 'wellness' = only the wellness roomshouse
languageNoAnswer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.de

Output Schema

NameRequiredDescription
emailNo
phoneNo
topicsNoSections: topic, lines
languageNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context by saying the result is an interactive card and that it behaves like get_region_info for the topic plus photos. It does not discuss empty results or output details, but the output schema exists.

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?

The description is front-loaded with the core action, followed by usage guidance and a useful comparison to avoid a bad web-search fallback. Every sentence adds value, and there is no redundant padding.

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

Completeness4/5

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

For a low-complexity, two-parameter read-only tool with full schema coverage and an output schema, the description is largely complete: it explains what is shown, when to use it, and how it relates to get_region_info. The main gap is that it does not address the nearby render_apartment_gallery sibling, which could matter for disambiguation.

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%, so both the topic and language parameters are already documented in the schema. The description reinforces the house/wellness/outside topic scope but adds no syntax or format details beyond what the schema provides, making the baseline 3 appropriate.

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 description states a specific verb and resource: showing the property's official house photos as an interactive chat card. It distinguishes the tool from web image search and clarifies its relationship to get_region_info, but does not explicitly differentiate it from the sibling render_apartment_gallery.

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 usage trigger: when the guest wants to SEE the house, sauna/wellness area, or building exterior, rather than using a web image search. It also names get_region_info as a comparable tool, but it does not explicitly state when to prefer render_apartment_gallery instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_offers_cardShow Offers CardA
Read-only
Inspect

Show the current website offers as an interactive card with photos and links.

Use instead of get_offers when the guest wants to browse the offers visually. Same behaviour (read-only) and result as get_offers, plus a photo per offer.

NameRequiredDescriptionDefault
languageNoAnswer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.de

Output Schema

NameRequiredDescription
offersNotitle, valid_from, valid_to, price_text, summary, season, url, includes, image
languageNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful context by asserting behavioural and result parity with get_offers plus one photo per offer, which lets the agent reason about output shape. It does not say whether the card replaces a previously rendered card or how interaction is handled, which keeps it below a 5.

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?

Two short sentences with zero waste; the equivalence to get_offers and the visual differentiator are front-loaded ahead of any alternative-routing language.

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?

This is a low-complexity, zero-required-parameter render tool with a fully documented schema and an output schema, so the description need not explain return values. Nothing an agent needs in order to choose and call it correctly 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 single language parameter is fully documented in the schema, including the de/en options, default, and the requirement that text and card share a language. The description adds no parameter meaning beyond that, so the baseline 3 is appropriate.

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 current website offers as an interactive card with photos and links. It also explicitly distinguishes itself from the sibling get_offers by describing the added value (photos) and card form, so an agent can tell the two apart without opening a 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 an explicit selection rule: use instead of get_offers when the guest wants to browse offers visually. The alternative is named and the condition that selects it is stated, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_rates_cardShow Rates CardA
Read-only
Inspect

Show a month's prices and booking rules as an interactive card in the chat.

Use instead of get_rates when the guest wants to see the overview; each apartment line can be tapped to check its dates. Use get_rates when only the data is needed. Same arguments, behaviour (read-only, live) and result as get_rates.

NameRequiredDescriptionDefault
monthNoMonth as '2027-07', 'July', 'Juli 2027'; empty = next month
adultsNoAdults sharing one apartment (1-5)
guestsNoDeprecated alias of adults (clients before 2.2.0); 0 = unused
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

Output Schema

NameRequiredDescription
monthNoYYYY-MM
perksNo
weeksNoSearched reference stays with all prices
adultsNo
offersNo
statusNook, closed, fully_booked or not_released
periodsNoBooking rules: from, to, closed, min_nights, arrival_weekdays
languageNo
apartmentsNoPer apartment: nr, name, lowest total EUR, nights, check_in/check_out of that reference stay
child_agesNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/openWorldHint=false, and the description reinforces them while adding genuinely new context: the data is live, the card is interactive with tappable apartment lines, and behaviour/result are identical to get_rates. It stops short of noting any fallback when a client cannot render cards, which is the one behavioral gap left.

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?

Two short paragraphs, the primary purpose front-loaded in the first sentence, and the routing rule in the second. No filler; every clause either states the purpose, the alternative, or the behavioural equivalence.

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

Completeness4/5

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

An output schema and full parameter documentation mean the description needn't explain return values, and annotations cover the safety profile. It is nearly complete for a 5-param rendering tool; only an edge case such as non-card-capable clients is unaddressed.

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%, including formats for month, the children age semantics, and the deprecated guests alias, so the schema does the heavy lifting. The description only adds the cross-reference 'same arguments as get_rates', which is a convenience pointer rather than new parameter meaning.

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 a month's prices and booking rules as an interactive card') and immediately delimits it from the sibling get_rates. An agent can tell the rendering tool apart from the data tool 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?

Explicitly names the alternative and the condition that selects it: use this when the guest wants the overview with tappable apartment lines, use get_rates when only the data is needed. Both the when and the when-not are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updates
    • Changedcheck_availability1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_apartment_details1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_booking_link2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedOutput schema / properties / on_request
        Added value: +{
        +  "description": "True = this apartment is enquiry only; there is no booking_url",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
    • Changedget_offers1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_rates1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_region_info2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / description
        Previous value: -"Result of get_region_info."New value: +"Result of get_region_info / render_house_photos."
    • Changedrender_apartment_gallery1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedrender_availability_card1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedrender_house_photos
    • Changedrender_offers_card1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedrender_rates_card1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
  2. 2 tool updates
    • Changedcheck_availability1 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"
        +  ]
        +}
    • Changedrender_availability_card1 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. 2 tool updates
    • Changedcheck_availability1 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}"
    • Changedrender_availability_card1 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. 2 tool updates
    • Changedcheck_availability2 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"
        +  ]
        +}
    • Changedrender_availability_card2 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. 1 tool update
    • Changedget_region_info2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"One of winter, summer, wellness, golf, family, workation, arrival (aliases like 'ski', 'wandern', 'anreise' work); empty = overview"New value: +"One of house (self-catering, bread rolls, pets, baby cot, chip access), winter, summer, wellness, golf, family, workation, arrival (aliases like 'ski', 'hund', 'breakfast', 'anreise' work); empty = overview"
      • addedInput schema / properties / topic / examples
        Added value: +[
        +  "house",
        +  "golf",
        +  "winter"
        +]
  6. 10 tool updates
    • Changedcheck_availability6 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"
        +}
    • Changedget_apartment_details3 fields changed
      • 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."
      • changedInput schema / properties / name / description
        Previous value: -"Apartment number, e.g. '12' or '#16'; empty = all apartments"New value: +"Apartment number such as '12' or '#16'; empty or 'all' = all online-bookable apartments; '17' = Studio #17 (on request only)"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "ApartmentInfo": {
        +      "properties": {
        +        "bedrooms": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        },
        +        "description": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "images": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        },
        +        "m2": {
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "max_guests": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        },
        +        "name": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "nr": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "on_request": {
        +          "description": "True = not bookable online, enquiry only",
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "photos": {
        +          "description": "JPEG data URIs (render tool only)",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        },
        +        "url": {
        +          "description": "Apartment page, or the enquiry form for on-request apartments",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "description": "Result of get_apartment_details / render_apartment_gallery.",
        +  "properties": {
        +    "apartments": {
        +      "items": {
        +        "$ref": "#/$defs/ApartmentInfo"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "language": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_booking_link7 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 / apartment / description
        Previous value: -"Apartment number, e.g. '12' or '#16'; empty = all apartments"New value: +"Apartment number such as '12' or '#16'; empty or 'all' = all online-bookable apartments; '17' = Studio #17 (on request only)"
      • addedInput schema / properties / check_in / description
        Added value: +"Optional date YYYY-MM-DD; leave empty for the plain booking page"
      • addedInput schema / properties / check_out / description
        Added value: +"Optional date YYYY-MM-DD; leave empty for the plain booking page"
      • 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 get_booking_link.",
        +  "properties": {
        +    "adults": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "booking_url": {
        +      "description": "Booking page on praegant.net, pre-filled when dates are given",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "check_in": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "check_out": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "child_ages": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "email": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "inquiry_url": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "language": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "phone": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_offers2 fields changed
      • 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 get_offers / render_offers_card.",
        +  "properties": {
        +    "language": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "offers": {
        +      "description": "title, valid_from, valid_to, price_text, summary, season, url, includes, image",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_rates6 fields changed
      • changedInput schema / properties / adults / description
        Previous value: -"Adults in one apartment"New value: +"Adults sharing one apartment (1-5)"
      • 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 / guests / description
        Previous value: -"Deprecated alias of adults (clients before 2.2.0)"New value: +"Deprecated alias of adults (clients before 2.2.0); 0 = unused"
      • 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."
      • changedInput schema / properties / month / description
        Previous value: -"e.g. '2027-07', 'July', 'Juli 2027'; empty = next month"New value: +"Month as '2027-07', 'July', 'Juli 2027'; empty = next month"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "description": "Result of get_rates / render_rates_card.",
        +  "properties": {
        +    "adults": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "apartments": {
        +      "description": "Per apartment: nr, name, lowest total EUR, nights, check_in/check_out of that reference stay",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "child_ages": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "language": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "month": {
        +      "description": "YYYY-MM",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "offers": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "periods": {
        +      "description": "Booking rules: from, to, closed, min_nights, arrival_weekdays",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "perks": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "status": {
        +      "description": "ok, closed, fully_booked or not_released",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "weeks": {
        +      "description": "Searched reference stays with all prices",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_region_info3 fields changed
      • 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."
      • changedInput schema / properties / topic / description
        Previous value: -"winter, summer, wellness, golf, family, workation, arrival — empty for an overview"New value: +"One of winter, summer, wellness, golf, family, workation, arrival (aliases like 'ski', 'wandern', 'anreise' work); empty = overview"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "description": "Result of get_region_info.",
        +  "properties": {
        +    "email": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "language": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "phone": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "topics": {
        +      "description": "Sections: topic, lines",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrender_apartment_gallery3 fields changed
      • 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."
      • changedInput schema / properties / name / description
        Previous value: -"Apartment number, e.g. '12' or '#16'; empty = all apartments"New value: +"Apartment number such as '12' or '#16'; empty or 'all' = all online-bookable apartments; '17' = Studio #17 (on request only)"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "ApartmentInfo": {
        +      "properties": {
        +        "bedrooms": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        },
        +        "description": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "images": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        },
        +        "m2": {
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "max_guests": {
        +          "type": [
        +            "integer",
        +            "null"
        +          ]
        +        },
        +        "name": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "nr": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "on_request": {
        +          "description": "True = not bookable online, enquiry only",
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "photos": {
        +          "description": "JPEG data URIs (render tool only)",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        },
        +        "url": {
        +          "description": "Apartment page, or the enquiry form for on-request apartments",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "description": "Result of get_apartment_details / render_apartment_gallery.",
        +  "properties": {
        +    "apartments": {
        +      "items": {
        +        "$ref": "#/$defs/ApartmentInfo"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "language": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrender_availability_card6 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"
        +}
    • Changedrender_offers_card2 fields changed
      • 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 get_offers / render_offers_card.",
        +  "properties": {
        +    "language": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "offers": {
        +      "description": "title, valid_from, valid_to, price_text, summary, season, url, includes, image",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrender_rates_card6 fields changed
      • changedInput schema / properties / adults / description
        Previous value: -"Adults in one apartment"New value: +"Adults sharing one apartment (1-5)"
      • 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 / guests / description
        Previous value: -"Deprecated alias of adults (clients before 2.2.0)"New value: +"Deprecated alias of adults (clients before 2.2.0); 0 = unused"
      • 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."
      • changedInput schema / properties / month / description
        Previous value: -"e.g. '2027-07', 'July', 'Juli 2027'; empty = next month"New value: +"Month as '2027-07', 'July', 'Juli 2027'; empty = next month"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "description": "Result of get_rates / render_rates_card.",
        +  "properties": {
        +    "adults": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "apartments": {
        +      "description": "Per apartment: nr, name, lowest total EUR, nights, check_in/check_out of that reference stay",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "child_ages": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "language": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "month": {
        +      "description": "YYYY-MM",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "offers": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "periods": {
        +      "description": "Booking rules: from, to, closed, min_nights, arrival_weekdays",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "perks": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "status": {
        +      "description": "ok, closed, fully_booked or not_released",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "weeks": {
        +      "description": "Searched reference stays with all prices",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
  7. 10 tool updates
    • Changedcheck_availability7 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"
    • Changedget_apartment_details2 fields changed
      • addedInput schema / properties / language / description
        Added value: +"'de' (default) or 'en' — the language of the conversation"
      • addedInput schema / properties / name / description
        Added value: +"Apartment number, e.g. '12' or '#16'; empty = all apartments"
    • Changedget_booking_link7 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 / apartment / description
        Added value: +"Apartment number, e.g. '12' or '#16'; empty = all apartments"
      • 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"
      • changedOutput schema / (root)
        Previous value: -{
        -  "properties": {
        -    "result": {
        -      "title": "Result",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "result"
        -  ],
        -  "title": "get_booking_linkOutput",
        -  "type": "object"
        -}New value: +null
    • Changedget_offers1 field changed
      • addedInput schema / properties / language / description
        Added value: +"'de' (default) or 'en' — the language of the conversation"
    • Changedget_rates8 fields changed
      • addedInput schema / properties / adults
        Added value: +{
        +  "default": 2,
        +  "description": "Adults in one apartment",
        +  "maximum": 5,
        +  "minimum": 1,
        +  "title": "Adults",
        +  "type": "integer"
        +}
      • addedInput schema / properties / children
        Added value: +{
        +  "default": "",
        +  "description": "Ages of ALL children 0–17, comma-separated, e.g. '8,15'. Empty if none. Ages matter for price and tourist tax.",
        +  "title": "Children",
        +  "type": "string"
        +}
      • changedInput schema / properties / guests / default
        Previous value: -2New value: +0
      • addedInput schema / properties / guests / description
        Added value: +"Deprecated alias of adults (clients before 2.2.0)"
      • addedInput schema / properties / guests / maximum
        Added value: +5
      • addedInput schema / properties / guests / minimum
        Added value: +0
      • addedInput schema / properties / language / description
        Added value: +"'de' (default) or 'en' — the language of the conversation"
      • addedInput schema / properties / month / description
        Added value: +"e.g. '2027-07', 'July', 'Juli 2027'; empty = next month"
    • Changedget_region_info3 fields changed
      • addedInput schema / properties / language
        Added value: +{
        +  "default": "de",
        +  "description": "'de' (default) or 'en' — the language of the conversation",
        +  "title": "Language",
        +  "type": "string"
        +}
      • addedInput schema / properties / topic / description
        Added value: +"winter, summer, wellness, golf, family, workation, arrival — empty for an overview"
      • changedOutput schema / (root)
        Previous value: -{
        -  "properties": {
        -    "result": {
        -      "title": "Result",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "result"
        -  ],
        -  "title": "get_region_infoOutput",
        -  "type": "object"
        -}New value: +null
    • Changedrender_apartment_gallery2 fields changed
      • addedInput schema / properties / language / description
        Added value: +"'de' (default) or 'en' — the language of the conversation"
      • addedInput schema / properties / name / description
        Added value: +"Apartment number, e.g. '12' or '#16'; empty = all apartments"
    • Changedrender_availability_card7 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"
    • Changedrender_offers_card1 field changed
      • addedInput schema / properties / language / description
        Added value: +"'de' (default) or 'en' — the language of the conversation"
    • Changedrender_rates_card8 fields changed
      • addedInput schema / properties / adults
        Added value: +{
        +  "default": 2,
        +  "description": "Adults in one apartment",
        +  "maximum": 5,
        +  "minimum": 1,
        +  "title": "Adults",
        +  "type": "integer"
        +}
      • addedInput schema / properties / children
        Added value: +{
        +  "default": "",
        +  "description": "Ages of ALL children 0–17, comma-separated, e.g. '8,15'. Empty if none. Ages matter for price and tourist tax.",
        +  "title": "Children",
        +  "type": "string"
        +}
      • changedInput schema / properties / guests / default
        Previous value: -2New value: +0
      • addedInput schema / properties / guests / description
        Added value: +"Deprecated alias of adults (clients before 2.2.0)"
      • addedInput schema / properties / guests / maximum
        Added value: +5
      • addedInput schema / properties / guests / minimum
        Added value: +0
      • addedInput schema / properties / language / description
        Added value: +"'de' (default) or 'en' — the language of the conversation"
      • addedInput schema / properties / month / description
        Added value: +"e.g. '2027-07', 'July', 'Juli 2027'; empty = next month"

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources