Search hotels, compare room offers and public or masked wholesale rates, then continue on Brek.
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 Brek property ID, including address, description, photos, amenities, check-in and checkout times, star rating, and guest-review data. When the user refers to a hotel from a previous search_accommodations result by full or partial name or list position, copy that result's propertyId exactly if the match is unique; never shorten, combine, or use a placeholder ID. Ask for clarification if several hotels match. If no exact property ID is available, hotelName and optional destination can identify a unique hotel. No stay dates are needed. Availability, room offers, prices, breakfast, and cancellation terms are not included.
Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL.
Hotel name when no propertyId is available; a unique match is required.
Exact Brek property ID copied from a previous search result. Do not guess, truncate, combine, or pass a placeholder; use hotelName if unsure.
Optional city or region to disambiguate hotelName.
Returns undated facts for one identified Brek property ID, including address, description, photos, amenities, check-in and checkout times, star rating, and guest-review data. When the user refers to a hotel from a previous search_accommodations result by full or partial name or list position, copy that result's propertyId exactly if the match is unique; never shorten, combine, or use a placeholder ID. Ask for clarification if several hotels match. If no exact property ID is available, hotelName and optional destination can identify a unique hotel. No stay dates are needed. Availability, room offers, prices, breakfast, and cancellation terms are not included.
| Argument | Type | Description |
|---|---|---|
| currency | string | Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL. |
| hotelName | string | Hotel name when no propertyId is available; a unique match is required. |
| propertyId | string | Exact Brek property ID copied from a previous search result. Do not guess, truncate, combine, or pass a placeholder; use hotelName if unsure. |
| destination | string | Optional city or region to disambiguate hotelName. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL."
},
"hotelName": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Hotel name when no propertyId is available; a unique match is required."
},
"propertyId": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact Brek property ID copied from a previous search result. Do not guess, truncate, combine, or pass a placeholder; use hotelName if unsure."
},
"destination": {
"type": "string",
"maxLength": 160,
"minLength": 2,
"description": "Optional city or region to disambiguate hotelName."
}
},
"additionalProperties": false
}Returns one named or identified hotel's full-stay property data and live room offers for specified dates and occupancy. When the user refers to a hotel from a previous search_accommodations result by list position or partial name, copy its propertyId exactly if the match is unique; never shorten, combine, or use a placeholder ID. Ask for clarification if several hotels match. Use hotelName and optional destination when no exact propertyId is available. Includes wholesale room types and photos, breakfast, refundability, cancellation terms, public-rate comparisons, masked wholesale rate bands, and Brek links. Public-only room types are excluded. Wholesale options priced above their public comparison are marked sold_out without a price; the public comparison remains available. Single-room and multi-room stays are supported through aggregate occupancy plus optional per-room arrangements. Exact private wholesale prices are available on Brek.
| Argument | Type | Description |
|---|---|---|
| rooms | integer | Number of rooms. Each room requires at least one adult. |
| adults | integer | Total adult guests. |
| currency | string | Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL. |
| timeZone | string | Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence. |
| hotelName |
Searches and compares multiple hotels in a city, neighborhood, airport, landmark, or other destination. Every search requires both checkinDate and checkoutDate, or dateIntent=tonight when the user explicitly asks for tonight. If the user supplied neither, ask for stay dates before calling; do not choose dates for them. Supports occupancy, price range, star rating, guest score, property types, amenities, cancellation preference, and sort order. Returns an ordered list with property IDs, hotel facts, masked wholesale price bands, public-rate comparisons, and Brek links. For a follow-up by position or partial hotel name, match against the most recent relevant search list. If one hotel matches, copy its propertyId exactly into get_accommodation_details or get_accommodation_offers; never shorten, combine, or replace IDs with placeholders. If the ID is unavailable, pass hotelName and optional destination instead. If several hotels match, ask which hotel the user means. Intended for destination discovery and multi-hotel comparison; room-level offers for one property are not included. Exact private wholesale prices are available on Brek.
| 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, Brek defaults to 2 adults per room. |
| children |
| string |
| Exact hotel name when propertyId is unavailable. |
| dateIntent | string | Use only when the user explicitly requests tonight. Resolves check-in as the current local date and check-out as the following date; otherwise provide both stay dates. |
| propertyId | string | Exact Brek property ID copied from a previous search result or Brek stay URL. Do not guess, truncate, combine, or pass a placeholder; use hotelName if unsure. |
| checkinDate | string | Required with checkoutDate unless the user explicitly requested tonight. Use YYYY-MM-DD. |
| destination | string | Optional city or region for disambiguating hotelName. |
| checkoutDate | string | Required with checkinDate unless the user explicitly requested tonight. Use YYYY-MM-DD. |
| childrenAges | array | Age of each child at check-in. |
| roomArrangements | array | 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",
"maxLength": 3,
"minLength": 3,
"description": "Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL."
},
"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": "Use only when the user explicitly requests tonight. Resolves check-in as the current local date and check-out as the following date; otherwise provide both stay dates."
},
"propertyId": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact Brek property ID copied from a previous search result or Brek stay URL. Do not guess, truncate, combine, or pass a placeholder; use hotelName if unsure."
},
"checkinDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Required with checkoutDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
},
"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": "Required with checkinDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
},
"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
}| integer |
| Total child guests; when omitted, uses childrenAges.length. |
| currency | string | Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL. |
| latitude | number | Optional latitude when already known. |
| timeZone | string | Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence. |
| amenities | array | Amenities required in every result. |
| longitude | number | Optional longitude when already known. |
| dateIntent | string | Use only when the user explicitly requests tonight. Resolves check-in as the current local date and check-out as the following date; otherwise provide both stay dates. |
| checkinDate | string | Required with checkoutDate unless the user explicitly requested tonight. Use YYYY-MM-DD. |
| destination* | string | City, neighborhood, airport, landmark, or other broad destination. |
| starRatings | array | Exact accepted hotel star classifications. |
| user_locale | string | Optional traveler locale from the Claude client context, such as en-US. Omit if unavailable; do not infer it from the hotel destination. |
| checkoutDate | string | Required with checkinDate unless the user explicitly requested tonight. Use YYYY-MM-DD. |
| 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. |
| user_location_city | string | Optional approximate traveler city supplied by the Claude client. Omit if unavailable; this is not the hotel destination. |
| freeCancellationOnly | boolean | Whether results require free cancellation or refundable rates. |
| user_location_region | string | Optional traveler state or region supplied by the Claude client. Omit if unavailable; do not infer it from the hotel destination. |
| user_location_country | string | Optional two-letter traveler country supplied by the Claude client, such as US. Omit if unavailable; do not infer it from the hotel destination. |
| user_location_timezone | string | Optional IANA timezone of the traveler supplied by the Claude client. Omit if unavailable; this does not set the hotel's local stay dates. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"destination"
],
"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, Brek defaults to 2 adults per room."
},
"children": {
"type": "integer",
"maximum": 8,
"minimum": 0,
"description": "Total child guests; when omitted, uses childrenAges.length."
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Optional latitude when already known."
},
"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."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Optional longitude when already known."
},
"dateIntent": {
"enum": [
"tonight"
],
"type": "string",
"description": "Use only when the user explicitly requests tonight. Resolves check-in as the current local date and check-out as the following date; otherwise provide both stay dates."
},
"checkinDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Required with checkoutDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
},
"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."
},
"user_locale": {
"type": "string",
"maxLength": 35,
"minLength": 2,
"description": "Optional traveler locale from the Claude client context, such as en-US. Omit if unavailable; do not infer it from the hotel destination."
},
"checkoutDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Required with checkinDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
},
"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."
},
"user_location_city": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional approximate traveler city supplied by the Claude client. Omit if unavailable; this is not the hotel destination."
},
"freeCancellationOnly": {
"type": "boolean",
"default": false,
"description": "Whether results require free cancellation or refundable rates."
},
"user_location_region": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Optional traveler state or region supplied by the Claude client. Omit if unavailable; do not infer it from the hotel destination."
},
"user_location_country": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Optional two-letter traveler country supplied by the Claude client, such as US. Omit if unavailable; do not infer it from the hotel destination."
},
"user_location_timezone": {
"type": "string",
"maxLength": 80,
"minLength": 3,
"description": "Optional IANA timezone of the traveler supplied by the Claude client. Omit if unavailable; this does not set the hotel's local stay dates."
}
},
"additionalProperties": false
}