RoomLast - Last-Minute Hotels
Server Details
Find last-minute hotels, compare room offers, and continue on RoomLast to book.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
The three tools map to distinct stages: hotel discovery, undated property facts, and live room offers. However, search_accommodations and get_accommodation_offers both accept dates and occupancy and both return price bands and links, so an agent could occasionally confuse search results with room-level offer retrieval.
All names use a predictable snake_case verb_noun pattern with clear accommodation-related nouns. The only minor inconsistency is singular 'accommodation' in the get tools versus plural 'accommodations' in search.
Three tools are well-scoped for a last-minute hotel discovery server: search, property details, and live offers. Each tool has a clear role and the set is not bloated.
The surface covers discovery, property facts, and live room offers, which supports the main research flow. Booking and exact private prices are intentionally delegated to RoomLast via links, but the absence of any booking or reservation operation is a minor gap.
Available Tools
3 toolsget_accommodation_detailsGet undated hotel factsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | USD | |
| propertyId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| images | Yes | |
| address | Yes | |
| latitude | Yes | |
| amenities | Yes | |
| longitude | Yes | |
| highlights | Yes | |
| starRating | Yes | |
| checkinFrom | Yes | |
| description | Yes | |
| reviewCount | Yes | |
| reviewScale | Yes | |
| reviewScore | Yes | |
| propertyType | Yes | |
| checkoutUntil | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds useful scope disclosure — the data is 'undated', meaning it is static property facts rather than time-sensitive availability — which prevents the agent from expecting pricing or availability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The positive scope (what is returned) comes first and the exclusion clause second, which is the correct front-loading for a lookup tool with a nearby offers sibling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure need not be described, yet the description still gives a useful content inventory. The main gap is the unexplained 'currency' parameter, which no structured field documents given 0% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full parameter burden, and it fails: the 'currency' parameter (with a default of USD) is never explained, and its purpose is only hinted at by saying prices are *not* returned, which is actively confusing. propertyId is gestured at only as 'one identified RoomLast property ID' with no format or sourcing guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Returns undated facts for one identified RoomLast property ID') and enumerates the exact content returned (address, description, photos, amenities, check-in/checkout times, star rating, guest reviews). It is clearly distinguishable from get_accommodation_offers, which the exclusion clause implicitly names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence explicitly excludes availability, room offers, prices, breakfast, and cancellation terms, which tells the agent when to route elsewhere — notably to the offers sibling. It stops short of naming the alternative tool directly, so it is clear context rather than a full when/when-not/alternative statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accommodation_offersGet one hotel's full-stay rooms and pricesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | No | Number of rooms. Each room requires at least one adult. | |
| adults | No | Total adult guests. | |
| currency | No | USD | |
| timeZone | No | Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence. | |
| hotelName | No | Exact hotel name when propertyId is unavailable. | |
| dateIntent | No | Relative stay intent. Tonight resolves check-in as the current local date and check-out as the following date. | |
| propertyId | No | RoomLast property ID from a search result or RoomLast stay URL. | |
| checkinDate | No | Explicit check-in date in YYYY-MM-DD; paired with checkoutDate. | |
| destination | No | Optional city or region for disambiguating hotelName. | |
| checkoutDate | No | Explicit check-out date in YYYY-MM-DD; paired with checkinDate. | |
| childrenAges | No | Age of each child at check-in. | |
| roomArrangements | No | 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 | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| stay | Yes | |
| offers | Yes | |
| property | Yes | |
| propertyId | Yes | |
| priceDisclosure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description adds genuinely new behavioral context: results carry masked RoomLast price bands and comparisons, exact private prices and booking must happen on RoomLast — a useful expectation-setting limitation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four front-loaded sentences with no filler; the identity scoping, date representation, and return contents come in that order. The enumeration of return fields ('photos, breakfast, refundability...') is slightly long but each item conveys real capability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no prose explanation, and the description covers hotel identification, date handling, occupancy, and the masked-price limitation. The only missing piece is the prerequisite that a propertyId typically comes from search_accommodations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 85%, so the schema does most of the work, but the description still adds the date-mode semantics (dateIntent 'tonight' vs. the paired checkinDate/checkoutDate) and flags single- versus multi-room occupancy support, which maps to rooms and roomArrangements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns one named or identified hotel's live room offers.' The 'one hotel' scoping implicitly separates it from search_accommodations, but it never names the sibling, so the differentiation is inferential rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrasing 'one named or identified hotel's' signals that a propertyId or hotelName must already be known, and it offers two date modes (tonight vs. explicit dates). However, it never says to run search_accommodations first to obtain a propertyId, nor does it exclude any situation or name a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_accommodationsFind last-minute hotels with RoomLastARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort | No | Result order: top-picks, distance, total price ascending, total price descending, or guest reviews. | top-picks |
| rooms | No | Number of rooms. Each room receives the default of 2 adults when adults is omitted. | |
| adults | No | Total adult guests. When omitted, RoomLast defaults to 2 adults per room. | |
| children | Yes | Total child guests; equals childrenAges.length. | |
| currency | No | USD | |
| timeZone | No | Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence. | |
| amenities | No | Amenities required in every result. | |
| dateIntent | No | Relative stay intent. Tonight resolves check-in as the current local date and check-out as the following date. | |
| checkinDate | No | Explicit check-in date in YYYY-MM-DD; paired with checkoutDate. | |
| destination | Yes | City, neighborhood, airport, landmark, or other broad destination. | |
| starRatings | No | Exact accepted hotel star classifications. | |
| checkoutDate | No | Explicit check-out date in YYYY-MM-DD; paired with checkinDate. | |
| childrenAges | No | Age of every child at check-in. The array length must equal children. | |
| maximumPrice | No | Maximum nightly price in the selected currency. | |
| minimumPrice | No | Minimum nightly price in the selected currency. | |
| propertyTypes | No | Accepted accommodation types, such as hotel, motel, resort, hostel, or apartment. | |
| minimumStarRating | No | Minimum hotel star classification from 1 to 5; distinct from guest review score. | |
| minimumReviewScore | No | Minimum guest review score out of 10; distinct from hotel star classification. | |
| freeCancellationOnly | No | Whether results require free cancellation or refundable rates. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| total | Yes | |
| search | Yes | |
| totalPages | Yes | |
| accommodations | Yes | |
| priceDisclosure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive and open-world traits, so the bar is lower; the description still adds real value by disclosing that prices are masked RoomLast bands and that results carry public-rate comparisons and links, and by stating the exclusion of exact private prices and room options. It omits pagination behavior despite a page parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose and scope before the filter and return-value summary. The filter enumeration partially restates the schema and could be trimmed, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter search tool with an output schema, the description covers purpose, date semantics, filter scope, and result shape adequately. Minor gaps: no note on pagination limits or how masked price bands should be interpreted downstream.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 90%, so the baseline is 3; the description adds meaningful semantics by explaining the two date modes (dateIntent 'tonight' versus the checkinDate/checkoutDate pair) and by grouping the filter families (occupancy, price, stars, guest score, property type, amenities, cancellation, sort) into a coherent mental model.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Finds') + resource (last-minute hotels) + geographic scope (city, neighborhood, airport, landmark) + date scope (tonight or upcoming dates). The closing sentence about what is excluded (room choices, exact private prices) implicitly distinguishes it from get_accommodation_offers and get_accommodation_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context for use: last-minute stays for tonight or specified dates, with the supported filter families enumerated. It signals the boundary against offer/detail tools by stating results exclude room choices and private prices, but never names those sibling tools explicitly, so the routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
get_accommodation_details - First observed
get_accommodation_offers - First observed
search_accommodations
Related MCP Connectors
Search hotels, compare room offers and public or masked wholesale rates, then continue on Brek.
31Search 650,000 hotels, get each hotel's direct price with full offer lists, match rooms, book.
Compare hotel prices, room options and booking providers with live HotelUse searches.
31Search hotels worldwide, compare live room rates, and create booking payment links.
Related MCP Servers
- AlicenseBqualityAmaintenanceOfficial MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels. Search live hotel rates and flights, look up places, airports and hotel details, then prebook and book. Remote Streamable HTTP endpoint, no API key required.4156 npm2MIT
- FlicenseAqualityBmaintenanceEnables AI assistants to search hotel rooms by number of nights within a flexible date range, returning real prices and the cheapest deals with booking links. It also supports city resolution, hotel listing, and offer details for external booking completion.4-
- AlicenseAqualityBmaintenanceSearch VeryChic hotel deals from any MCP client; browse flash-sale offers, filter by destination or price, and read availability and prices by date. Read-only, anonymous, no account needed.263 PyPI1MIT
- AlicenseAqualityAmaintenanceEnables users to find, compare, and plan hotel stays across India around railway stations, airports, bus terminals, landmarks, localities, or coordinates, merging live prices with road distance and drive times, and supporting multi-stop stay planning.8Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.