Koskamo

Hotel Mondschein MCP

An MCP server providing read-only access to factual information about Hotel Mondschein in Stuben am Arlberg, including house details, contact info, restaurant awards, and room availability. It supports agent interactions via WebMCP, MCP, and REST, facilitating room searches and offer requests without handling payments directly.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Hotel Mondschein MCP logo, by Hotel Mondschein GmbHVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-09Operated by Hotel Mondschein GmbH
MCP endpoint (Streamable HTTP)
https://mondschein.com/mcp
Vendor documentation

What its tools do

17 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

Can change data (1)

17 of 17 have a description · 17 of 17 declare behavior hints · 17 of 17 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to mondschein.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Warning Advertises resources/templates/list but does not implement it
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Retrieve hotel contact details and address
  • Check room availability and prices
  • List hotel houses and amenities
  • Request non-binding offers

Source and maintenance

Vendor evidenceRegistry 1.1.0

Protocol and capabilities

Server
mondschein 1.1.0
MCP protocol negotiated in check
2025-11-25
Tools
17 advertised
Resources
2 advertised
Resource templates
Not advertised
Prompts
1 advertised
Server-advertised capabilities
{
  "tools": {},
  "prompts": {},
  "resources": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Hotel Mondschein, an inn in Stuben am Arlberg since 1739, gives skiers and mountain holidaymakers three houses a few steps from the piste: Ski Hotel Mondschein, Mondschein Chalet and Arlberg Motel. Use hotel_info for address, contact and check-in, list_houses, list_rooms and get_room for rooms, list_offers for packages, check_availability for dates and from-prices (check the source flag), start_booking to turn a chosen booking option into a checkout link where the guest pays, get_faq, list_areas and get_area for questions about the region, get_weather and get_lift_status for live conditions, get_club_lineup for the Friday nights in the Mondschein Club, list_events for the event calendar, get_topic for dining, wellness, services, activities, opening dates and arrival, search_site to find any page. request_offer sends a non-binding request only with confirm and privacy_consent set to true after the guest agreed. No tool books or takes payments; the guest books and pays on the website, also on the checkout link of start_booking. Every tool takes language (de, nl, en) and returns links in that language. Guide: https://mondschein.com/developers/

Tools

17 advertised

hotel_info — Hotel facts and contact
Advertised by the server during the last successful anonymous check.
Advertised read-only

Facts about Hotel Mondschein in Stuben am Arlberg: address, coordinates and map link of each house as in its Google profile, phone, e-mail, WhatsApp, check-in and check-out, restaurants with awards (Chef's Table: Gault&Millau 4 toques, Falstaff 4 forks), opening hours, season, company stays, the Longboard Classic with its legends, and Glen Plake's quote. Use for contact, address, directions and awards. Rooms: list_rooms; prices and dates: check_availability.

hotel_info input schema
{
  "type": "object",
  "properties": {
    "house": {
      "enum": [
        "hotel",
        "chalet",
        "motel",
        "all"
      ],
      "type": "string",
      "default": "all",
      "description": "One house (hotel = Ski Hotel Mondschein, chalet = Mondschein Chalet, motel = Arlberg Motel) or all."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
hotel_info output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
hotel_info annotations
{
  "title": "Hotel facts and contact",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_houses — The three houses
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists the three houses of Mondschein in Stuben: Ski Hotel Mondschein (4 stars, since 1739), Mondschein Chalet (private spa suites, open all year) and Arlberg Motel. Returns id, name, short description, number of room types and the page URL. Use list_rooms with the house id next.

list_houses input schema
{
  "type": "object",
  "properties": {
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
list_houses output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
list_houses annotations
{
  "title": "The three houses",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_rooms — Room types
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists the room types, optionally for one house: id, name, house, size in m², guests, main features, summer booking, booking (online or on_request), the lowest price per night of the coming months (from_price_per_night_eur, mostly low season; see price_terms) and the room page URL. Use get_room for details and check_availability for the real price of a stay.

list_rooms input schema
{
  "type": "object",
  "properties": {
    "house": {
      "enum": [
        "hotel",
        "chalet",
        "motel"
      ],
      "type": "string",
      "description": "Only this house: hotel, chalet or motel. Leave out for all houses."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
list_rooms output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
list_rooms annotations
{
  "title": "Room types",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_room — Room details
Advertised by the server during the last successful anonymous check.
Advertised read-only

All published details of one room type: description, size, guests, all features, facts, photos with alt text, FAQ and the room page URL. Use the room_id from list_rooms. For prices on dates use check_availability.

get_room input schema
{
  "type": "object",
  "required": [
    "room_id"
  ],
  "properties": {
    "room_id": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      "maxLength": 80,
      "description": "Room id from list_rooms, e.g. comfort-double."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
get_room output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
get_room annotations
{
  "title": "Room details",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_offers — Offers and packages
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists the current offers and packages (for example ski packages or summer escapes): id, title, short text, what is included, season, house and the offer page URL. Prices depend on dates: use check_availability or send the guest to the offer page.

list_offers input schema
{
  "type": "object",
  "properties": {
    "season": {
      "enum": [
        "winter",
        "summer",
        "all"
      ],
      "type": "string",
      "default": "all",
      "description": "Only winter or summer offers, or all."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
list_offers output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
list_offers annotations
{
  "title": "Offers and packages",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_areas — Area guides
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists the area guides around Stuben am Arlberg (ski resorts such as Lech, Zürs and St. Anton, valleys, and arrival from cities such as Zürich or München): slug, name, title and page URL. Use get_area for travel times, routes and FAQ of one area.

list_areas input schema
{
  "type": "object",
  "properties": {
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
list_areas output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
list_areas annotations
{
  "title": "Area guides",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_area — One area guide
Advertised by the server during the last successful anonymous check.
Advertised read-only

Details of one area guide: introduction, section headings, nearby places, FAQ (distances, travel times, what to do), a Google Maps route link to the Ski Hotel and the page URL. Use the slug from list_areas.

get_area input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      "maxLength": 80,
      "description": "Area slug from list_areas, e.g. lech or zuerich."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
get_area output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
get_area annotations
{
  "title": "One area guide",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_faq — Frequently asked questions
Advertised by the server during the last successful anonymous check.
Advertised read-only

Questions and answers from the FAQ page (check-in and check-out, which house is open in summer, distance to the slopes, half board, dogs, parking, extra beds, cancellation, arrival). Optionally filter with a search term. Returns the matching questions with answers and the FAQ page URL.

get_faq input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 80,
      "description": "Optional search term, e.g. \"Parken\" or \"hond\". Leave out for all questions."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
get_faq output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
get_faq annotations
{
  "title": "Frequently asked questions",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_topic — Dining, wellness, services, activities and more
Advertised by the server during the last successful anonymous check.
Advertised read-only

Facts from one hotel page no other tool covers: dining (chefsTable, alte-gaststube, fondue, bar, weinkeller), wellness (wellness, massagen, private-spa), services (halbpension = half board, familien, shuttle-transfer, ski-service), activities (freeride, heli, skitouren, langlauf, wandern, biken, golf), opening dates (oeffnungszeiten), arrival (anreise), history (geschichte), company stays (firmen). Leave out topic for the list. Returns facts (prices, hours), sections, FAQ, URL.

get_topic input schema
{
  "type": "object",
  "properties": {
    "topic": {
      "enum": [
        "wellness",
        "chefsTable",
        "fondue",
        "anreise",
        "skiArlberg",
        "geschichte",
        "firmen",
        "arlbergLive",
        "alte-gaststube",
        "panorama",
        "bar",
        "club",
        "weinkeller",
        "kulinarischer-tag",
        "freeride",
        "heli",
        "skitouren",
        "skitourenkarte",
        "langlauf",
        "wandern",
        "biken",
        "golf",
        "roadtrips",
        "ausfluege",
        "geschichte-gourmet",
        "ski-soehne",
        "green-lifestyle",
        "veranstaltungen",
        "anlaesse",
        "oeffnungszeiten",
        "planen",
        "private-spa",
        "ski-in-ski-out",
        "wine-and-dine",
        "activities",
        "sustainability",
        "familien",
        "halbpension",
        "massagen",
        "shuttle-transfer",
        "ski-service"
      ],
      "type": "string",
      "description": "Topic id, e.g. chefsTable, wellness, halbpension, freeride, oeffnungszeiten. Leave out for the list."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
get_topic output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
get_topic annotations
{
  "title": "Dining, wellness, services, activities and more",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_events — Coming events
Advertised by the server during the last successful anonymous check.
Advertised read-only

Coming events at Hotel Mondschein: the hotel calendar (club nights, culinary evenings, festivals, sport and culture) plus packages with fixed dates such as Chef's Night, Christmas, New Year's Eve and the Longboard Classic (kind: package, date = arrival, end_date = departure). Optionally between two dates or one category (kulinarik, musik_party, fest, sport_kultur). Returns kind, dates, times, title, short text, price, guests only, sold out and the page URL. Club DJs: get_club_lineup.

list_events input schema
{
  "type": "object",
  "properties": {
    "to": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Last day (YYYY-MM-DD). Default no limit."
    },
    "from": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "First day (YYYY-MM-DD). Default today."
    },
    "category": {
      "enum": [
        "kulinarik",
        "musik_party",
        "fest",
        "sport_kultur"
      ],
      "type": "string",
      "description": "Only this category."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
list_events output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
list_events annotations
{
  "title": "Coming events",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_site — Search the website
Advertised by the server during the last successful anonymous check.
Advertised read-only

Full-text search over the pages of mondschein.com in one language: houses, rooms, dining, wellness, services, activities, area guides and blog articles. Use it when no other tool fits or to find the right page for a question ("dogs", "sauna", "Lech", "parking"). Returns up to 8 pages with title, kind, URL and a short snippet. Get details with the matching tool or give the guest the URL.

search_site input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 80,
      "minLength": 3,
      "description": "Search words, e.g. \"Hund\", \"sauna\", \"skipass\"."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
search_site output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
search_site annotations
{
  "title": "Search the website",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_club_lineup — Mondschein Club line-up
Advertised by the server during the last successful anonymous check.
Advertised read-only

Line-up of the Mondschein Club (Electronic Friday) in the vaulted cellar of the Ski Hotel Mondschein in Stuben am Arlberg: every Friday in winter from 21:30 to 02:00, no reservation, usually free entry. Returns the coming nights with date, DJ, where the DJ comes from, a short introduction and special nights (New Year's Eve, Longboard Classic Closing Night). Nights without a DJ yet say so. Use it for "what is on at the club", "who plays on Friday" or nightlife questions.

get_club_lineup input schema
{
  "type": "object",
  "properties": {
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
get_club_lineup output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
get_club_lineup annotations
{
  "title": "Mondschein Club line-up",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_lift_status — Ski Arlberg lift status
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Live status of the lifts and slopes of Ski Arlberg around Stuben: lifts open of total, slopes open of total, each lift with its status, and when the data was fetched. Use it for "are the lifts open" questions. Returns UNAVAILABLE when the live source is not available; then point to the Arlberg live page.

get_lift_status input schema
{
  "type": "object",
  "properties": {
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
get_lift_status output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
get_lift_status annotations
{
  "title": "Ski Arlberg lift status",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_weather — Weather in Stuben
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Current weather in Stuben am Arlberg (1409 m) at the Ski Hotel: temperature, snowfall, snow depth, weather code with a short label and, when available, the coming days. Source: Open-Meteo, refreshed about every 15 minutes.

get_weather input schema
{
  "type": "object",
  "properties": {
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    }
  }
}
get_weather output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
get_weather annotations
{
  "title": "Weather in Stuben",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_availability — Rooms and prices for dates
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Rooms for the given dates and guests with the from-price per night in EUR and the booking page URL. If "source" is "mock", prices are placeholders: send the guest to booking_url. With "online_booking": true each room lists booking_options (house, room_type, rate_id, rate, price per night, total incl. city tax): pass the chosen option to start_booking. Never books anything: the guest books on the site, via start_booking, or asks with request_offer.

check_availability input schema
{
  "type": "object",
  "required": [
    "arrival",
    "departure"
  ],
  "properties": {
    "house": {
      "enum": [
        "hotel",
        "chalet",
        "motel"
      ],
      "type": "string",
      "description": "Only this house. Leave out for all houses."
    },
    "adults": {
      "type": "integer",
      "default": 2,
      "maximum": 10,
      "minimum": 1,
      "description": "Number of adults, 1 to 10."
    },
    "arrival": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Arrival date, YYYY-MM-DD."
    },
    "room_id": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      "maxLength": 80,
      "description": "Only this room type (id from list_rooms)."
    },
    "children": {
      "type": "integer",
      "default": 0,
      "maximum": 8,
      "minimum": 0,
      "description": "Number of children, 0 to 8."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    },
    "departure": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Departure date, YYYY-MM-DD, after the arrival."
    }
  }
}
check_availability output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
check_availability annotations
{
  "title": "Rooms and prices for dates",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
start_booking — Prepare a checkout link
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

After check_availability and the guest's choice: pass house, room_id or room_type, rate_id, dates and guests as returned. Checks again and returns a summary (room, dates, guests, total EUR) and checkout_url, where the guest enters details and pays. Show the summary, then give the guest checkout_url. Does not book, hold or charge. Never ask the guest for card details. Errors: NOT_AVAILABLE with alternatives, BOOKING_NOT_YET_ONLINE.

start_booking input schema
{
  "type": "object",
  "required": [
    "rate_id",
    "arrival",
    "departure"
  ],
  "properties": {
    "house": {
      "enum": [
        "hotel",
        "chalet",
        "motel",
        "mondschein"
      ],
      "type": "string",
      "description": "House from the booking option: hotel, chalet or motel (mondschein = hotel). Optional with room_id."
    },
    "adults": {
      "type": "integer",
      "default": 2,
      "maximum": 8,
      "minimum": 1,
      "description": "Number of adults, 1 to 8."
    },
    "arrival": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Arrival date, YYYY-MM-DD."
    },
    "rate_id": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "description": "rate_id from booking_options of check_availability, e.g. base."
    },
    "room_id": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      "maxLength": 80,
      "description": "Room id from check_availability, e.g. comfort-double."
    },
    "children": {
      "type": "integer",
      "default": 0,
      "maximum": 6,
      "minimum": 0,
      "description": "Number of children, 0 to 6."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    },
    "departure": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Departure date, YYYY-MM-DD, after the arrival."
    },
    "room_type": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,32}$",
      "description": "Room type code from booking_options, e.g. DZC. Give room_id, room_type or both."
    }
  }
}
start_booking output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
start_booking annotations
{
  "title": "Prepare a checkout link",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
request_offer — Send a request to the hotel
Advertised by the server during the last successful anonymous check.
Open-world

Sends a non-binding offer request to the reservation team, like the form on the website; also for company stays (company in name, number of employees in employees). Books and charges nothing. Call it only after the guest saw the exact content and agreed to send it (confirm: true) and to the privacy policy (privacy_consent: true); otherwise CONFIRMATION_REQUIRED and nothing is sent. NOT_DELIVERED means nothing was sent: give the hotel phone and e-mail instead. The team answers by e-mail.

request_offer input schema
{
  "type": "object",
  "required": [
    "name",
    "email",
    "message"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Full name of the guest."
    },
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "maxLength": 200,
      "description": "E-mail address for the answer."
    },
    "house": {
      "enum": [
        "all",
        "hotel",
        "chalet",
        "motel"
      ],
      "type": "string",
      "default": "all",
      "description": "Requested house, or all if the guest has no preference."
    },
    "phone": {
      "type": "string",
      "maxLength": 40,
      "description": "Optional phone number."
    },
    "guests": {
      "type": "integer",
      "maximum": 40,
      "minimum": 1,
      "description": "Optional number of guests."
    },
    "arrival": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Optional arrival date, YYYY-MM-DD."
    },
    "confirm": {
      "type": "boolean",
      "default": false,
      "description": "true only if the guest explicitly confirmed sending this request."
    },
    "message": {
      "type": "string",
      "maxLength": 4000,
      "minLength": 5,
      "description": "The request in the words of the guest."
    },
    "language": {
      "enum": [
        "de",
        "nl",
        "en"
      ],
      "type": "string",
      "default": "de",
      "description": "Language of texts and links: de, nl, en. Default de."
    },
    "departure": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Optional departure date, YYYY-MM-DD."
    },
    "employees": {
      "type": "integer",
      "maximum": 999,
      "minimum": 1,
      "description": "Only for a company stay: the number of employees who would stay."
    },
    "privacy_consent": {
      "type": "boolean",
      "default": false,
      "description": "true only if the guest agreed to the privacy policy (its URL is the link in the CONFIRMATION_REQUIRED answer)."
    }
  }
}
request_offer output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "true on success; false with code and message on an error."
    },
    "code": {
      "type": "string",
      "description": "Error code when ok is false, e.g. VALIDATION, NOT_FOUND, UNAVAILABLE."
    },
    "message": {
      "type": "string",
      "description": "Readable error message when ok is false."
    }
  },
  "additionalProperties": true
}
request_offer annotations
{
  "title": "Send a request to the hotel",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

1 advertised

plan_stay — Plan a stay at Hotel Mondschein

Advertised by the server during the last successful anonymous check.

Find the right house and room for given dates and guests, with prices, and a link to book.

arrival
Arrival date, YYYY-MM-DD (required)
departure
Departure date, YYYY-MM-DD (required)
adults
Number of adults (required)
language
Language: de, nl, en

Resources

2 advertised

llms.txt — Hotel Mondschein in short (llms.txt)

Advertised by the server during the last successful anonymous check.

Houses with address, restaurants and awards, club nights, Longboard Classic, contact and all key pages.

llms.txt URI
https://mondschein.com/llms.txt

MIME type: text/markdown

openapi.json — OpenAPI 3.1 description of the REST tools

Advertised by the server during the last successful anonymous check.

The same tools as this MCP server, as REST endpoints under /api/agent/{tool}.

openapi.json URI
https://mondschein.com/openapi.json

MIME type: application/json

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1360 ms
95th percentile latency
1360 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1360 ms · metadata changed · 17 tool(s), 2 resource(s), 1 prompt(s); warnings: Advertises resources/templates/list but does not implement it

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http hotel-mondschein-mcp https://mondschein.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add hotel-mondschein-mcp --url https://mondschein.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable hotel-mondschein-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "hotel-mondschein-mcp": {
      "url": "https://mondschein.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "hotel-mondschein-mcp": {
      "type": "streamableHttp",
      "url": "https://mondschein.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start hotel-mondschein-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "hotel-mondschein-mcp": {
      "type": "http",
      "url": "https://mondschein.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http hotel-mondschein-mcp https://mondschein.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mondschein.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "hotel-mondschein-mcp": {
      "serverUrl": "https://mondschein.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Hotel Mondschein MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Hotel Mondschein MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing