Live hotel and resort prices (taxes included) and secure booking links for travelers. Since 1993.
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.
Create a secure checkout link for one room option from get_hotel. Give the link to the traveller: it opens our checkout with that exact room, dates and price, where they enter their details and pay (rate re-confirmed live). Links last 24 hours. Never ask the traveller for card details yourself.
YYYY-MM-DD
YYYY-MM-DD
option_id from get_hotel
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Create a secure checkout link for one room option from get_hotel. Give the link to the traveller: it opens our checkout with that exact room, dates and price, where they enter their details and pay (rate re-confirmed live). Links last 24 hours. Never ask the traveller for card details yourself.
| Argument | Type | Description |
|---|---|---|
| rooms | integer | |
| adults | integer | |
| checkin* | string | YYYY-MM-DD |
| checkout* | string | YYYY-MM-DD |
| hotel_id* | string | |
| option_id* | string | option_id from get_hotel |
| children_ages | array |
{
"type": "object",
"required": [
"hotel_id",
"option_id",
"checkin",
"checkout"
],
"properties": {
"rooms": {
"type": "integer",
"default": 1,
"maximum": 6,
"minimum": 1
},
"adults": {
"type": "integer",
"default": 2,
"maximum": 8,
"minimum": 1
},
"checkin": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
},
"checkout": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
},
"hotel_id": {
"type": "string"
},
"option_id": {
"type": "string",
"description": "option_id from get_hotel"
},
"children_ages": {
"type": "array",
"items": {
"type": "integer",
"maximum": 17,
"minimum": 1
}
}
}
}A hotel's live rooms and rates for the dates: room names, size, occupancy, board (room only / breakfast / all-inclusive), refundability and the total price per option. Pass an option_id to create_booking_link.
| Argument | Type | Description |
|---|---|---|
| rooms | integer | |
| adults | integer | |
| checkin* | string | YYYY-MM-DD |
| checkout* | string | YYYY-MM-DD |
| hotel_id* | string | |
| children_ages | array |
{
"type": "object",
"required": [
"hotel_id",
"checkin",
"checkout"
],
"properties": {
"rooms": {
"type": "integer",
"default": 1,
"maximum": 6,
"minimum": 1
},
"adults": {
"type": "integer",
"default": 2,
"maximum": 8,
"minimum": 1
},
"checkin": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
},
"checkout": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
},
"hotel_id": {
"type": "string"
},
"children_ages": {
"type": "array",
"items": {
"type": "integer",
"maximum": 17,
"minimum": 1
}
}
}
}Search hotels and resorts in a destination (city, region or resort area) with LIVE prices for the dates and party. Prices are totals for the whole stay in USD, taxes and fees included. Returns up to 15 hotels (cheapest first, or best-rated with sort=rating), with ids for get_hotel.
| Argument | Type | Description |
|---|---|---|
| sort | string | price = cheapest first; rating = best guest rating first |
| rooms | integer | Number of rooms; adults/children are split across them |
| adults | integer | |
| checkin* | string | YYYY-MM-DD |
| checkout* | string | YYYY-MM-DD |
| min_stars | integer | Only hotels with at least this star rating |
| destination* | string | e.g. 'Cancun', 'Punta Cana', 'Maui', 'Riviera Maya' |
| children_ages | array | Ages of children, if any |
| all_inclusive_only | boolean |
{
"type": "object",
"required": [
"destination",
"checkin",
"checkout"
],
"properties": {
"sort": {
"enum": [
"price",
"rating"
],
"type": "string",
"default": "price",
"description": "price = cheapest first; rating = best guest rating first"
},
"rooms": {
"type": "integer",
"default": 1,
"maximum": 6,
"minimum": 1,
"description": "Number of rooms; adults/children are split across them"
},
"adults": {
"type": "integer",
"default": 2,
"maximum": 8,
"minimum": 1
},
"checkin": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
},
"checkout": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD"
},
"min_stars": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "Only hotels with at least this star rating"
},
"destination": {
"type": "string",
"description": "e.g. 'Cancun', 'Punta Cana', 'Maui', 'Riviera Maya'"
},
"children_ages": {
"type": "array",
"items": {
"type": "integer",
"maximum": 17,
"minimum": 1
},
"description": "Ages of children, if any"
},
"all_inclusive_only": {
"type": "boolean",
"default": false
}
}
}