Koskamo

Brek MCP

An authless, read-only remote MCP server that searches hotel inventory, returns property facts, and compares live room offers without creating a reservation or processing a payment.

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.

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

What you can do with it

  • Search hotels by destination, dates, and amenities
  • Compare public rates with masked wholesale rates
  • Check live room availability and cancellation terms
  • Review hotel facilities, photos, and guest reviews

Source and maintenance

Community listingRegistry 1.0.0

Protocol and capabilities

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

Tools

3 advertised

search_accommodations — Search multiple Brek hotels
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

search_accommodations input schema
{
  "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": "number",
      "default": 1,
      "description": "Whole-number room count from 1 to 3. Each room receives the default of 2 adults when adults is omitted."
    },
    "adults": {
      "type": "number",
      "description": "Whole-number total adult count from 1 to 10 across all rooms. When omitted, Brek defaults to 2 adults per room."
    },
    "children": {
      "type": "number",
      "description": "Whole-number total child count from 0 to 8; 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": "number"
      },
      "default": [],
      "description": "Whole-number ages from 0 to 17 for every child at check-in, up to 8 children. 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
}
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": "number"
        },
        "adults": {
          "type": "number"
        },
        "children": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        },
        "checkinDate": {
          "type": "string"
        },
        "destination": {
          "type": "string"
        },
        "checkoutDate": {
          "type": "string"
        },
        "childrenAges": {
          "type": "array",
          "items": {
            "type": "number"
          }
        }
      },
      "additionalProperties": false
    },
    "status": {
      "enum": [
        "stay_dates_required",
        "stay_dates_invalid",
        "destination_not_found",
        "occupancy_invalid"
      ],
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "totalPages": {
      "type": "integer"
    },
    "requiredInput": {
      "type": "array",
      "items": {
        "enum": [
          "checkinDate",
          "checkoutDate",
          "destination",
          "adults",
          "children",
          "childrenAges",
          "rooms",
          "roomArrangements"
        ],
        "type": "string"
      }
    },
    "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"
                ]
              },
              "availability": {
                "enum": [
                  "available",
                  "sold_out"
                ],
                "type": "string",
                "description": "Wholesale display availability. A wholesale rate higher than its public comparison is sold_out and has no price or booking action."
              },
              "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": "Search multiple Brek hotels",
  "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 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.

get_accommodation_details input schema
{
  "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
}
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"
      }
    },
    "status": {
      "enum": [
        "hotel_selection_required",
        "hotel_not_found"
      ],
      "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 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.

get_accommodation_offers input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "rooms": {
      "type": "number",
      "default": 1,
      "description": "Whole-number room count from 1 to 3. Each room requires at least one adult."
    },
    "adults": {
      "type": "number",
      "default": 2,
      "description": "Whole-number total adult count from 1 to 16 across all rooms."
    },
    "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": "number"
      },
      "default": [],
      "description": "Whole-number ages from 0 to 17 for up to 8 children at check-in."
    },
    "roomArrangements": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "adults"
        ],
        "properties": {
          "adults": {
            "type": "number",
            "description": "Whole-number adult count from 1 to 8 in this specific room."
          },
          "infants": {
            "type": "number",
            "default": 0,
            "description": "Whole-number infant count from 0 to 4 in this room."
          },
          "childrenAges": {
            "$ref": "#/properties/childrenAges",
            "default": [],
            "description": "Whole-number ages from 0 to 17 for up to 8 children staying in this room."
          }
        },
        "additionalProperties": false
      },
      "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": "number"
        },
        "adults": {
          "type": "number"
        },
        "children": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        },
        "checkinDate": {
          "type": "string"
        },
        "checkoutDate": {
          "type": "string"
        },
        "childrenAges": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "roomArrangements": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "adults",
              "childrenAges",
              "infants"
            ],
            "properties": {
              "adults": {
                "type": "number"
              },
              "infants": {
                "type": "number"
              },
              "childrenAges": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "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"
                ]
              },
              "availability": {
                "enum": [
                  "available",
                  "sold_out"
                ],
                "type": "string",
                "description": "Wholesale display availability. A wholesale rate higher than its public comparison is sold_out and has no price or booking action."
              },
              "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
      }
    },
    "status": {
      "enum": [
        "hotel_not_found",
        "occupancy_invalid"
      ],
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "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"
          }
        },
        "status": {
          "enum": [
            "hotel_selection_required",
            "hotel_not_found"
          ],
          "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"
    },
    "requiredInput": {
      "type": "array",
      "items": {
        "enum": [
          "adults",
          "children",
          "childrenAges",
          "rooms",
          "roomArrangements"
        ],
        "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

32 advertised

brek-hotel-cards — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards URI
ui://brek/hotel-cards-v21.html

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

brek-hotel-cards-compat-1 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-1 URI
ui://brek/hotel-cards.html

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

brek-hotel-cards-compat-2 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-2 URI
ui://brek/hotel-cards-v2.html

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

brek-hotel-cards-compat-3 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-3 URI
ui://brek/hotel-cards-v3.html

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

brek-hotel-cards-compat-4 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-4 URI
ui://brek/hotel-cards-v4.html

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

brek-hotel-cards-compat-5 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-5 URI
ui://brek/hotel-cards-v5.html

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

brek-hotel-cards-compat-6 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-6 URI
ui://brek/hotel-cards-v6.html

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

brek-hotel-cards-compat-7 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-7 URI
ui://brek/hotel-cards-v7.html

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

brek-hotel-cards-compat-8 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-8 URI
ui://brek/hotel-cards-v8.html

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

brek-hotel-cards-compat-9 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-9 URI
ui://brek/hotel-cards-v9.html

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

brek-hotel-cards-compat-10 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-10 URI
ui://brek/hotel-cards-v10.html

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

brek-hotel-cards-compat-11 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-11 URI
ui://brek/hotel-cards-v11.html

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

brek-hotel-cards-compat-12 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-12 URI
ui://brek/hotel-cards-v12.html

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

brek-hotel-cards-compat-13 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-13 URI
ui://brek/hotel-cards-v13.html

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

brek-hotel-cards-compat-14 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-14 URI
ui://brek/hotel-cards-v14.html

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

brek-hotel-cards-compat-15 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-15 URI
ui://brek/hotel-cards-v15.html

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

brek-hotel-cards-compat-16 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-16 URI
ui://brek/hotel-cards-v16.html

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

brek-hotel-cards-compat-17 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-17 URI
ui://brek/hotel-cards-v17.html

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

brek-hotel-cards-compat-18 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-18 URI
ui://brek/hotel-cards-v18.html

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

brek-hotel-cards-compat-19 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-19 URI
ui://brek/hotel-cards-v19.html

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

brek-hotel-cards-compat-20 — Brek hotel comparison cards

Advertised by the server during the last successful anonymous check.

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

brek-hotel-cards-compat-20 URI
ui://brek/hotel-cards-v20.html

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

brek-room-offers — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers URI
ui://brek/room-offers-v11.html

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

brek-room-offers-compat-1 — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers-compat-1 URI
ui://brek/room-offers-v10.html

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

brek-room-offers-compat-2 — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers-compat-2 URI
ui://brek/room-offers-v9.html

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

brek-room-offers-compat-3 — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers-compat-3 URI
ui://brek/room-offers-v8.html

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

brek-room-offers-compat-4 — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers-compat-4 URI
ui://brek/room-offers-v7.html

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

brek-room-offers-compat-5 — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers-compat-5 URI
ui://brek/room-offers-v6.html

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

brek-room-offers-compat-6 — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers-compat-6 URI
ui://brek/room-offers-v5.html

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

brek-room-offers-compat-7 — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers-compat-7 URI
ui://brek/room-offers-v4.html

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

brek-room-offers-compat-8 — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers-compat-8 URI
ui://brek/room-offers-v3.html

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

brek-room-offers-compat-9 — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers-compat-9 URI
ui://brek/room-offers-v2.html

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

brek-room-offers-compat-10 — Brek hotel room types and live rates

Advertised by the server during the last successful anonymous check.

Brek PDP-style room cards showing room types, policies, public prices, and masked wholesale rates.

brek-room-offers-compat-10 URI
ui://brek/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
587 ms
95th percentile latency
587 ms

Maintenance history

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

  • · probe · passed · 587 ms · metadata changed · 3 tool(s), 32 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 brek-mcp https://mcp.brek.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 brek-mcp --url https://mcp.brek.com/mcp

Cursor

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

Cline

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

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start brek-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "brek-mcp": {
      "type": "http",
      "url": "https://mcp.brek.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 brek-mcp https://mcp.brek.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": {
    "brek-mcp": {
      "url": "https://mcp.brek.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": {
    "brek-mcp": {
      "serverUrl": "https://mcp.brek.com/mcp"
    }
  }
}

Let your agent find its tools

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