Landhaus Apartments Prägant

Live availability, rates and offers for Landhaus Apartments Prägant in Bad Kleinkirchheim, Austria.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
92%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~6,039Tokens (tool definitions)
~5.2 KBTypical response size
Significant attention impact (4.72% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "landhaus": {
      "url": "https://mcp.praegant.net/mcp"
    }
  }
}

Remote endpoints

https://mcp.praegant.net/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_availability(check_in, check_out, adults, children, language)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "check_in": {
      "description": "Arrival date YYYY-MM-DD, e.g. '2027-06-12'",
      "title": "Check In",
      "type": "string"
    },
    "check_out": {
      "description": "Departure date YYYY-MM-DD (after check_in, max. 60 nights)",
      "title": "Check Out",
      "type": "string"
    },
    "adults": {
      "default": 2,
      "description": "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.",
      "maximum": 30,
      "minimum": 1,
      "title": "Adults",
      "type": "integer"
    },
    "children": {
      "default": "",
      "description": "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).",
      "title": "Children",
      "type": "string"
    },
    "language": {
      "default": "de",
      "description": "Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.",
      "title": "Language",
      "type": "string"
    }
  },
  "required": [
    "check_in",
    "check_out"
  ],
  "title": "check_availabilityArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "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"
      ]
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "query": {
      "description": "check_in, check_out, nights, adults, child_ages, persons",
      "type": [
        "object",
        "null"
      ]
    },
    "rules": {
      "description": "ok, problems[], min_nights, period{from,to,min_nights,arrival_weekdays 0=Mon}",
      "type": [
        "object",
        "null"
      ]
    },
    "perks": {
      "description": "kaernten_card, greenfee (bool, for this arrival date)",
      "type": [
        "object",
        "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"
      ]
    },
    "recommendation": {
      "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"
      ]
    },
    "apartments": {
      "description": "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",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "unavailable": {
      "description": "Fitting apartments already booked: nr, name",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "group": {
      "description": "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}",
      "type": [
        "object",
        "null"
      ]
    },
    "alternatives": {
      "description": "Nearest bookable stays: check_in, check_out, nights, from_price, cheapest, apartments[], booking_url",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "offers": {
      "description": "Website offers valid during the stay: title, url, price_text",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "inquiry_url": {
      "description": "Pre-filled non-binding enquiry form",
      "type": [
        "string",
        "null"
      ]
    },
    "next_arrival": {
      "description": "Earliest bookable arrival on/after the wish for the same stay length and party (fully booked / closed only)",
      "type": [
        "string",
        "null"
      ]
    },
    "rating": {
      "description": "Google rating, review_count (render tool only)",
      "type": [
        "object",
        "null"
      ]
    }
  },
  "description": "Result of check_availability / render_availability_card."
}
🟢render_availability_card(check_in, check_out, adults, children, language)

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

Input Schema

{
  "type": "object",
  "properties": {
    "check_in": {
      "description": "Arrival date YYYY-MM-DD, e.g. '2027-06-12'",
      "title": "Check In",
      "type": "string"
    },
    "check_out": {
      "description": "Departure date YYYY-MM-DD (after check_in, max. 60 nights)",
      "title": "Check Out",
      "type": "string"
    },
    "adults": {
      "default": 2,
      "description": "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.",
      "maximum": 30,
      "minimum": 1,
      "title": "Adults",
      "type": "integer"
    },
    "children": {
      "default": "",
      "description": "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).",
      "title": "Children",
      "type": "string"
    },
    "language": {
      "default": "de",
      "description": "Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.",
      "title": "Language",
      "type": "string"
    }
  },
  "required": [
    "check_in",
    "check_out"
  ],
  "title": "render_availability_cardArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "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"
      ]
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "query": {
      "description": "check_in, check_out, nights, adults, child_ages, persons",
      "type": [
        "object",
        "null"
      ]
    },
    "rules": {
      "description": "ok, problems[], min_nights, period{from,to,min_nights,arrival_weekdays 0=Mon}",
      "type": [
        "object",
        "null"
      ]
    },
    "perks": {
      "description": "kaernten_card, greenfee (bool, for this arrival date)",
      "type": [
        "object",
        "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"
      ]
    },
    "recommendation": {
      "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"
      ]
    },
    "apartments": {
      "description": "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",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "unavailable": {
      "description": "Fitting apartments already booked: nr, name",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "group": {
      "description": "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}",
      "type": [
        "object",
        "null"
      ]
    },
    "alternatives": {
      "description": "Nearest bookable stays: check_in, check_out, nights, from_price, cheapest, apartments[], booking_url",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "offers": {
      "description": "Website offers valid during the stay: title, url, price_text",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "inquiry_url": {
      "description": "Pre-filled non-binding enquiry form",
      "type": [
        "string",
        "null"
      ]
    },
    "next_arrival": {
      "description": "Earliest bookable arrival on/after the wish for the same stay length and party (fully booked / closed only)",
      "type": [
        "string",
        "null"
      ]
    },
    "rating": {
      "description": "Google rating, review_count (render tool only)",
      "type": [
        "object",
        "null"
      ]
    }
  },
  "description": "Result of check_availability / render_availability_card."
}
🟢get_rates(month, adults, children, language, guests)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "month": {
      "default": "",
      "description": "Month as '2027-07', 'July', 'Juli 2027'; empty = next month",
      "title": "Month",
      "type": "string"
    },
    "adults": {
      "default": 2,
      "description": "Adults sharing one apartment (1-5)",
      "maximum": 5,
      "minimum": 1,
      "title": "Adults",
      "type": "integer"
    },
    "children": {
      "default": "",
      "description": "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).",
      "title": "Children",
      "type": "string"
    },
    "language": {
      "default": "de",
      "description": "Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.",
      "title": "Language",
      "type": "string"
    },
    "guests": {
      "default": 0,
      "description": "Deprecated alias of adults (clients before 2.2.0); 0 = unused",
      "maximum": 5,
      "minimum": 0,
      "title": "Guests",
      "type": "integer"
    }
  },
  "title": "get_ratesArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "month": {
      "description": "YYYY-MM",
      "type": [
        "string",
        "null"
      ]
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "adults": {
      "type": [
        "integer",
        "null"
      ]
    },
    "child_ages": {
      "items": {
        "type": "integer"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "status": {
      "description": "ok, closed, fully_booked or not_released",
      "type": [
        "string",
        "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"
      ]
    },
    "periods": {
      "description": "Booking rules: from, to, closed, min_nights, arrival_weekdays",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "weeks": {
      "description": "Searched reference stays with all prices",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "perks": {
      "type": [
        "object",
        "null"
      ]
    },
    "offers": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    }
  },
  "description": "Result of get_rates / render_rates_card."
}
🟢render_rates_card(month, adults, children, language, guests)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "month": {
      "default": "",
      "description": "Month as '2027-07', 'July', 'Juli 2027'; empty = next month",
      "title": "Month",
      "type": "string"
    },
    "adults": {
      "default": 2,
      "description": "Adults sharing one apartment (1-5)",
      "maximum": 5,
      "minimum": 1,
      "title": "Adults",
      "type": "integer"
    },
    "children": {
      "default": "",
      "description": "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).",
      "title": "Children",
      "type": "string"
    },
    "language": {
      "default": "de",
      "description": "Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.",
      "title": "Language",
      "type": "string"
    },
    "guests": {
      "default": 0,
      "description": "Deprecated alias of adults (clients before 2.2.0); 0 = unused",
      "maximum": 5,
      "minimum": 0,
      "title": "Guests",
      "type": "integer"
    }
  },
  "title": "render_rates_cardArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "month": {
      "description": "YYYY-MM",
      "type": [
        "string",
        "null"
      ]
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "adults": {
      "type": [
        "integer",
        "null"
      ]
    },
    "child_ages": {
      "items": {
        "type": "integer"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "status": {
      "description": "ok, closed, fully_booked or not_released",
      "type": [
        "string",
        "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"
      ]
    },
    "periods": {
      "description": "Booking rules: from, to, closed, min_nights, arrival_weekdays",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "weeks": {
      "description": "Searched reference stays with all prices",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "perks": {
      "type": [
        "object",
        "null"
      ]
    },
    "offers": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    }
  },
  "description": "Result of get_rates / render_rates_card."
}
🟢get_apartment_details(name, language)

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). An unknown number returns the list of existing apartment numbers.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "default": "",
      "description": "Apartment number such as '12' or '#16'; empty or 'all' = all online-bookable apartments; '17' = Studio #17 (on request only)",
      "title": "Name",
      "type": "string"
    },
    "language": {
      "default": "de",
      "description": "Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.",
      "title": "Language",
      "type": "string"
    }
  },
  "title": "get_apartment_detailsArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "apartments": {
      "items": {
        "$ref": "#/$defs/ApartmentInfo"
      },
      "type": [
        "array",
        "null"
      ]
    }
  },
  "$defs": {
    "ApartmentInfo": {
      "properties": {
        "nr": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "m2": {
          "type": [
            "number",
            "null"
          ]
        },
        "bedrooms": {
          "type": [
            "integer",
            "null"
          ]
        },
        "max_guests": {
          "type": [
            "integer",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "url": {
          "description": "Apartment page, or the enquiry form for on-request apartments",
          "type": [
            "string",
            "null"
          ]
        },
        "on_request": {
          "description": "True = not bookable online, enquiry only",
          "type": [
            "boolean",
            "null"
          ]
        },
        "images": {
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "photos": {
          "description": "JPEG data URIs (render tool only)",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        }
      },
      "type": "object"
    }
  },
  "description": "Result of get_apartment_details / render_apartment_gallery."
}
🟢render_apartment_gallery(name, language)

Show one or all apartments with photos as an interactive gallery card in the chat. Use instead of get_apartment_details when the guest wants to see the apartments (one apartment: up to 3 swipeable photos; all: one photo each, with buttons to check availability or open the page). Same arguments, behaviour (read-only, no prices) and result as get_apartment_details, plus photos.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "default": "",
      "description": "Apartment number such as '12' or '#16'; empty or 'all' = all online-bookable apartments; '17' = Studio #17 (on request only)",
      "title": "Name",
      "type": "string"
    },
    "language": {
      "default": "de",
      "description": "Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.",
      "title": "Language",
      "type": "string"
    }
  },
  "title": "render_apartment_galleryArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "apartments": {
      "items": {
        "$ref": "#/$defs/ApartmentInfo"
      },
      "type": [
        "array",
        "null"
      ]
    }
  },
  "$defs": {
    "ApartmentInfo": {
      "properties": {
        "nr": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "m2": {
          "type": [
            "number",
            "null"
          ]
        },
        "bedrooms": {
          "type": [
            "integer",
            "null"
          ]
        },
        "max_guests": {
          "type": [
            "integer",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "url": {
          "description": "Apartment page, or the enquiry form for on-request apartments",
          "type": [
            "string",
            "null"
          ]
        },
        "on_request": {
          "description": "True = not bookable online, enquiry only",
          "type": [
            "boolean",
            "null"
          ]
        },
        "images": {
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "photos": {
          "description": "JPEG data URIs (render tool only)",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        }
      },
      "type": "object"
    }
  },
  "description": "Result of get_apartment_details / render_apartment_gallery."
}
🟢get_offers(language)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "language": {
      "default": "de",
      "description": "Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.",
      "title": "Language",
      "type": "string"
    }
  },
  "title": "get_offersArguments"
}

Output Schema

{
  "type": "object",
  "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"
      ]
    }
  },
  "description": "Result of get_offers / render_offers_card."
}
🟢render_offers_card(language)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "language": {
      "default": "de",
      "description": "Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.",
      "title": "Language",
      "type": "string"
    }
  },
  "title": "render_offers_cardArguments"
}

Output Schema

{
  "type": "object",
  "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"
      ]
    }
  },
  "description": "Result of get_offers / render_offers_card."
}
🟢get_booking_link(apartment, check_in, check_out, adults, children, ...)

Build a direct booking link on praegant.net, optionally pre-filled with dates, party and apartment. Use when the guest has decided and just wants the link, or wants to book without a price check. Bookings are always completed by the guest on praegant.net (no commission) — this connector never books, reserves or takes payment by design. check_availability already returns a booking link per free apartment, so call this only when no availability result is at hand. Dates are optional (YYYY-MM-DD); without them the link opens the booking page. Behaviour: read-only, no availability check, instant. Returns text plus structuredContent (booking_url, inquiry_url, phone, email).

Input Schema

{
  "type": "object",
  "properties": {
    "apartment": {
      "default": "",
      "description": "Apartment number such as '12' or '#16'; empty or 'all' = all online-bookable apartments; '17' = Studio #17 (on request only)",
      "title": "Apartment",
      "type": "string"
    },
    "check_in": {
      "default": "",
      "description": "Optional date YYYY-MM-DD; leave empty for the plain booking page",
      "title": "Check In",
      "type": "string"
    },
    "check_out": {
      "default": "",
      "description": "Optional date YYYY-MM-DD; leave empty for the plain booking page",
      "title": "Check Out",
      "type": "string"
    },
    "adults": {
      "default": 2,
      "description": "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.",
      "maximum": 30,
      "minimum": 1,
      "title": "Adults",
      "type": "integer"
    },
    "children": {
      "default": "",
      "description": "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).",
      "title": "Children",
      "type": "string"
    },
    "language": {
      "default": "de",
      "description": "Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.",
      "title": "Language",
      "type": "string"
    }
  },
  "title": "get_booking_linkArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "booking_url": {
      "description": "Booking page on praegant.net, pre-filled when dates are given",
      "type": [
        "string",
        "null"
      ]
    },
    "inquiry_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "check_in": {
      "type": [
        "string",
        "null"
      ]
    },
    "check_out": {
      "type": [
        "string",
        "null"
      ]
    },
    "adults": {
      "type": [
        "integer",
        "null"
      ]
    },
    "child_ages": {
      "items": {
        "type": "integer"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "phone": {
      "type": [
        "string",
        "null"
      ]
    },
    "email": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "description": "Result of get_booking_link."
}
🟢get_region_info(topic, language)

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. Returns text plus structuredContent.topics (topic, lines) and contact details.

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "default": "",
      "description": "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",
      "examples": [
        "house",
        "golf",
        "winter"
      ],
      "title": "Topic",
      "type": "string"
    },
    "language": {
      "default": "de",
      "description": "Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.",
      "title": "Language",
      "type": "string"
    }
  },
  "title": "get_region_infoArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "topics": {
      "description": "Sections: topic, lines",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": [
        "array",
        "null"
      ]
    },
    "phone": {
      "type": [
        "string",
        "null"
      ]
    },
    "email": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "description": "Result of get_region_info."
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools
verifiedversion not recorded10 tools