Find last-minute hotels, compare room offers, and continue on RoomLast to book.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
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.
| Argument | Type | Description |
|---|---|---|
| currency | string | |
| propertyId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"propertyId"
],
"properties": {
"currency": {
"type": "string",
"default": "USD",
"maxLength": 3,
"minLength": 3
},
"propertyId": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| rooms | integer | Number of rooms. Each room requires at least one adult. |
| adults | integer | Total adult guests. |
| currency | string | |
| timeZone | string | Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence. |
| hotelName | string | Exact hotel name when propertyId is unavailable. |
| dateIntent | string | Relative stay intent. Tonight resolves check-in as the current local date and check-out as the following date. |
| propertyId | string | RoomLast property ID from a search result or RoomLast stay URL. |
| checkinDate | string | Explicit check-in date in YYYY-MM-DD; paired with checkoutDate. |
| destination | string | Optional city or region for disambiguating hotelName. |
| checkoutDate | string | Explicit check-out date in YYYY-MM-DD; paired with checkinDate. |
| childrenAges | array | Age of each child at check-in. |
| roomArrangements | array |
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.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| sort | string | Result order: top-picks, distance, total price ascending, total price descending, or guest reviews. |
| rooms | integer | Number of rooms. Each room receives the default of 2 adults when adults is omitted. |
| adults | integer | Total adult guests. When omitted, RoomLast defaults to 2 adults per room. |
| children* | integer | Total child guests; equals childrenAges.length. |
| currency | string | |
| timeZone | string | Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence. |
| 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 | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"rooms": {
"type": "integer",
"default": 1,
"maximum": 3,
"minimum": 1,
"description": "Number of rooms. Each room requires at least one adult."
},
"adults": {
"type": "integer",
"default": 2,
"maximum": 16,
"minimum": 1,
"description": "Total adult guests."
},
"currency": {
"type": "string",
"default": "USD",
"maxLength": 3,
"minLength": 3
},
"timeZone": {
"type": "string",
"maxLength": 80,
"minLength": 3,
"description": "Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence."
},
"hotelName": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Exact hotel name when propertyId is unavailable."
},
"dateIntent": {
"enum": [
"tonight"
],
"type": "string",
"description": "Relative stay intent. Tonight resolves check-in as the current local date and check-out as the following date."
},
"propertyId": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "RoomLast property ID from a search result or RoomLast stay URL."
},
"checkinDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Explicit check-in date in YYYY-MM-DD; paired with checkoutDate."
},
"destination": {
"type": "string",
"maxLength": 160,
"minLength": 2,
"description": "Optional city or region for disambiguating hotelName."
},
"checkoutDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Explicit check-out date in YYYY-MM-DD; paired with checkinDate."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer",
"maximum": 17,
"minimum": 0
},
"default": [],
"maxItems": 8,
"description": "Age of each child at check-in."
},
"roomArrangements": {
"type": "array",
"items": {
"type": "object",
"required": [
"adults"
],
"properties": {
"adults": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Adults staying in this specific room."
},
"infants": {
"type": "integer",
"default": 0,
"maximum": 4,
"minimum": 0,
"description": "Number of infants staying in this room."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer",
"maximum": 17,
"minimum": 0
},
"default": [],
"maxItems": 8,
"description": "Ages of children staying in this specific room."
}
},
"additionalProperties": false
},
"maxItems": 3,
"minItems": 1,
"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
}
},
"additionalProperties": false
}| amenities | array | Amenities required in every result. |
| dateIntent | string | Relative stay intent. Tonight resolves check-in as the current local date and check-out as the following date. |
| checkinDate | string | Explicit check-in date in YYYY-MM-DD; paired with checkoutDate. |
| destination* | string | City, neighborhood, airport, landmark, or other broad destination. |
| starRatings | array | Exact accepted hotel star classifications. |
| checkoutDate | string | Explicit check-out date in YYYY-MM-DD; paired with checkinDate. |
| childrenAges | array | Age of every child at check-in. The array length must equal children. |
| maximumPrice | number | Maximum nightly price in the selected currency. |
| minimumPrice | number | Minimum nightly price in the selected currency. |
| propertyTypes | array | Accepted accommodation types, such as hotel, motel, resort, hostel, or apartment. |
| minimumStarRating | number | Minimum hotel star classification from 1 to 5; distinct from guest review score. |
| minimumReviewScore | number | Minimum guest review score out of 10; distinct from hotel star classification. |
| freeCancellationOnly | boolean | Whether results require free cancellation or refundable rates. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"destination",
"children"
],
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1
},
"sort": {
"enum": [
"top-picks",
"distance",
"total",
"total-desc",
"reviews"
],
"type": "string",
"default": "top-picks",
"description": "Result order: top-picks, distance, total price ascending, total price descending, or guest reviews."
},
"rooms": {
"type": "integer",
"default": 1,
"maximum": 3,
"minimum": 1,
"description": "Number of rooms. Each room receives the default of 2 adults when adults is omitted."
},
"adults": {
"type": "integer",
"maximum": 16,
"minimum": 1,
"description": "Total adult guests. When omitted, RoomLast defaults to 2 adults per room."
},
"children": {
"type": "integer",
"maximum": 8,
"minimum": 0,
"description": "Total child guests; equals childrenAges.length."
},
"currency": {
"type": "string",
"default": "USD",
"maxLength": 3,
"minLength": 3
},
"timeZone": {
"type": "string",
"maxLength": 80,
"minLength": 3,
"description": "Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence."
},
"amenities": {
"type": "array",
"items": {
"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"
],
"type": "string"
},
"maxItems": 12,
"description": "Amenities required in every result."
},
"dateIntent": {
"enum": [
"tonight"
],
"type": "string",
"description": "Relative stay intent. Tonight resolves check-in as the current local date and check-out as the following date."
},
"checkinDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Explicit check-in date in YYYY-MM-DD; paired with checkoutDate."
},
"destination": {
"type": "string",
"maxLength": 160,
"minLength": 2,
"description": "City, neighborhood, airport, landmark, or other broad destination."
},
"starRatings": {
"type": "array",
"items": {
"type": "integer",
"maximum": 5,
"minimum": 1
},
"maxItems": 5,
"description": "Exact accepted hotel star classifications."
},
"checkoutDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Explicit check-out date in YYYY-MM-DD; paired with checkinDate."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer",
"maximum": 17,
"minimum": 0
},
"default": [],
"maxItems": 8,
"description": "Age of every child at check-in. The array length must equal children."
},
"maximumPrice": {
"type": "number",
"description": "Maximum nightly price in the selected currency.",
"exclusiveMinimum": 0
},
"minimumPrice": {
"type": "number",
"minimum": 0,
"description": "Minimum nightly price in the selected currency."
},
"propertyTypes": {
"type": "array",
"items": {
"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"
],
"type": "string"
},
"maxItems": 12,
"description": "Accepted accommodation types, such as hotel, motel, resort, hostel, or apartment."
},
"minimumStarRating": {
"type": "number",
"maximum": 5,
"minimum": 1,
"description": "Minimum hotel star classification from 1 to 5; distinct from guest review score."
},
"minimumReviewScore": {
"type": "number",
"maximum": 10,
"minimum": 0,
"description": "Minimum guest review score out of 10; distinct from hotel star classification."
},
"freeCancellationOnly": {
"type": "boolean",
"default": false,
"description": "Whether results require free cancellation or refundable rates."
}
},
"additionalProperties": false
}