Koskamo

RoomLast MCP

A read-only MCP server that allows AI assistants to search for last-minute hotels, retrieve property details and amenities, and compare live room offers including breakfast and cancellation policies. It does not handle booking or payment, which are completed on the RoomLast platform.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

RoomLast MCP logo, by RoomLastCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by RoomLast
MCP endpoint (Streamable HTTP)
https://mcp.roomlast.com/mcp
Vendor documentation

What you can do with it

  • Search for hotels by destination, dates, and guests
  • Get property facts, photos, and review details
  • Check live room options and prices

Source and maintenance

Community listingRegistry 1.0.4

Protocol and capabilities

Server
roomlast 1.0.4
MCP protocol
2025-06-18
Tools
3 advertised
Resources
3 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Tools

3 advertised

search_accommodations — Find last-minute hotels with RoomLast
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

search_accommodations input schema
{
  "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
}
search_accommodations output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "accommodations",
    "page",
    "total",
    "totalPages",
    "search",
    "priceDisclosure"
  ],
  "properties": {
    "page": {
      "type": "integer"
    },
    "total": {
      "type": "integer"
    },
    "search": {
      "type": "object",
      "required": [
        "destination",
        "checkinDate",
        "checkoutDate",
        "adults",
        "children",
        "childrenAges",
        "rooms",
        "currency",
        "sort"
      ],
      "properties": {
        "sort": {
          "enum": [
            "top-picks",
            "distance",
            "total",
            "total-desc",
            "reviews"
          ],
          "type": "string"
        },
        "rooms": {
          "type": "integer"
        },
        "adults": {
          "type": "integer"
        },
        "children": {
          "type": "integer"
        },
        "currency": {
          "type": "string"
        },
        "checkinDate": {
          "type": "string"
        },
        "destination": {
          "type": "string"
        },
        "checkoutDate": {
          "type": "string"
        },
        "childrenAges": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        }
      },
      "additionalProperties": false
    },
    "totalPages": {
      "type": "integer"
    },
    "accommodations": {
      "type": "array",
      "items": {
        "type": "object",
        "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"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "city": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "address": {
            "type": [
              "string",
              "null"
            ]
          },
          "savings": {
            "type": [
              "number",
              "null"
            ]
          },
          "imageUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "latitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "longitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "stateCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "wholesale": {
            "type": "object",
            "required": [
              "label",
              "url",
              "nightly",
              "total",
              "maskedTotal",
              "currency",
              "includesTaxesAndFees"
            ],
            "properties": {
              "url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "label": {
                "type": "string"
              },
              "total": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "nightly": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "currency": {
                "type": "string"
              },
              "maskedTotal": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "includesTaxesAndFees": {
                "type": [
                  "boolean",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          },
          "comparison": {
            "anyOf": [
              {
                "$ref": "#/properties/accommodations/items/properties/wholesale"
              },
              {
                "type": "null"
              }
            ]
          },
          "detailsUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "highlights": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "refundable": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "starRating": {
            "type": [
              "number",
              "null"
            ]
          },
          "ratingLabel": {
            "type": [
              "string",
              "null"
            ]
          },
          "reviewCount": {
            "type": [
              "number",
              "null"
            ]
          },
          "reviewScale": {
            "type": [
              "number",
              "null"
            ]
          },
          "reviewScore": {
            "type": [
              "number",
              "null"
            ]
          },
          "propertyType": {
            "type": [
              "string",
              "null"
            ]
          },
          "savingsPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "highlightReview": {
            "type": [
              "string",
              "null"
            ]
          },
          "pointsOfInterest": {
            "type": [
              "string",
              "null"
            ]
          },
          "availabilityToken": {
            "type": [
              "string",
              "null"
            ]
          },
          "consecutivePositiveReviewCount": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "priceDisclosure": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
search_accommodations annotations
{
  "title": "Find last-minute hotels with RoomLast",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_accommodation_details — Get undated hotel facts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

get_accommodation_details input schema
{
  "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
}
get_accommodation_details output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "name",
    "address",
    "description",
    "images",
    "latitude",
    "longitude",
    "starRating",
    "reviewScore",
    "reviewScale",
    "reviewCount",
    "highlights",
    "amenities",
    "checkinFrom",
    "checkoutUntil",
    "propertyType"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "images": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "address": {
      "type": [
        "string",
        "null"
      ]
    },
    "latitude": {
      "type": [
        "number",
        "null"
      ]
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "longitude": {
      "type": [
        "number",
        "null"
      ]
    },
    "highlights": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "starRating": {
      "type": [
        "number",
        "null"
      ]
    },
    "checkinFrom": {
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "reviewCount": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ]
    },
    "reviewScale": {
      "type": [
        "number",
        "null"
      ]
    },
    "reviewScore": {
      "type": [
        "number",
        "null"
      ]
    },
    "propertyType": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkoutUntil": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
get_accommodation_details annotations
{
  "title": "Get undated hotel facts",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_accommodation_offers — Get one hotel's full-stay rooms and prices
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

get_accommodation_offers input schema
{
  "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
}
get_accommodation_offers output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "propertyId",
    "property",
    "offers",
    "stay",
    "priceDisclosure"
  ],
  "properties": {
    "stay": {
      "type": "object",
      "required": [
        "checkinDate",
        "checkoutDate",
        "adults",
        "children",
        "childrenAges",
        "rooms",
        "roomArrangements",
        "currency"
      ],
      "properties": {
        "rooms": {
          "type": "integer"
        },
        "adults": {
          "type": "integer"
        },
        "children": {
          "type": "integer"
        },
        "currency": {
          "type": "string"
        },
        "checkinDate": {
          "type": "string"
        },
        "checkoutDate": {
          "type": "string"
        },
        "childrenAges": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "roomArrangements": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "adults",
              "childrenAges",
              "infants"
            ],
            "properties": {
              "adults": {
                "type": "integer"
              },
              "infants": {
                "type": "integer"
              },
              "childrenAges": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    },
    "offers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "propertyId",
          "roomTypeName",
          "name",
          "description",
          "images",
          "beds",
          "roomSize",
          "occupancyMax",
          "amenities",
          "breakfastIncluded",
          "refundable",
          "cancellationSummary",
          "wholesale",
          "comparison",
          "savings",
          "savingsPercent",
          "upgradeTotal",
          "upgradeMaskedTotal",
          "payAtProperty",
          "detailsUrl"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "beds": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "savings": {
            "type": [
              "number",
              "null"
            ]
          },
          "roomSize": {
            "type": [
              "string",
              "null"
            ]
          },
          "amenities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "wholesale": {
            "type": "object",
            "required": [
              "label",
              "url",
              "nightly",
              "total",
              "maskedTotal",
              "currency",
              "includesTaxesAndFees"
            ],
            "properties": {
              "url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "label": {
                "type": "string"
              },
              "total": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "nightly": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "currency": {
                "type": "string"
              },
              "maskedTotal": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "includesTaxesAndFees": {
                "type": [
                  "boolean",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          },
          "comparison": {
            "anyOf": [
              {
                "$ref": "#/properties/offers/items/properties/wholesale"
              },
              {
                "type": "null"
              }
            ]
          },
          "detailsUrl": {
            "type": "string"
          },
          "propertyId": {
            "type": "string"
          },
          "refundable": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "occupancyMax": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "roomTypeName": {
            "type": "string"
          },
          "upgradeTotal": {
            "type": [
              "number",
              "null"
            ]
          },
          "payAtProperty": {
            "type": [
              "string",
              "null"
            ]
          },
          "savingsPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "breakfastIncluded": {
            "type": "boolean"
          },
          "upgradeMaskedTotal": {
            "type": [
              "string",
              "null"
            ]
          },
          "cancellationSummary": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "property": {
      "type": "object",
      "required": [
        "id",
        "name",
        "address",
        "description",
        "images",
        "latitude",
        "longitude",
        "starRating",
        "reviewScore",
        "reviewScale",
        "reviewCount",
        "highlights",
        "amenities",
        "checkinFrom",
        "checkoutUntil",
        "propertyType"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "images": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "address": {
          "type": [
            "string",
            "null"
          ]
        },
        "latitude": {
          "type": [
            "number",
            "null"
          ]
        },
        "amenities": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "longitude": {
          "type": [
            "number",
            "null"
          ]
        },
        "highlights": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "starRating": {
          "type": [
            "number",
            "null"
          ]
        },
        "checkinFrom": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "reviewCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "reviewScale": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewScore": {
          "type": [
            "number",
            "null"
          ]
        },
        "propertyType": {
          "type": [
            "string",
            "null"
          ]
        },
        "checkoutUntil": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "propertyId": {
      "type": "string"
    },
    "priceDisclosure": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_accommodation_offers annotations
{
  "title": "Get one hotel's full-stay rooms and prices",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

3 advertised

roomlast-hotel-cards — RoomLast hotel comparison cards

Advertised by the server during the last successful anonymous check.

Interactive RoomLast cards comparing masked member-rate bands with Expedia or another public rate.

roomlast-hotel-cards URI
ui://roomlast/hotel-cards-v2.html

MIME type: text/html;profile=mcp-app

roomlast-hotel-cards-compat-1 — RoomLast hotel comparison cards

Advertised by the server during the last successful anonymous check.

Interactive RoomLast cards comparing masked member-rate bands with Expedia or another public rate.

roomlast-hotel-cards-compat-1 URI
ui://roomlast/hotel-cards-v1.html

MIME type: text/html;profile=mcp-app

roomlast-room-offers — RoomLast hotel room types and live rates

Advertised by the server during the last successful anonymous check.

RoomLast room cards showing room types, policies, public comparisons, and masked RoomLast rates.

roomlast-room-offers URI
ui://roomlast/room-offers-v1.html

MIME type: text/html;profile=mcp-app

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
492 ms
95th percentile latency
492 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 492 ms · metadata changed · 3 tool(s), 3 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http roomlast-mcp https://mcp.roomlast.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add roomlast-mcp --url https://mcp.roomlast.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable roomlast-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "roomlast-mcp": {
      "url": "https://mcp.roomlast.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "roomlast-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.roomlast.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start roomlast-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "roomlast-mcp": {
      "type": "http",
      "url": "https://mcp.roomlast.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http roomlast-mcp https://mcp.roomlast.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "roomlast-mcp": {
      "url": "https://mcp.roomlast.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "roomlast-mcp": {
      "serverUrl": "https://mcp.roomlast.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like RoomLast MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.