Kurzanleitung
- Im Browser (WebMCP): Jede Seite von mondschein.com meldet alle Werkzeuge über document.modelContext an, bevor die Seite fertig geladen ist. Ein Browser-Agent ruft sie direkt auf, statt die Seite auszulesen.
- MCP-Server: https://mondschein.com/mcp (Streamable HTTP, ohne Sitzung, JSON-Antworten). Dort stehen alle Werkzeuge außer open_page, das nur im Browser-Tab sinnvoll ist.
- REST: dieselben Werkzeuge als POST /api/agent/{tool} mit JSON. Beschreibung: /openapi.json, interaktiv: /openapi.html.
Was die Werkzeuge nicht tun
- Kein Werkzeug bucht ein Zimmer oder nimmt eine Zahlung an. Der Gast bucht selbst auf der Buchungsseite.
- request_offer sendet nur, wenn confirm und privacy_consent auf true stehen. Ohne beides kommt CONFIRMATION_REQUIRED zurück und es wird nichts gesendet.
- Solange kein Versandweg eingerichtet ist, antwortet request_offer mit NOT_DELIVERED und der Telefonnummer und E-Mail-Adresse des Hotels. Dann wurde nichts gesendet und der Gast meldet sich selbst beim Hotel.
- Die Antworten enthalten nur, was auch auf der Website steht. Interne Preise oder Daten von Gästen geben die Werkzeuge nie heraus.
Werkzeuge
Die Beschreibungen sind auf Englisch, so wie die Modelle sie sehen. Jedes Werkzeug nimmt den Parameter language (de, nl, en) und gibt Links in dieser Sprache zurück.
| Name | Zweck | Zugriff | Verfügbar über |
|---|---|---|---|
hotel_info | Adresse, Koordinaten und Kartenlinks je Haus wie im Google-Profil, Telefon, E-Mail, Check-in und Check-out, Restaurants, Öffnungszeiten | lesen | WebMCP, MCP, REST |
list_houses | Die drei Häuser mit Kurzbeschreibung und Link | lesen | WebMCP, MCP, REST |
list_rooms | Zimmertypen je Haus mit Größe, Personen, Ausstattung und Link | lesen | WebMCP, MCP, REST |
get_room | Alle Angaben zu einem Zimmertyp, mit Fotos und FAQ | lesen | WebMCP, MCP, REST |
list_offers | Angebote und Pakete mit Leistungen, Saison und Link | lesen | WebMCP, MCP, REST |
list_areas | Die Gebietsseiten rund um Stuben | lesen | WebMCP, MCP, REST |
get_area | Eine Gebietsseite mit Anreise, Orten in der Nähe, FAQ und Routenlink | lesen | WebMCP, MCP, REST |
get_faq | Häufige Fragen, auf Wunsch mit Suchbegriff | lesen | WebMCP, MCP, REST |
get_lift_status | Live-Status der Lifte und Pisten von Ski Arlberg | lesen | WebMCP, MCP, REST |
get_weather | Aktuelles Wetter und Schneehöhe in Stuben | lesen | WebMCP, MCP, REST |
check_availability | Zimmer und Ab-Preise für Reisedaten (bis zur Anbindung an das Buchungssystem mit der Kennzeichnung mock) | lesen | WebMCP, MCP, REST |
request_offer | Unverbindliche Anfrage an das Reservierungsteam, nur nach ausdrücklicher Bestätigung des Gastes | senden, mit Bestätigung | WebMCP, MCP, REST |
open_page | Öffnet eine Seite von mondschein.com im Browser-Tab | lesen | WebMCP |
hotel_info
Facts about Hotel Mondschein in Stuben am Arlberg (Austria): name, address, coordinates and map links of each house exactly as in its Google Business Profile, phone, e-mail, WhatsApp, check-in and check-out times, restaurants and opening hours, current season, and company stays (period, days, how to request). Use this for contact, address, directions or "when can I check in" questions. For rooms use list_rooms, for prices and dates check_availability.
Parameter
house"hotel" | "chalet" | "motel" | "all", default "all": One house (hotel = Ski Hotel Mondschein, chalet = Mondschein Chalet, motel = Arlberg Motel) or all.language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/hotel_info
list_houses
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.
Parameter
language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/list_houses
list_rooms
Lists the room types, optionally for one house: id, name, house, size in m², guests, main features, whether it is bookable in summer, and the room page URL. Use get_room for all details of one room and check_availability for prices on dates.
Parameter
house"hotel" | "chalet" | "motel": Only this house: hotel, chalet or motel. Leave out for all houses.language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/list_rooms
get_room
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.
Parameter
room_id(Pflicht) string: Room id from list_rooms, e.g. comfort-double.language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/get_room
list_offers
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.
Parameter
season"winter" | "summer" | "all", default "all": Only winter or summer offers, or all.language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/list_offers
list_areas
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.
Parameter
language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/list_areas
get_area
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.
Parameter
slug(Pflicht) string: Area slug from list_areas, e.g. lech or zuerich.language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/get_area
get_faq
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.
Parameter
querystring: Optional search term, e.g. "Parken" or "hond". Leave out for all questions.language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/get_faq
get_lift_status
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.
Parameter
language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/get_lift_status
get_weather
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.
Parameter
language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/get_weather
check_availability
Rooms that can be requested for the given dates and number of guests, with the from-price per night in EUR and the booking page URL. Check the flag "source": while it is "mock" the prices are placeholders until the live booking system is connected; do not present them as binding prices, send the guest to booking_url instead. Never books anything: the guest books on the booking page or sends a request with request_offer.
Parameter
arrival(Pflicht) string: Arrival date, YYYY-MM-DD.departure(Pflicht) string: Departure date, YYYY-MM-DD, after the arrival.adultsinteger, default 2: Number of adults, 1 to 10.childreninteger, default 0: Number of children, 0 to 8.house"hotel" | "chalet" | "motel": Only this house. Leave out for all houses.room_idstring: Only this room type (id from list_rooms).language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/check_availability
request_offer
Sends a non-binding request for an offer to the reservation team of Hotel Mondschein, the same way as the request form on the website. Also for company stays (employees of a company, 1 April to 1 December, Sunday to Friday, rates on request): then put the company name in name and the number of employees in employees. It does not book and nothing is paid. Only call this after the guest has seen the exact content, explicitly agreed to send it (confirm: true) and agreed to the privacy policy (privacy_consent: true). Without both it returns CONFIRMATION_REQUIRED and sends nothing. If online requests cannot be delivered it returns NOT_DELIVERED with the phone and e-mail of the hotel: nothing was sent, so give the guest those instead. The team answers by e-mail.
Parameter
name(Pflicht) string: Full name of the guest.email(Pflicht) email: E-mail address for the answer.phonestring: Optional phone number.house"all" | "hotel" | "chalet" | "motel", default "all": Requested house, or all if the guest has no preference.arrivalstring: Optional arrival date, YYYY-MM-DD.departurestring: Optional departure date, YYYY-MM-DD.guestsinteger: Optional number of guests.employeesinteger: Only for a company stay: the number of employees who would stay.message(Pflicht) string: The request in the words of the guest.privacy_consentboolean, default false: true only if the guest agreed to the privacy policy (its URL is the link in the CONFIRMATION_REQUIRED answer).confirmboolean, default false: true only if the guest explicitly confirmed sending this request.language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
REST: POST /api/agent/request_offer
open_page
Opens a page of mondschein.com in this browser tab: either a known page by name (home, hotel, chalet, motel, buchen, kontakt, anreise, faq, angebote, firmen for company stays, arlbergLive, gebiete and more) or an internal path or URL from another tool result. Only pages on this site. Use it after the guest chose a room, offer or area.
Parameter
page"home" | "hotel" | "chalet" | "motel" | "kontakt" | "danke" | "gebiete" | "arlbergLive" | "buchen" | "reservieren" | "bestaetigung" | "verwalten" | "impressum" | "datenschutz" | "karriere" | "firmen" | "anreise" | "faq" | "geschichte" | "skiArlberg" | "wellness" | "chefsTable" | "fondue" | "angebote" | "neuigkeiten": A known page by name.pathstring: An internal path such as /nl/comfort-double/ or a full URL on this site.language"de" | "nl" | "en", default "de": Language of texts and links: de, nl, en. Default de.
Anmeldung
Es gibt kein Gästekonto auf der Website, daher braucht kein Werkzeug einen Login, ein Token oder einen API-Schlüssel. Fragen Sie einen Gast nie nach einem Passwort.
Beispiele
curl -s https://mondschein.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -s https://mondschein.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_rooms","arguments":{"house":"chalet","language":"de"}}}'curl -s https://mondschein.com/api/agent/check_availability \
-H 'Content-Type: application/json' \
-d '{"arrival":"2027-01-10","departure":"2027-01-14","adults":2,"language":"de"}'Antworten und Fehler
Jedes Werkzeug antwortet mit JSON. Erfolg hat ok: true. Fehler werfen keine Ausnahme, sondern kommen als { ok: false, code, message, link, contact } zurück, mit einem dieser Codes: VALIDATION, CONFIRMATION_REQUIRED, FORBIDDEN, NOT_FOUND, UNKNOWN_TOOL, RATE_LIMITED, UNAVAILABLE, NOT_DELIVERED. Über REST folgt der HTTP-Status dem Code (400, 403, 404, 413, 429, 503).
Grenzen
Bitte höchstens etwa 120 Anfragen pro Minute. request_offer ist auf wenige Anfragen pro zehn Minuten begrenzt und wird zusätzlich gegen Bots geprüft.
Weitere Quellen
- /llms.txt
- /openapi.json
- /openapi.html
- /.well-known/webmcp.json
- MCP:
https://mondschein.com/mcp