# Landhaus Apartments Prägant (remote · mcp.praegant.net)

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

- Trust score: 68/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-28

## Components

- remote · `mcp.praegant.net`: 68/100 (this document), [markdown](https://verifymcp.io/servers/net-praegant-landhaus/mcp.md), [page](https://verifymcp.io/servers/net-praegant-landhaus/mcp)

## Channel facts

- Endpoint: `https://mcp.praegant.net/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.2.7`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-28.

- **Endpoint Security**: 77/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 42/100
  - 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3033 tokens (~216/item across 14 items; 10 tools + 4 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).
  - Supports UI / widget rendering.

## Install

### How do I install the Landhaus Apartments Prägant MCP server?

Landhaus Apartments Prägant is a hosted endpoint at https://mcp.praegant.net/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http net-praegant-landhaus 'https://mcp.praegant.net/mcp'
```

### Cursor

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

### VS Code

```json
{
  "servers": {
    "net-praegant-landhaus": {
      "type": "http",
      "url": "https://mcp.praegant.net/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.net-praegant-landhaus]
url = "https://mcp.praegant.net/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "net-praegant-landhaus": {
      "type": "remote",
      "url": "https://mcp.praegant.net/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add net-praegant-landhaus --url 'https://mcp.praegant.net/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  net-praegant-landhaus:
    url: "https://mcp.praegant.net/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "net-praegant-landhaus": {
      "Transport": "http",
      "Url": "https://mcp.praegant.net/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add net-praegant-landhaus -t streamable-http -u 'https://mcp.praegant.net/mcp'
```

### Other

```json
{
  "mcpServers": {
    "net-praegant-landhaus": {
      "type": "http",
      "url": "https://mcp.praegant.net/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-28 (score 68, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-27 (score 68, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “check_availability” rewrote its description, which is the text the model reads
- [security] Tool “get_region_info” rewrote its description, which is the text the model reads
- [functional] Server version: 2.2.4 → 2.2.6
- [functional] Server version: 2.2.2 → 2.2.4
- [functional] Server version: 2.2.1 → 2.2.2
- [cosmetic] “get_region_info” reworded the description of “topic”

### 2026-09-26 (score 68, +4)

- [security regression] Stability: 0.03 → fail
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “check_availability” rewrote its description, which is the text the model reads
- [security] Tool “get_apartment_details” rewrote its description, which is the text the model reads
- [security] Tool “get_booking_link” rewrote its description, which is the text the model reads
- [security] Tool “get_offers” rewrote its description, which is the text the model reads
- [security] Tool “get_rates” rewrote its description, which is the text the model reads
- [security] Tool “get_region_info” rewrote its description, which is the text the model reads
- [security] Tool “render_apartment_gallery” rewrote its description, which is the text the model reads
- [security] Tool “render_availability_card” rewrote its description, which is the text the model reads
- [security] Tool “render_offers_card” rewrote its description, which is the text the model reads
- [security] Tool “render_rates_card” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 153 → 206
- [functional regression] Resource “_apartment_gallery_card_resource” was removed
- [functional regression] Resource “_availability_card_resource” was removed
- [functional regression] Resource “_offers_card_resource” was removed
- [functional regression] Resource “_rates_card_resource” was removed
- [functional regression] Tool “get_booking_link” dropped its output schema
- [functional regression] Tool “get_region_info” dropped its output schema
- [functional improvement] Tool coverage: 20% → 100%
- [functional improvement] Tool coverage: 0% → 100%
- [functional improvement] Tool coverage: 0% → 94%
- [functional improvement] Schema quality: 153 → 119
- [functional improvement] Tool “check_availability” now declares an output schema
- [functional improvement] Tool “get_apartment_details” now declares an output schema
- [functional improvement] Tool “get_booking_link” now declares an output schema
- [functional improvement] Tool “get_offers” now declares an output schema
- [functional improvement] Tool “get_rates” now declares an output schema
- [functional improvement] Tool “get_region_info” now declares an output schema
- [functional improvement] Tool “render_apartment_gallery” now declares an output schema
- [functional improvement] Tool “render_availability_card” now declares an output schema
- [functional improvement] Tool “render_offers_card” now declares an output schema
- [functional improvement] Tool “render_rates_card” now declares an output schema
- [functional] Schema quality: good → excellent
- [functional] New resource “apartments-card”
- [functional] New resource “availability-card”
- [functional] New resource “offers-card”
- [functional] New resource “rates-card”
- [functional] Server version: 2.2.0 → 2.2.1
- [functional] Server version: 2.1.4 → 2.2.0
- [cosmetic] “get_rates” added an optional parameter “adults”
- [cosmetic] “get_rates” added an optional parameter “children”
- [cosmetic] “get_region_info” added an optional parameter “language”
- [cosmetic] “render_rates_card” added an optional parameter “adults”
- [cosmetic] “render_rates_card” added an optional parameter “children”
- [cosmetic] “get_booking_link” reworded the description of “check_in”
- [cosmetic] “get_booking_link” reworded the description of “check_out”
- [cosmetic] “get_rates” reworded the description of “adults”
- [cosmetic] “get_rates” reworded the description of “children”
- [cosmetic] “get_region_info” reworded the description of “language”
- [cosmetic] “render_rates_card” reworded the description of “adults”
- [cosmetic] “render_rates_card” reworded the description of “children”
- [cosmetic] “check_availability” reworded the description of “adults”
- [cosmetic] “check_availability” reworded the description of “check_in”
- [cosmetic] “check_availability” reworded the description of “check_out”
- [cosmetic] “check_availability” reworded the description of “children”
- [cosmetic] “check_availability” reworded the description of “language”
- [cosmetic] “get_apartment_details” reworded the description of “language”
- [cosmetic] “get_apartment_details” reworded the description of “name”
- [cosmetic] “get_booking_link” reworded the description of “adults”
- [cosmetic] “get_booking_link” reworded the description of “apartment”
- [cosmetic] “get_booking_link” reworded the description of “children”
- [cosmetic] “get_booking_link” reworded the description of “language”
- [cosmetic] “get_offers” reworded the description of “language”
- [cosmetic] “get_rates” reworded the description of “guests”
- [cosmetic] “get_rates” reworded the description of “language”
- [cosmetic] “get_rates” reworded the description of “month”
- [cosmetic] “get_region_info” reworded the description of “topic”
- [cosmetic] “render_apartment_gallery” reworded the description of “language”
- [cosmetic] “render_apartment_gallery” reworded the description of “name”
- [cosmetic] “render_availability_card” reworded the description of “adults”
- [cosmetic] “render_availability_card” reworded the description of “check_in”
- [cosmetic] “render_availability_card” reworded the description of “check_out”
- [cosmetic] “render_availability_card” reworded the description of “children”
- [cosmetic] “render_availability_card” reworded the description of “language”
- [cosmetic] “render_offers_card” reworded the description of “language”
- [cosmetic] “render_rates_card” reworded the description of “guests”
- [cosmetic] “render_rates_card” reworded the description of “language”
- [cosmetic] “render_rates_card” reworded the description of “month”
- [cosmetic] Tool “get_booking_link” changed its title: Get Direct Booking Link → Get Booking Link
- [cosmetic] Tool “get_offers” changed its title: Get Current Offers → Get Offers
- [cosmetic] Tool “get_rates” changed its title: Get Nightly Rates → Get Rates

### 2026-09-25 (score 64, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “get_offers” rewrote its description, which is the text the model reads
- [security] Tool “get_apartment_details” rewrote its description, which is the text the model reads
- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server
- [functional] Server version: 2.1.3 → 2.1.4
- [functional] Server version: 2.1.1 → 2.1.3

### 2026-09-24 (score 64, +15)

- [security improvement] Authorization: unverified → partial
- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [functional regression] Schema quality: unverified → fail
- [functional improvement] Schema quality: 376 → 151
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Stability: unverified → 0.03
- [functional] First check of Tool coverage: 0
- [functional] First check of Destructive annotations: pass
- [functional] First check of Capabilities: pass
- [functional] First check of Tool coverage: 20
- [functional] First check of Schema quality: 0
- [functional] Schema quality: excellent → good
- [functional] MCP protocol: Implements a current MCP spec version (2026-07-28).
- [functional] Server version: 2.1.0 → 2.1.1
- [functional] This server's schema is too large to store in full, so we cannot compare its tools day to day

### 2026-09-23 (score 49)

First indexed and scored.

## MCP tools (10)

### `check_availability` (~457 tokens)

Check Availability

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 parameters:

- `adults` (integer): 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.
- `check_in` (string, required): Arrival date YYYY-MM-DD, e.g. '2027-06-12'
- `check_out` (string, required): Departure date YYYY-MM-DD (after check_in, max. 60 nights)
- `children` (string): 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).
- `language` (string): Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.

Output parameters:

- `alternatives` (array|null): Nearest bookable stays: check_in, check_out, nights, from_price, cheapest, apartments[], booking_url
- `apartments` (array|null): 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…
- `group` (object|null): 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[], boo…
- `inquiry_url` (string|null): Pre-filled non-binding enquiry form
- `language` (string|null)
- `offers` (array|null): Website offers valid during the stay: title, url, price_text
- `perks` (object|null): kaernten_card, greenfee (bool, for this arrival date)
- `query` (object|null): check_in, check_out, nights, adults, child_ages, persons
- `rating` (object|null): Google rating, review_count (render tool only)
- `recommendation` (object|null): Best fit for this party: nr, reasons[] (two_bedrooms, cheapest, most_space, best_value, terrace, loggia, balcony), needs_two_bedrooms, comfortable
- `rules` (object|null): ok, problems[], min_nights, period{from,to,min_nights,arrival_weekdays 0=Mon}
- `status` (string|null): 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
- `terms` (object|null): deposit_pct, deposit_method, deposit_due_days, balance, card_required, tax_pp_night, tax_min_age, free_cancel_until
- `unavailable` (array|null): Fitting apartments already booked: nr, name

### `render_availability_card` (~297 tokens)

Show Availability Card

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 parameters:

- `adults` (integer): 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.
- `check_in` (string, required): Arrival date YYYY-MM-DD, e.g. '2027-06-12'
- `check_out` (string, required): Departure date YYYY-MM-DD (after check_in, max. 60 nights)
- `children` (string): 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).
- `language` (string): Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.

Output parameters:

- `alternatives` (array|null): Nearest bookable stays: check_in, check_out, nights, from_price, cheapest, apartments[], booking_url
- `apartments` (array|null): 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…
- `group` (object|null): 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[], boo…
- `inquiry_url` (string|null): Pre-filled non-binding enquiry form
- `language` (string|null)
- `offers` (array|null): Website offers valid during the stay: title, url, price_text
- `perks` (object|null): kaernten_card, greenfee (bool, for this arrival date)
- `query` (object|null): check_in, check_out, nights, adults, child_ages, persons
- `rating` (object|null): Google rating, review_count (render tool only)
- `recommendation` (object|null): Best fit for this party: nr, reasons[] (two_bedrooms, cheapest, most_space, best_value, terrace, loggia, balcony), needs_two_bedrooms, comfortable
- `rules` (object|null): ok, problems[], min_nights, period{from,to,min_nights,arrival_weekdays 0=Mon}
- `status` (string|null): 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
- `terms` (object|null): deposit_pct, deposit_method, deposit_due_days, balance, card_required, tax_pp_night, tax_min_age, free_cancel_until
- `unavailable` (array|null): Fitting apartments already booked: nr, name

### `get_rates` (~312 tokens)

Get Rates

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 parameters:

- `adults` (integer): Adults sharing one apartment (1-5)
- `children` (string): 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).
- `guests` (integer): Deprecated alias of adults (clients before 2.2.0); 0 = unused
- `language` (string): Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.
- `month` (string): Month as '2027-07', 'July', 'Juli 2027'; empty = next month

Output parameters:

- `adults` (integer|null)
- `apartments` (array|null): Per apartment: nr, name, lowest total EUR, nights, check_in/check_out of that reference stay
- `child_ages` (array|null)
- `language` (string|null)
- `month` (string|null): YYYY-MM
- `offers` (array|null)
- `periods` (array|null): Booking rules: from, to, closed, min_nights, arrival_weekdays
- `perks` (object|null)
- `status` (string|null): ok, closed, fully_booked or not_released
- `weeks` (array|null): Searched reference stays with all prices

### `render_rates_card` (~225 tokens)

Show Rates Card

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 parameters:

- `adults` (integer): Adults sharing one apartment (1-5)
- `children` (string): 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).
- `guests` (integer): Deprecated alias of adults (clients before 2.2.0); 0 = unused
- `language` (string): Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.
- `month` (string): Month as '2027-07', 'July', 'Juli 2027'; empty = next month

Output parameters:

- `adults` (integer|null)
- `apartments` (array|null): Per apartment: nr, name, lowest total EUR, nights, check_in/check_out of that reference stay
- `child_ages` (array|null)
- `language` (string|null)
- `month` (string|null): YYYY-MM
- `offers` (array|null)
- `periods` (array|null): Booking rules: from, to, closed, min_nights, arrival_weekdays
- `perks` (object|null)
- `status` (string|null): ok, closed, fully_booked or not_released
- `weeks` (array|null): Searched reference stays with all prices

### `get_apartment_details` (~257 tokens)

Get Apartment Details

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 parameters:

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

Output parameters:

- `apartments` (array|null)
- `language` (string|null)

### `render_apartment_gallery` (~172 tokens)

Show Apartment Gallery

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 parameters:

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

Output parameters:

- `apartments` (array|null)
- `language` (string|null)

### `get_offers` (~158 tokens)

Get Offers

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 parameters:

- `language` (string): Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.

Output parameters:

- `language` (string|null)
- `offers` (array|null): title, valid_from, valid_to, price_text, summary, season, url, includes, image

### `render_offers_card` (~96 tokens)

Show Offers Card

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 parameters:

- `language` (string): Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.

Output parameters:

- `language` (string|null)
- `offers` (array|null): title, valid_from, valid_to, price_text, summary, season, url, includes, image

### `get_booking_link` (~360 tokens)

Get Booking Link

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 parameters:

- `adults` (integer): 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.
- `apartment` (string): Apartment number such as '12' or '#16'; empty or 'all' = all online-bookable apartments; '17' = Studio #17 (on request only)
- `check_in` (string): Optional date YYYY-MM-DD; leave empty for the plain booking page
- `check_out` (string): Optional date YYYY-MM-DD; leave empty for the plain booking page
- `children` (string): 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).
- `language` (string): Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.

Output parameters:

- `adults` (integer|null)
- `booking_url` (string|null): Booking page on praegant.net, pre-filled when dates are given
- `check_in` (string|null)
- `check_out` (string|null)
- `child_ages` (array|null)
- `email` (string|null)
- `inquiry_url` (string|null)
- `language` (string|null)
- `phone` (string|null)

### `get_region_info` (~286 tokens)

Get Region Information

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 parameters:

- `language` (string): Answer language: 'de' (default) or 'en' — use the language of the conversation. Text and card are always in the same language.
- `topic` (string): 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 = o…

Output parameters:

- `email` (string|null)
- `language` (string|null)
- `phone` (string|null)
- `topics` (array|null): Sections: topic, lines

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/net-praegant-landhaus/mcp#diagnostics

## Score history

- 2026-09-28: 68
- 2026-09-27: 68
- 2026-09-26: 68
- 2026-09-25: 64
- 2026-09-24: 64
- 2026-09-23: 49

## Common questions

### What is the Landhaus Apartments Prägant MCP server?

Landhaus Apartments Prägant is an MCP server listed in the public MCP registry as net.praegant/landhaus. Live availability, rates and offers for Landhaus Apartments Prägant in Bad Kleinkirchheim, Austria. This page covers its hosted endpoint (https://mcp.praegant.net/mcp).

### Is the Landhaus Apartments Prägant MCP server safe to use?

Landhaus Apartments Prägant scores 68 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Landhaus Apartments Prägant MCP server expose?

Landhaus Apartments Prägant exposes 10 tools: check_availability, render_availability_card, get_rates, render_rates_card, get_apartment_details, and 5 more. Their descriptions and schemas cost roughly 2,620 tokens of context every time the server is loaded.

### Does the Landhaus Apartments Prägant MCP server require authentication?

No. We connected to Landhaus Apartments Prägant without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Landhaus Apartments Prägant MCP server still maintained?

Landhaus Apartments Prägant is still listed as active in the MCP registry. We last reached this channel on 28 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://mcp.praegant.net/mcp
- Website: https://www.praegant.net/
- Changelog RSS feed: https://verifymcp.io/servers/net-praegant-landhaus/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/net-praegant-landhaus/mcp.json
- HTML version of this page: https://verifymcp.io/servers/net-praegant-landhaus/mcp
