RoomLast - Last-Minute Hotels
Find last-minute hotels, compare room offers, and continue on RoomLast to book.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"roomlast": {
"url": "https://mcp.roomlast.com/mcp"
}
}
}遠端端點
https://mcp.roomlast.com/mcpstreamable-http它能做什麼
工具清單
工具(3)
🟢search_accommodations(destination, checkinDate, checkoutDate, dateIntent, timeZone, ...)
Finds last-minute hotels in a city, neighborhood, airport, or landmark for tonight or specified upcoming dates. Dates are represented by dateIntent tonight or by checkinDate and checkoutDate. Supports occupancy, price, stars, guest score, property type, amenities, cancellation, and sort filters. Returns hotel IDs, facts, masked RoomLast price bands, public-rate comparisons, and RoomLast links. Room choices and exact private prices are not included in these results.
輸入結構描述
{
"type": "object",
"properties": {
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 160,
"description": "City, neighborhood, airport, landmark, or other broad destination."
},
"checkinDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Explicit check-in date in YYYY-MM-DD; paired with checkoutDate."
},
"checkoutDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Explicit check-out date in YYYY-MM-DD; paired with checkinDate."
},
"dateIntent": {
"type": "string",
"enum": [
"tonight"
],
"description": "Relative stay intent. Tonight resolves check-in as the current local date and check-out as the following date."
},
"timeZone": {
"type": "string",
"minLength": 3,
"maxLength": 80,
"description": "Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence."
},
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 16,
"description": "Total adult guests. When omitted, RoomLast defaults to 2 adults per room."
},
"children": {
"type": "integer",
"minimum": 0,
"maximum": 8,
"description": "Total child guests; equals childrenAges.length."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 17
},
"maxItems": 8,
"default": [],
"description": "Age of every child at check-in. The array length must equal children."
},
"rooms": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"default": 1,
"description": "Number of rooms. Each room receives the default of 2 adults when adults is omitted."
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"default": "USD"
},
"page": {
"type": "integer",
"minimum": 1,
"default": 1
},
"sort": {
"type": "string",
"enum": [
"top-picks",
"distance",
"total",
"total-desc",
"reviews"
],
"default": "top-picks",
"description": "Result order: top-picks, distance, total price ascending, total price descending, or guest reviews."
},
"minimumPrice": {
"type": "number",
"minimum": 0,
"description": "Minimum nightly price in the selected currency."
},
"maximumPrice": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Maximum nightly price in the selected currency."
},
"minimumStarRating": {
"type": "number",
"minimum": 1,
"maximum": 5,
"description": "Minimum hotel star classification from 1 to 5; distinct from guest review score."
},
"starRatings": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"maxItems": 5,
"description": "Exact accepted hotel star classifications."
},
"minimumReviewScore": {
"type": "number",
"minimum": 0,
"maximum": 10,
"description": "Minimum guest review score out of 10; distinct from hotel star classification."
},
"propertyTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"hotel",
"motel",
"resort",
"hostel",
"apartment",
"apart-hotel",
"extended-stay",
"condo",
"studio",
"house",
"townhome",
"guesthouse",
"bed-and-breakfast",
"villa",
"cabin",
"cottage",
"campground",
"rv",
"estate",
"boat",
"chateau",
"hotel-suites",
"corporate-apartment",
"farm-house",
"lodge",
"barn",
"mobile-home",
"house-boat",
"castle",
"mas",
"tower",
"mill",
"building"
]
},
"maxItems": 12,
"description": "Accepted accommodation types, such as hotel, motel, resort, hostel, or apartment."
},
"freeCancellationOnly": {
"type": "boolean",
"default": false,
"description": "Whether results require free cancellation or refundable rates."
},
"amenities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"pool",
"parking",
"wifi",
"free-wifi",
"kitchen",
"fireplace",
"beachfront",
"washer",
"dryer",
"air-conditioning",
"tv",
"heating",
"family-friendly",
"kids-friendly",
"pet-friendly",
"hot-tub",
"free-breakfast",
"free-cancellation",
"laundry-in-unit",
"laundry-on-site",
"accessible",
"for-couples",
"solarium",
"long-term-deals",
"pay-over-time",
"accept-local"
]
},
"maxItems": 12,
"description": "Amenities required in every result."
}
},
"required": [
"destination",
"children"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"accommodations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"address": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"stateCode": {
"type": [
"string",
"null"
]
},
"propertyType": {
"type": [
"string",
"null"
]
},
"imageUrl": {
"type": [
"string",
"null"
]
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"starRating": {
"type": [
"number",
"null"
]
},
"reviewScore": {
"type": [
"number",
"null"
]
},
"reviewScale": {
"type": [
"number",
"null"
]
},
"reviewCount": {
"type": [
"number",
"null"
]
},
"ratingLabel": {
"type": [
"string",
"null"
]
},
"refundable": {
"type": [
"boolean",
"null"
]
},
"highlights": {
"type": "array",
"items": {
"type": "string"
}
},
"pointsOfInterest": {
"type": [
"string",
"null"
]
},
"highlightReview": {
"type": [
"string",
"null"
]
},
"consecutivePositiveReviewCount": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"wholesale": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"url": {
"type": [
"string",
"null"
]
},
"nightly": {
"type": [
"number",
"null"
]
},
"total": {
"type": [
"number",
"null"
]
},
"maskedTotal": {
"type": [
"string",
"null"
]
},
"currency": {
"type": "string"
},
"includesTaxesAndFees": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"label",
"url",
"nightly",
"total",
"maskedTotal",
"currency",
"includesTaxesAndFees"
],
"additionalProperties": false
},
"comparison": {
"anyOf": [
{
"$ref": "#/properties/accommodations/items/properties/wholesale"
},
{
"type": "null"
}
]
},
"savings": {
"type": [
"number",
"null"
]
},
"savingsPercent": {
"type": [
"number",
"null"
]
},
"detailsUrl": {
"type": [
"string",
"null"
]
},
"availabilityToken": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"name",
"address",
"city",
"stateCode",
"propertyType",
"imageUrl",
"images",
"latitude",
"longitude",
"starRating",
"reviewScore",
"reviewScale",
"reviewCount",
"ratingLabel",
"refundable",
"highlights",
"pointsOfInterest",
"highlightReview",
"consecutivePositiveReviewCount",
"wholesale",
"comparison",
"savings",
"savingsPercent",
"detailsUrl",
"availabilityToken"
],
"additionalProperties": false
}
},
"page": {
"type": "integer"
},
"total": {
"type": "integer"
},
"totalPages": {
"type": "integer"
},
"search": {
"type": "object",
"properties": {
"destination": {
"type": "string"
},
"checkinDate": {
"type": "string"
},
"checkoutDate": {
"type": "string"
},
"adults": {
"type": "integer"
},
"children": {
"type": "integer"
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer"
}
},
"rooms": {
"type": "integer"
},
"currency": {
"type": "string"
},
"sort": {
"type": "string",
"enum": [
"top-picks",
"distance",
"total",
"total-desc",
"reviews"
]
}
},
"required": [
"destination",
"checkinDate",
"checkoutDate",
"adults",
"children",
"childrenAges",
"rooms",
"currency",
"sort"
],
"additionalProperties": false
},
"priceDisclosure": {
"type": "string"
}
},
"required": [
"accommodations",
"page",
"total",
"totalPages",
"search",
"priceDisclosure"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_accommodation_details(propertyId, currency)
Returns undated facts for one identified RoomLast property ID, including address, description, photos, amenities, check-in and checkout times, star rating, and guest-review data. Availability, room offers, prices, breakfast, and cancellation terms are not included.
輸入結構描述
{
"type": "object",
"properties": {
"propertyId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"default": "USD"
}
},
"required": [
"propertyId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"address": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"starRating": {
"type": [
"number",
"null"
]
},
"reviewScore": {
"type": [
"number",
"null"
]
},
"reviewScale": {
"type": [
"number",
"null"
]
},
"reviewCount": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"highlights": {
"type": "array",
"items": {
"type": "string"
}
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"checkinFrom": {
"type": [
"string",
"null"
]
},
"checkoutUntil": {
"type": [
"string",
"null"
]
},
"propertyType": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"name",
"address",
"description",
"images",
"latitude",
"longitude",
"starRating",
"reviewScore",
"reviewScale",
"reviewCount",
"highlights",
"amenities",
"checkinFrom",
"checkoutUntil",
"propertyType"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_accommodation_offers(propertyId, hotelName, destination, checkinDate, checkoutDate, ...)
Returns one named or identified hotel's live room offers for tonight or specified upcoming dates. Dates are represented by dateIntent tonight or by checkinDate and checkoutDate. Results include room types, photos, breakfast, refundability, cancellation terms, public-rate comparisons, masked RoomLast price bands, and RoomLast links. Supports single-room and multi-room occupancy. Exact private prices and booking are available on RoomLast.
輸入結構描述
{
"type": "object",
"properties": {
"propertyId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "RoomLast property ID from a search result or RoomLast stay URL."
},
"hotelName": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Exact hotel name when propertyId is unavailable."
},
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 160,
"description": "Optional city or region for disambiguating hotelName."
},
"checkinDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Explicit check-in date in YYYY-MM-DD; paired with checkoutDate."
},
"checkoutDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Explicit check-out date in YYYY-MM-DD; paired with checkinDate."
},
"dateIntent": {
"type": "string",
"enum": [
"tonight"
],
"description": "Relative stay intent. Tonight resolves check-in as the current local date and check-out as the following date."
},
"timeZone": {
"type": "string",
"minLength": 3,
"maxLength": 80,
"description": "Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence."
},
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 16,
"default": 2,
"description": "Total adult guests."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 17
},
"maxItems": 8,
"default": [],
"description": "Age of each child at check-in."
},
"rooms": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"default": 1,
"description": "Number of rooms. Each room requires at least one adult."
},
"roomArrangements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 8,
"description": "Adults staying in this specific room."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 17
},
"maxItems": 8,
"default": [],
"description": "Ages of children staying in this specific room."
},
"infants": {
"type": "integer",
"minimum": 0,
"maximum": 4,
"default": 0,
"description": "Number of infants staying in this room."
}
},
"required": [
"adults"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 3,
"description": "Exact per-room occupancy. Example: room 1 has 2 adults and room 2 has 2 adults plus children ages 4 and 2 => [{adults:2,childrenAges:[],infants:0},{adults:2,childrenAges:[4,2],infants:0}]. Array length equals rooms, and aggregate guests equal adults and childrenAges."
},
"availabilityToken": {
"type": "string",
"maxLength": 500
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"default": "USD"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"propertyId": {
"type": "string"
},
"property": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"address": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"starRating": {
"type": [
"number",
"null"
]
},
"reviewScore": {
"type": [
"number",
"null"
]
},
"reviewScale": {
"type": [
"number",
"null"
]
},
"reviewCount": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"highlights": {
"type": "array",
"items": {
"type": "string"
}
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"checkinFrom": {
"type": [
"string",
"null"
]
},
"checkoutUntil": {
"type": [
"string",
"null"
]
},
"propertyType": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"name",
"address",
"description",
"images",
"latitude",
"longitude",
"starRating",
"reviewScore",
"reviewScale",
"reviewCount",
"highlights",
"amenities",
"checkinFrom",
"checkoutUntil",
"propertyType"
],
"additionalProperties": false
},
"offers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"propertyId": {
"type": "string"
},
"roomTypeName": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"beds": {
"type": [
"string",
"null"
]
},
"roomSize": {
"type": [
"string",
"null"
]
},
"occupancyMax": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"amenities": {
"type": "array",
"items": {
"type": "string"
}
},
"breakfastIncluded": {
"type": "boolean"
},
"refundable": {
"type": [
"boolean",
"null"
]
},
"cancellationSummary": {
"type": [
"string",
"null"
]
},
"wholesale": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"url": {
"type": [
"string",
"null"
]
},
"nightly": {
"type": [
"number",
"null"
]
},
"total": {
"type": [
"number",
"null"
]
},
"maskedTotal": {
"type": [
"string",
"null"
]
},
"currency": {
"type": "string"
},
"includesTaxesAndFees": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"label",
"url",
"nightly",
"total",
"maskedTotal",
"currency",
"includesTaxesAndFees"
],
"additionalProperties": false
},
"comparison": {
"anyOf": [
{
"$ref": "#/properties/offers/items/properties/wholesale"
},
{
"type": "null"
}
]
},
"savings": {
"type": [
"number",
"null"
]
},
"savingsPercent": {
"type": [
"number",
"null"
]
},
"upgradeTotal": {
"type": [
"number",
"null"
]
},
"upgradeMaskedTotal": {
"type": [
"string",
"null"
]
},
"payAtProperty": {
"type": [
"string",
"null"
]
},
"detailsUrl": {
"type": "string"
}
},
"required": [
"id",
"propertyId",
"roomTypeName",
"name",
"description",
"images",
"beds",
"roomSize",
"occupancyMax",
"amenities",
"breakfastIncluded",
"refundable",
"cancellationSummary",
"wholesale",
"comparison",
"savings",
"savingsPercent",
"upgradeTotal",
"upgradeMaskedTotal",
"payAtProperty",
"detailsUrl"
],
"additionalProperties": false
}
},
"stay": {
"type": "object",
"properties": {
"checkinDate": {
"type": "string"
},
"checkoutDate": {
"type": "string"
},
"adults": {
"type": "integer"
},
"children": {
"type": "integer"
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer"
}
},
"rooms": {
"type": "integer"
},
"roomArrangements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"adults": {
"type": "integer"
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer"
}
},
"infants": {
"type": "integer"
}
},
"required": [
"adults",
"childrenAges",
"infants"
],
"additionalProperties": false
}
},
"currency": {
"type": "string"
}
},
"required": [
"checkinDate",
"checkoutDate",
"adults",
"children",
"childrenAges",
"rooms",
"roomArrangements",
"currency"
],
"additionalProperties": false
},
"priceDisclosure": {
"type": "string"
}
},
"required": [
"propertyId",
"property",
"offers",
"stay",
"priceDisclosure"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}社群
證據