Roomza Hotel Intelligence
The room-level truth layer of hospitality. Verified scores for exact hotel rooms, not just hotels.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"roomza": {
"url": "https://www.roomza.com/api/mcp"
}
}
}遠端端點
https://www.roomza.com/api/mcpstreamable-http它能做什麼
工具清單
工具(12)
🟢search_hotels(query, city, limit)
DISCOVERY ONLY: search Roomza's hotel database by city, keyword, or natural language query when the user has NOT named a specific hotel. Understands hotel types (boutique, resort, luxury), vibes (romantic, trendy, quiet), traveler types (couples, families, solo), neighborhoods, and nearby landmarks. Example queries: 'boutique hotels in SoHo', 'romantic resort near the Eiffel Tower', 'pet-friendly hotel in Seattle'. Renders for the user as a full map with a multi-hotel list (so do not repeat the list in prose). NEVER use this when the user names one specific hotel (e.g. 'Wynn Las Vegas'): the map of many hotels is wrong for that. Call get_hotel with the hotel name instead, then get_hotel_rooms and show_rooms.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Hotel name, city, or keyword"
},
"city": {
"description": "Narrow results to a specific city",
"type": "string"
},
"limit": {
"description": "Max results (default 10)",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Number of hotels returned"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Search note, e.g. a nearby-city fallback explanation"
},
"hotels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Hotel UUID — pass to get_hotel_rooms, get_hotel_pricing, get_nearby, ask_about_hotel"
},
"name": {
"type": "string"
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"url": {
"type": "string",
"description": "Canonical Roomza hotel page"
},
"score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Roomza score 0-100; null when unreviewed"
},
"reviewCount": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"hotelType": {
"type": "array",
"items": {
"type": "string"
}
},
"vibes": {
"type": "array",
"items": {
"type": "string"
}
},
"neighborhood": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"lat": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"lng": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"photoUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"roomCount": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Rooms tracked on Roomza for this hotel"
},
"roomsWithRecords": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Tracked rooms with at least one verified review"
},
"fromNightly": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Cached nightly from-price in USD; null when uncovered"
}
},
"required": [
"id",
"name",
"city",
"state",
"country",
"url",
"score",
"reviewCount",
"hotelType",
"vibes",
"neighborhood",
"lat",
"lng",
"photoUrl",
"roomCount",
"roomsWithRecords",
"fromNightly"
],
"additionalProperties": false
}
}
},
"required": [
"count",
"note",
"hotels"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_hotel(identifier)
Get full details for a hotel including: Roomza Truth summary, score breakdown, top strengths, hotel character (type, vibes, best-for), nearby landmarks with distances, neighborhood, awards, amenities, and review highlights from the open web. Use hotel name, slug, or UUID as the identifier. This is the FIRST call when the user names a specific hotel ('Wynn Las Vegas') — no search_hotels needed; the name resolves directly.
輸入結構描述
{
"type": "object",
"properties": {
"identifier": {
"type": "string",
"description": "Hotel name, slug, or UUID"
}
},
"required": [
"identifier"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"hotel": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"zip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"starRating": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"verificationStatus": {
"type": "string"
},
"score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Roomza score 0-100; null when unreviewed"
},
"reviewCount": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"scoreBreakdown": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"score": {
"type": "number"
}
},
"required": [
"label",
"score"
],
"additionalProperties": false
}
},
"topStrengths": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"score": {
"type": "number"
}
},
"required": [
"label",
"score"
],
"additionalProperties": false
}
},
"googleRating": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"googleReviewCount": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"hotelType": {
"type": "array",
"items": {
"type": "string"
}
},
"vibes": {
"type": "array",
"items": {
"type": "string"
}
},
"bestFor": {
"type": "array",
"items": {
"type": "string"
}
},
"neighborhood": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"awards": {
"type": "array",
"items": {
"type": "string"
}
},
"knownViews": {
"type": "array",
"items": {
"type": "string"
}
},
"uniqueFeatures": {
"type": "array",
"items": {
"type": "string"
}
},
"landmarks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"distanceMi": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"distanceMi"
],
"additionalProperties": false
}
},
"roomzaTruth": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"slug",
"name",
"url",
"address",
"city",
"state",
"zip",
"starRating",
"verificationStatus",
"score",
"reviewCount",
"scoreBreakdown",
"topStrengths",
"googleRating",
"googleReviewCount",
"amenities",
"hotelType",
"vibes",
"bestFor",
"neighborhood",
"awards",
"knownViews",
"uniqueFeatures",
"landmarks",
"roomzaTruth"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "null when the hotel was not found"
}
},
"required": [
"found",
"hotel"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_hotel_rooms(hotel_id, room_number)
List rooms for a hotel with individual Roomza scores, bed type, view, and floor. Pass room_number to look up a specific room.
輸入結構描述
{
"type": "object",
"properties": {
"hotel_id": {
"type": "string",
"description": "Hotel UUID from search_hotels/get_hotel (the URL slug also works)"
},
"room_number": {
"description": "Look up a specific room by number, e.g. \"434\"",
"type": "string"
}
},
"required": [
"hotel_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"rooms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Room UUID — pass to show_rooms or secure_room"
},
"roomNumber": {
"type": "string"
},
"floor": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"roomTypeName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"bedType": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"view": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"sqFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"bathtub": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "null = unknown; false = confirmed absent"
},
"balcony": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"adaAccessible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"miniFridge": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"microwave": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"adaFeatures": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Roomza room score 0-100"
},
"reviewCount": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"roomNumber",
"floor",
"roomTypeName",
"bedType",
"view",
"sqFt",
"bathtub",
"balcony",
"adaAccessible",
"miniFridge",
"microwave",
"adaFeatures",
"score",
"reviewCount",
"url"
],
"additionalProperties": false
}
},
"roomTypes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"fromNightly": {
"type": "number",
"description": "Typical nightly from-price in USD from the hotel's public rates"
}
},
"required": [
"name",
"fromNightly"
],
"additionalProperties": false
},
"description": "Only populated when the hotel has no room records yet: bookable room types from live rates"
},
"bookUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Roomza booking link for this hotel; set only on the no-records fallback"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Copy encouraging a booking + review to start this hotel's room record"
}
},
"required": [
"count",
"rooms",
"roomTypes",
"bookUrl",
"note"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_recent_reviews(hotel_id, room_number, limit)
Get verified guest reviews for a hotel, including comments and insider tips. Pass room_number to get reviews for a specific room.
輸入結構描述
{
"type": "object",
"properties": {
"hotel_id": {
"type": "string",
"description": "Hotel UUID (the URL slug also works)"
},
"room_number": {
"description": "Filter reviews to a specific room number, e.g. \"434\"",
"type": "string"
},
"limit": {
"description": "Number of reviews (default 5)",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"hotel_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Set when no reviews are returned, e.g. unknown room"
},
"reviews": {
"type": "array",
"items": {
"type": "object",
"properties": {
"guestDisplayName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"stayMonth": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"roomId": {
"type": "string"
},
"roomNumber": {
"type": "string"
},
"roomUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Overall score 0-100"
},
"comment": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"insiderTip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"guestDisplayName",
"stayMonth",
"roomId",
"roomNumber",
"roomUrl",
"score",
"comment",
"insiderTip"
],
"additionalProperties": false
}
}
},
"required": [
"count",
"note",
"reviews"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_hotel_pricing(hotel_id, check_in, check_out)
Get public room rates for a hotel (the hotel's own public rate; booking on Roomza never costs more). Pass check_in and check_out dates (YYYY-MM-DD) to get nightly from-prices per room type. Without dates, returns the hotel's typical nightly from-price. No booking links; to price and book an exact room, use secure_room.
輸入結構描述
{
"type": "object",
"properties": {
"hotel_id": {
"type": "string",
"description": "Hotel UUID (the URL slug also works)"
},
"check_in": {
"description": "Check-in date in YYYY-MM-DD format (defaults to today)",
"type": "string"
},
"check_out": {
"description": "Check-out date in YYYY-MM-DD format (defaults to tomorrow)",
"type": "string"
}
},
"required": [
"hotel_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"found": {
"type": "boolean",
"description": "false when the hotel is unknown"
},
"hotelName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"currency": {
"type": "string"
},
"checkIn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"checkOut": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"nights": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"roomTypes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"fromNightly": {
"type": "number",
"description": "Nightly from-price in whole dollars, hotel's own public rate"
}
},
"required": [
"name",
"fromNightly"
],
"additionalProperties": false
},
"description": "Per-room-type from-prices when dates were given and live rates exist"
},
"typicalNightlyFrom": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Hotel-level typical nightly from-price in dollars"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"found",
"hotelName",
"currency",
"checkIn",
"checkOut",
"nights",
"roomTypes",
"typicalNightlyFrom",
"note"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_nearby(hotel_id, start_date, end_date)
Get nearby places (restaurants, bars, attractions, parks) and upcoming events near a hotel. Optionally filter events to a travel window with start_date / end_date.
輸入結構描述
{
"type": "object",
"properties": {
"hotel_id": {
"type": "string",
"description": "Hotel UUID from search_hotels/get_hotel (the URL slug also works)"
},
"start_date": {
"description": "Travel start date YYYY-MM-DD -- filters events to this window",
"type": "string"
},
"end_date": {
"description": "Travel end date YYYY-MM-DD -- filters events to this window",
"type": "string"
}
},
"required": [
"hotel_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"places": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"rating": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"priceLevel": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"category",
"rating",
"priceLevel",
"address"
],
"additionalProperties": false
}
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"when": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"venueName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"ticketLink": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"title",
"date",
"when",
"venueName",
"ticketLink"
],
"additionalProperties": false
}
}
},
"required": [
"found",
"places",
"events"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢ask_about_hotel(hotel_id, question)
Ask a specific question about a hotel that standard data may not answer. Uses AI with web search to find the answer. Examples: 'Does this hotel have Eiffel Tower views?', 'Is there a rooftop bar?', 'How far is it from the airport?'. Try get_hotel first; use this only when that data doesn't answer the question.
輸入結構描述
{
"type": "object",
"properties": {
"hotel_id": {
"type": "string",
"description": "Hotel UUID (the URL slug also works)"
},
"question": {
"type": "string",
"description": "The specific question about the hotel"
}
},
"required": [
"hotel_id",
"question"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"answer": {
"type": "string"
}
},
"required": [
"answer"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢show_rooms(room_ids, check_in, check_out)
REQUIRED whenever you present rooms. Whenever you are about to mention, recommend, or describe one or more specific rooms to the user, you MUST call this tool with those room UUIDs INSTEAD of writing the rooms in text. This is mandatory even when there is only ONE matching room — show it as a single hero card, never describe a lone room in prose. Call this BEFORE writing any prose about the rooms; the cards must appear first, then a brief summary. Pass room UUIDs (from get_hotel_rooms or search results) in ranked order, best first, 1 to 8 rooms. ALWAYS pass check_in and check_out when you know the user's dates: card prices are then for those exact dates. Without dates, cards show a typical from-price that can differ a lot from any specific dates. Each card shows photo, Roomza score, view, bed, and price. NEVER ask the user whether they want to see cards or images — just call this tool.
輸入結構描述
{
"type": "object",
"properties": {
"room_ids": {
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string"
},
"description": "Room UUIDs to display, in ranked order (best first). 1-8 rooms."
},
"check_in": {
"description": "Check-in date YYYY-MM-DD. Pass whenever the user's dates are known so card prices match those dates.",
"type": "string"
},
"check_out": {
"description": "Check-out date YYYY-MM-DD.",
"type": "string"
}
},
"required": [
"room_ids"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"rooms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"hotelId": {
"type": "string"
},
"hotelName": {
"type": "string"
},
"location": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"roomLabel": {
"type": "string"
},
"roomNumber": {
"type": "string"
},
"floor": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"reviewCount": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"pricePerNight": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Nightly price for the requested dates; null when no dates were given or no live rate exists"
},
"priceNote": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Shown in the price slot when pricePerNight is null, e.g. a prompt to provide dates"
},
"currency": {
"type": "string"
},
"photoUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"photoSource": {
"anyOf": [
{
"type": "string",
"enum": [
"room",
"hotel"
]
},
{
"type": "null"
}
],
"description": "Whether photoUrl shows the actual room or is a hotel-level fallback"
},
"view": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"bedType": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"sqFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"blurb": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"url": {
"type": "string"
}
},
"required": [
"id",
"hotelId",
"hotelName",
"location",
"roomLabel",
"roomNumber",
"floor",
"score",
"reviewCount",
"pricePerNight",
"priceNote",
"currency",
"photoUrl",
"photoSource",
"view",
"bedType",
"sqFt",
"blurb",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"rooms"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_my_trips
Look up your upcoming and past hotel bookings/trips on Roomza. Requires connecting your Roomza account.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"upcoming": {
"type": "array",
"items": {
"type": "object",
"properties": {
"bookingId": {
"type": "string",
"description": "Pass to add_special_request"
},
"hotelId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"hotelName": {
"type": "string"
},
"hotelUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"checkIn": {
"type": "string",
"description": "YYYY-MM-DD"
},
"checkOut": {
"type": "string",
"description": "YYYY-MM-DD"
},
"nights": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"confirmationNumber": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Booking reference. For stays booked through Roomza this is the supplier reference until the hotel issues its own number"
},
"hotelConfirmationCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The hotel's own confirmation number; null until the hotel issues it"
},
"bookingPlatform": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"specialRequests": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"bookingId",
"hotelId",
"hotelName",
"hotelUrl",
"city",
"state",
"checkIn",
"checkOut",
"nights",
"confirmationNumber",
"hotelConfirmationCode",
"bookingPlatform",
"status",
"specialRequests"
],
"additionalProperties": false
}
},
"past": {
"type": "array",
"items": {
"type": "object",
"properties": {
"bookingId": {
"type": "string",
"description": "Pass to add_special_request"
},
"hotelId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"hotelName": {
"type": "string"
},
"hotelUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"checkIn": {
"type": "string",
"description": "YYYY-MM-DD"
},
"checkOut": {
"type": "string",
"description": "YYYY-MM-DD"
},
"nights": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"confirmationNumber": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Booking reference. For stays booked through Roomza this is the supplier reference until the hotel issues its own number"
},
"hotelConfirmationCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The hotel's own confirmation number; null until the hotel issues it"
},
"bookingPlatform": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"specialRequests": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"bookingId",
"hotelId",
"hotelName",
"hotelUrl",
"city",
"state",
"checkIn",
"checkOut",
"nights",
"confirmationNumber",
"hotelConfirmationCode",
"bookingPlatform",
"status",
"specialRequests"
],
"additionalProperties": false
}
}
},
"required": [
"count",
"upcoming",
"past"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_my_preferences
Get your saved room preferences, standing requests, and loyalty accounts on Roomza. Requires connecting your Roomza account.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"preferences": {
"anyOf": [
{
"type": "object",
"properties": {
"bedType": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"view": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"bathtub": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"balcony": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"petFriendly": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"highFloor": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"awayFromElevator": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"quietSide": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"minStars": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"maxPricePerNight": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"upgradePreference": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"bedType",
"view",
"bathtub",
"balcony",
"petFriendly",
"highFloor",
"awayFromElevator",
"quietSide",
"minStars",
"maxPricePerNight",
"upgradePreference"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"standingRequests": {
"type": "array",
"items": {
"type": "string"
}
},
"loyaltyPrograms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"program": {
"type": "string"
},
"tier": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"program",
"tier"
],
"additionalProperties": false
}
},
"travelCards": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"found",
"preferences",
"standingRequests",
"loyaltyPrograms",
"travelCards"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡add_special_request(booking_id, request)
Add a special request to one of your bookings (e.g. extra pillows, late checkout, anniversary celebration). Requires connecting your Roomza account.
輸入結構描述
{
"type": "object",
"properties": {
"booking_id": {
"type": "string",
"description": "The booking ID to add the request to (get this from get_my_trips)"
},
"request": {
"type": "string",
"description": "The special request to add"
}
},
"required": [
"booking_id",
"request"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"ok",
"message"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}⚪secure_room(room_id, check_in, check_out, guests)
Price and lock an exact room for specific dates with Room Lock. Returns the live price, cancellation policy, and a secure booking link with the room preselected. Requires connecting your Roomza account.
輸入結構描述
{
"type": "object",
"properties": {
"room_id": {
"type": "string",
"description": "Room UUID (from show_rooms or get_hotel_rooms)"
},
"check_in": {
"type": "string",
"description": "Check-in date, YYYY-MM-DD"
},
"check_out": {
"type": "string",
"description": "Check-out date, YYYY-MM-DD"
},
"guests": {
"description": "Guest count (default 2)",
"type": "integer",
"minimum": 1,
"maximum": 8
}
},
"required": [
"room_id",
"check_in",
"check_out"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"description": "false = the request could not be quoted; see message"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Set when ok is false"
},
"roomId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"roomNumber": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"hotelId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"hotelName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"checkIn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"checkOut": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"nights": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"guests": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"currency": {
"type": "string"
},
"bookable": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "true when a live bookable rate was found"
},
"indicativeOnly": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "true when the price is from public listings, not bookable"
},
"rateName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"totalToday": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Total charged today in dollars"
},
"dueAtHotel": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Additional amount due at the hotel, dollars"
},
"publicRate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Hotel's public rate in dollars, for comparison"
},
"cancellation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"trackRecord": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Hotel's room-request honor track record"
},
"bookingUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Secure checkout link with the room preselected; payment happens only there"
}
},
"required": [
"ok",
"message",
"roomId",
"roomNumber",
"hotelId",
"hotelName",
"checkIn",
"checkOut",
"nights",
"guests",
"currency",
"bookable",
"indicativeOnly",
"rateName",
"totalToday",
"dueAtHotel",
"publicRate",
"cancellation",
"trackRecord",
"bookingUrl"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}社群
證據