MCP 服务器

The Hill Kinabalu

io.github.tasutagazo/the-hill-kinabalu
旅行与酒店 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

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.
只读 幂等
输入模式
{'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}
输出模式
{'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.
只读
输入模式
{'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}
输出模式
{'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.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输出模式
{'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.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输出模式
{'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}
已添加
get_wedding_information
2026年9月17日 12:52
已添加
generate_booking_link
2026年9月17日 12:52
已添加
check_room_availability
2026年9月17日 12:52
已添加
list_rooms
2026年9月17日 12:52