MCP-Server

The Hill Kinabalu

io.github.tasutagazo/the-hill-kinabalu
Reisen & Hospitality Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Provides hotel room listings, date-specific availability, booking links, and wedding venue information for The Hill Kinabalu.

check_room_availability
Check room availability
Check The Hill Kinabalu room availability for an exact stay and party size. Before calling, collect check_in_date, check_out_date, and total_pax from the user; never invent missing values. Dates must use YYYY-MM-DD, check-out must be after check-in, and the maximum stay is 30 nights. Returns suitable room-type options and the number of rooms required. This is a read-only availability snapshot and does not create or hold a booking.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['check_in_date', 'check_out_date', 'total_pax'], 'properties': {'total_pax': {'type': 'integer', 'maximum': 40, 'minimum': 1, 'description': 'Total number of staying guests, including adults and children.'}, 'check_in_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Guest check-in date in YYYY-MM-DD format.'}, 'check_out_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Guest check-out date in YYYY-MM-DD format.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiVersion', 'property', 'query', 'available', 'availableRoomOptions', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['availableOptionCount', 'availabilityIsSnapshot', 'holdCreated', 'liveGuestOrBookingDataIncluded', 'note'], 'properties': {'note': {'type': 'string'}, 'holdCreated': {'type': 'boolean', 'const': False}, 'availableOptionCount': {'type': 'integer', 'minimum': 0}, 'availabilityIsSnapshot': {'type': 'boolean', 'const': True}, 'liveGuestOrBookingDataIncluded': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}, 'query': {'type': 'object', 'required': ['checkInDate', 'checkOutDate', 'nights', 'totalPax'], 'properties': {'nights': {'type': 'integer', 'exclusiveMinimum': 0}, 'totalPax': {'type': 'integer', 'exclusiveMinimum': 0}, 'checkInDate': {'type': 'string'}, 'checkOutDate': {'type': 'string'}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['name', 'currency', 'timeZone'], 'properties': {'name': {'type': 'string', 'const': 'The Hill Kinabalu'}, 'currency': {'type': 'string', 'const': 'MYR'}, 'timeZone': {'type': 'string', 'const': 'Asia/Kuching'}}, 'additionalProperties': False}, 'available': {'type': 'boolean'}, 'apiVersion': {'type': 'string', 'const': '1.0'}, 'availableRoomOptions': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'roomsRequired', 'maximumGuestsPerRoom', 'unitsAvailableForEntireStay', 'rates', 'links'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'links': {'type': 'object', 'required': ['details', 'booking'], 'properties': {'booking': {'type': 'string', 'format': 'uri'}, 'details': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'rates': {'type': 'object', 'required': ['currency', 'weekday', 'weekend', 'unit'], 'properties': {'unit': {'type': 'string', 'const': 'room_per_night'}, 'weekday': {'type': ['number', 'null']}, 'weekend': {'$ref': '#/properties/availableRoomOptions/items/properties/rates/properties/weekday'}, 'currency': {'type': 'string', 'const': 'MYR'}}, 'additionalProperties': False}, 'roomsRequired': {'type': 'integer', 'exclusiveMinimum': 0}, 'maximumGuestsPerRoom': {'type': 'integer', 'exclusiveMinimum': 0}, 'unitsAvailableForEntireStay': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}}}, 'additionalProperties': False}
generate_booking_link
Generate booking link
Generate a verified The Hill Kinabalu checkout link only after the guest has supplied room_slug, check_in_date, check_out_date, and total_pax. Use a room_slug returned by check_room_availability. Never invent or calculate nights, room quantity, rates, totals, funnelSessionId, or visitorId: this tool validates availability and derives all of them on the server. If any required value is missing, invalid, or the selected room is unavailable, no checkout link is returned. This creates no booking and holds no inventory.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['room_slug', 'check_in_date', 'check_out_date', 'total_pax'], 'properties': {'room_slug': {'type': 'string', 'minLength': 1, 'description': 'Exact room slug selected from check_room_availability.'}, 'total_pax': {'type': 'integer', 'maximum': 40, 'minimum': 1, 'description': 'Total number of staying guests, including adults and children.'}, 'check_in_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Guest check-in date in YYYY-MM-DD format.'}, 'check_out_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Guest check-out date in YYYY-MM-DD format.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiVersion', 'property', 'selection', 'stay', 'pricing', 'verification', 'checkout'], 'properties': {'stay': {'type': 'object', 'required': ['checkInDate', 'checkOutDate', 'nights', 'totalPax'], 'properties': {'nights': {'type': 'integer', 'exclusiveMinimum': 0}, 'totalPax': {'type': 'integer', 'exclusiveMinimum': 0}, 'checkInDate': {'type': 'string'}, 'checkOutDate': {'type': 'string'}}, 'additionalProperties': False}, 'pricing': {'type': 'object', 'required': ['currency', 'total', 'totalFormatted', 'unit', 'calculatedByServer', 'nightlyBreakdown'], 'properties': {'unit': {'type': 'string', 'const': 'stay_total'}, 'total': {'type': 'number', 'exclusiveMinimum': 0}, 'currency': {'type': 'string', 'const': 'MYR'}, 'totalFormatted': {'type': 'string'}, 'nightlyBreakdown': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'rateType', 'ramadanRateApplied', 'ratePerRoom', 'rooms', 'lineTotal'], 'properties': {'date': {'type': 'string'}, 'rooms': {'type': 'integer', 'exclusiveMinimum': 0}, 'rateType': {'enum': ['weekday', 'weekend'], 'type': 'string'}, 'lineTotal': {'type': 'number', 'exclusiveMinimum': 0}, 'ratePerRoom': {'type': 'number', 'exclusiveMinimum': 0}, 'ramadanRateApplied': {'type': 'boolean'}}, 'additionalProperties': False}}, 'calculatedByServer': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}, 'checkout': {'type': 'object', 'required': ['url', 'generatedByServer', 'analyticsSource'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'analyticsSource': {'type': 'string', 'const': 'mcp'}, 'generatedByServer': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['name', 'currency', 'timeZone'], 'properties': {'name': {'type': 'string', 'const': 'The Hill Kinabalu'}, 'currency': {'type': 'string', 'const': 'MYR'}, 'timeZone': {'type': 'string', 'const': 'Asia/Kuching'}}, 'additionalProperties': False}, 'selection': {'type': 'object', 'required': ['name', 'slug', 'inventoryKey', 'roomsRequired', 'maximumGuestsPerRoom', 'unitsAvailableForEntireStay'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'inventoryKey': {'type': 'string'}, 'roomsRequired': {'type': 'integer', 'exclusiveMinimum': 0}, 'maximumGuestsPerRoom': {'type': 'integer', 'exclusiveMinimum': 0}, 'unitsAvailableForEntireStay': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'apiVersion': {'type': 'string', 'const': '1.0'}, 'verification': {'type': 'object', 'required': ['allRequiredParametersSatisfied', 'liveAvailabilityChecked', 'totalCalculatedByServer', 'availabilityIsSnapshot', 'holdCreated', 'note'], 'properties': {'note': {'type': 'string'}, 'holdCreated': {'type': 'boolean', 'const': False}, 'availabilityIsSnapshot': {'type': 'boolean', 'const': True}, 'liveAvailabilityChecked': {'type': 'boolean', 'const': True}, 'totalCalculatedByServer': {'type': 'boolean', 'const': True}, 'allRequiredParametersSatisfied': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_wedding_information
Get wedding information
Retrieve The Hill Kinabalu’s official public wedding venue and 2026/2027 package information, including capacity, event sizes, starting package prices, key inclusions, add-ons without prices, payment structures, and enquiry links. Use this when someone asks about weddings, wedding packages, the event venue, guest capacity, package pricing, or how to enquire. This tool does not check date availability or submit an enquiry.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiVersion', 'property', 'venue', 'collection', 'packages', 'addOns', 'paymentPlans', 'contact', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['catalogueOnly', 'liveAvailabilityIncluded', 'pricesAreStartingPrices', 'addOnPricesIncluded'], 'properties': {'catalogueOnly': {'type': 'boolean', 'const': True}, 'addOnPricesIncluded': {'type': 'boolean', 'const': False}, 'pricesAreStartingPrices': {'type': 'boolean', 'const': True}, 'liveAvailabilityIncluded': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}, 'venue': {'type': 'object', 'required': ['name', 'location', 'description', 'maximumGuests', 'usableSpace', 'parkingCapacityVehicles', 'spaces', 'viewNote'], 'properties': {'name': {'type': 'string'}, 'spaces': {'type': 'array', 'items': {'type': 'string'}}, 'location': {'type': 'string'}, 'viewNote': {'type': 'string'}, 'description': {'type': 'string'}, 'usableSpace': {'type': 'string'}, 'maximumGuests': {'type': 'integer', 'exclusiveMinimum': 0}, 'parkingCapacityVehicles': {'type': 'integer', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'addOns': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'description', 'pricePublished'], 'properties': {'name': {'type': 'string'}, 'description': {'type': 'string'}, 'pricePublished': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}}, 'contact': {'type': 'object', 'required': ['weddingHotline', 'details', 'enquiry'], 'properties': {'details': {'type': 'string', 'format': 'uri'}, 'enquiry': {'type': 'string', 'format': 'uri'}, 'weddingHotline': {'type': 'string'}}, 'additionalProperties': False}, 'packages': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'description', 'startingPrice', 'keyInclusions'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'description': {'type': 'string'}, 'keyInclusions': {'type': 'array', 'items': {'type': 'string'}}, 'startingPrice': {'type': 'object', 'required': ['currency', 'amount', 'qualifier'], 'properties': {'amount': {'type': 'number', 'minimum': 0}, 'currency': {'type': 'string', 'const': 'MYR'}, 'qualifier': {'type': 'string', 'const': 'from'}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'property': {'type': 'object', 'required': ['name', 'currency'], 'properties': {'name': {'type': 'string', 'const': 'The Hill Kinabalu'}, 'currency': {'type': 'string', 'const': 'MYR'}}, 'additionalProperties': False}, 'apiVersion': {'type': 'string', 'const': '1.0'}, 'collection': {'type': 'object', 'required': ['years', 'eventDurationHours', 'eventSizes', 'commonInclusions'], 'properties': {'years': {'type': 'string'}, 'eventSizes': {'type': 'array', 'items': {'type': 'object', 'required': ['guests', 'setup'], 'properties': {'setup': {'type': 'string'}, 'guests': {'type': 'integer', 'exclusiveMinimum': 0}}, 'additionalProperties': False}}, 'commonInclusions': {'type': 'array', 'items': {'type': 'string'}}, 'eventDurationHours': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'paymentPlans': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'structure', 'terms'], 'properties': {'label': {'type': 'string'}, 'terms': {'type': 'string'}, 'structure': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
list_rooms
List rooms
Retrieve The Hill Kinabalu’s official current room catalogue, including room types, indicative weekday and weekend rates, guest capacity, beds, amenities, unit counts, images, and booking links. Use this when someone asks which rooms The Hill Kinabalu offers or what its room rates are. This catalogue does not check availability for specific dates.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiVersion', 'property', 'rooms', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['count', 'catalogueOnly', 'liveAvailabilityIncluded'], 'properties': {'count': {'type': 'integer', 'minimum': 0}, 'catalogueOnly': {'type': 'boolean', 'const': True}, 'liveAvailabilityIncluded': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}, 'rooms': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'slug', 'category', 'description', 'occupancy', 'beds', 'amenities', 'rates', 'totalUnits', 'media', 'links'], 'properties': {'id': {'type': 'string'}, 'beds': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'count'], 'properties': {'type': {'$ref': '#/properties/rooms/items/properties/category'}, 'count': {'$ref': '#/properties/rooms/items/properties/occupancy/properties/standardGuests'}}, 'additionalProperties': False}}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'links': {'type': 'object', 'required': ['details', 'booking'], 'properties': {'booking': {'type': 'string', 'format': 'uri'}, 'details': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'media': {'type': 'object', 'required': ['mainImageUrl', 'mainImageAlt'], 'properties': {'mainImageAlt': {'$ref': '#/properties/rooms/items/properties/category'}, 'mainImageUrl': {'$ref': '#/properties/rooms/items/properties/category'}}, 'additionalProperties': False}, 'rates': {'type': 'object', 'required': ['currency', 'weekday', 'weekend', 'unit', 'availabilityIncluded'], 'properties': {'unit': {'type': 'string', 'const': 'room_per_night'}, 'weekday': {'$ref': '#/properties/rooms/items/properties/occupancy/properties/standardGuests'}, 'weekend': {'$ref': '#/properties/rooms/items/properties/occupancy/properties/standardGuests'}, 'currency': {'type': 'string', 'const': 'MYR'}, 'availabilityIncluded': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}, 'category': {'type': ['string', 'null']}, 'amenities': {'type': 'array', 'items': {'type': 'string'}}, 'occupancy': {'type': 'object', 'required': ['standardGuests', 'maximumGuests'], 'properties': {'maximumGuests': {'$ref': '#/properties/rooms/items/properties/occupancy/properties/standardGuests'}, 'standardGuests': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'totalUnits': {'$ref': '#/properties/rooms/items/properties/occupancy/properties/standardGuests'}, 'description': {'$ref': '#/properties/rooms/items/properties/category'}}, 'additionalProperties': False}}, 'property': {'type': 'object', 'required': ['name', 'currency'], 'properties': {'name': {'type': 'string', 'const': 'The Hill Kinabalu'}, 'currency': {'type': 'string', 'const': 'MYR'}}, 'additionalProperties': False}, 'apiVersion': {'type': 'string', 'const': '1.0'}}, 'additionalProperties': False}
Hinzugefügt
get_wedding_information
17. September 2026 12:52
Hinzugefügt
generate_booking_link
17. September 2026 12:52
Hinzugefügt
check_room_availability
17. September 2026 12:52
Hinzugefügt
list_rooms
17. September 2026 12:52