GetMyHotels

Search hotels, get live prices, and check out in chat. Guest search needs no sign-in.

Should I use this

Quality & Safety

A
Description quality
99%
Schema completeness
91%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,381Tokens (tool definitions)
~1.9 KBTypical response size
Significant attention impact (3.42% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "getmyhotels": {
      "url": "https://mcp.getmyhotels.com"
    }
  }
}

Remote endpoints

https://mcp.getmyhotels.comstreamable-http

What it can do

Tool inventory

Tools (18)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search(query, destination, checkIn, checkOut, adults, ...)

Search GetMyHotels for hotels matching a query. Returns a list of results with ids that can be passed to `fetch` for full details. Provide the destination and travel dates in the query.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Natural-language search, e.g. 'hotels in Lisbon 2026-08-10 to 2026-08-14 for 2 adults'."
    },
    "destination": {
      "type": "string",
      "description": "City, region, or place to search (e.g. 'Paris', 'Goa', 'Lower Manhattan')."
    },
    "checkIn": {
      "type": "string",
      "description": "Check-in date, ISO 8601 (YYYY-MM-DD)."
    },
    "checkOut": {
      "type": "string",
      "description": "Check-out date, ISO 8601 (YYYY-MM-DD). Must be after check-in."
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Adults (1-10). Default 2."
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "Children (0-6). Default 0."
    },
    "rooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 6,
      "description": "Rooms (1-6). Default 1."
    },
    "childrenAges": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 17
      },
      "description": "Age of each child at check-in. Length should equal `children`."
    },
    "guestNationality": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 guest nationality (e.g. 'US', 'GB'). Affects supplier pricing."
    },
    "keywords": {
      "type": "string",
      "description": "Optional free-text preferences, e.g. 'beachfront pool spa'."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢fetch(id)

Fetch the full record for a result id returned by `search` (a hotel) or for a booking reference (prefixed 'bk_'). Returns a document with id, title, text, url, and metadata.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "An id from `search` results, or a 'bk_'-prefixed booking ref."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢search_hotels(destination, checkIn, checkOut, adults, children, ...)

Search live hotel availability for a destination and date range. Returns a price-sorted list of hotels (JSON in the text), each with an opaque `ref` and an indicative stay price. To book: call `get_rooms` and pass the chosen room's `offerRef` to `get_checkout_quote` then `create_checkout`. For a hotel's other rooms (or a hotel not in the list), call `get_rooms`. Narrow with `keywords` (a hotel name, area, or amenities).

Input Schema

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "City, region, or place to search (e.g. 'Paris', 'Goa', 'Lower Manhattan')."
    },
    "checkIn": {
      "type": "string",
      "description": "Check-in date, ISO 8601 (YYYY-MM-DD)."
    },
    "checkOut": {
      "type": "string",
      "description": "Check-out date, ISO 8601 (YYYY-MM-DD). Must be after check-in."
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Adults (1-10). Default 2."
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "Children (0-6). Default 0."
    },
    "rooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 6,
      "description": "Rooms (1-6). Default 1."
    },
    "childrenAges": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 17
      },
      "description": "Age of each child at check-in. Length should equal `children`."
    },
    "guestNationality": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 guest nationality (e.g. 'US', 'GB'). Affects supplier pricing."
    },
    "keywords": {
      "type": "string",
      "description": "Optional free-text preferences, e.g. 'beachfront pool spa'."
    }
  },
  "required": [
    "destination",
    "checkIn",
    "checkOut"
  ],
  "additionalProperties": false
}
🟢get_rooms(ref, supplierCode, supplierHotelId, checkIn, checkOut, ...)

List the bookable rooms for ONE hotel and date range. Each room's `offerRef` is what you pass to `get_checkout_quote` / `create_checkout`. Use the hotel `ref` from `search_hotels` or `search`. Call this to see all of a chosen hotel's rooms, or to refresh availability before checkout.

Input Schema

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "description": "The hotel `ref` from search (e.g. 'tbo:1360717')."
    },
    "supplierCode": {
      "type": "string",
      "description": "Alternative to `ref`: supplier code."
    },
    "supplierHotelId": {
      "type": "string",
      "description": "Alternative to `ref`: supplier hotel id."
    },
    "checkIn": {
      "type": "string",
      "description": "Check-in date, ISO 8601 (YYYY-MM-DD)."
    },
    "checkOut": {
      "type": "string",
      "description": "Check-out date, ISO 8601 (YYYY-MM-DD)."
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Adults (default 2)."
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "Children (default 0)."
    },
    "rooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9,
      "description": "Rooms (default 1)."
    }
  },
  "required": [
    "checkIn",
    "checkOut"
  ],
  "additionalProperties": false
}
🟢get_hotel_details(ref, supplierCode, supplierHotelId)

Get full property details (description, amenities, photos, policies, location) for a hotel, identified by its `ref` from `search_hotels` (or its supplierCode + supplierHotelId).

Input Schema

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "description": "The hotel `ref` from search (e.g. 'tbo:1360717')."
    },
    "supplierCode": {
      "type": "string",
      "description": "Alternative to `ref`: supplier code."
    },
    "supplierHotelId": {
      "type": "string",
      "description": "Alternative to `ref`: supplier hotel id."
    }
  },
  "additionalProperties": false
}
🟢get_checkout_quote(ref, supplierCode, supplierHotelId, offerRef, supplierRoomId, ...)

Re-price a specific room live against the supplier before checkout (no booking, no charge). Use the `offerRef` and price/currency from `get_rooms`. Returns the authoritative grand total, a `rateValidUntil` timestamp, and any taxes/fees.

Input Schema

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "description": "Hotel `ref` from `search_hotels` (e.g. 'TBO:1402689'). Alternative to supplierCode + supplierHotelId."
    },
    "supplierCode": {
      "type": "string",
      "description": "Supplier code (from `search_hotels`). Required if `ref` is omitted."
    },
    "supplierHotelId": {
      "type": "string",
      "description": "Supplier hotel id (from `search_hotels`). Required if `ref` is omitted."
    },
    "offerRef": {
      "type": "string",
      "description": "Opaque room offer from get_rooms."
    },
    "supplierRoomId": {
      "type": "string",
      "description": "Bookable room/rate id from the chosen room in `search_hotels`."
    },
    "checkIn": {
      "type": "string",
      "description": "Check-in date, ISO 8601 (YYYY-MM-DD)."
    },
    "checkOut": {
      "type": "string",
      "description": "Check-out date, ISO 8601 (YYYY-MM-DD)."
    },
    "rooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9,
      "description": "Rooms (default 1)."
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Adults (default 2)."
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "Children (default 0)."
    },
    "childrenAges": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 18
      },
      "description": "Age of each child."
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217 currency of `price`/`totalPrice` (e.g. 'USD')."
    },
    "totalPrice": {
      "type": "number",
      "description": "The room's price from `search_hotels` — the TOTAL for the whole stay, not a nightly rate (used to detect price changes)."
    },
    "promoCode": {
      "type": "string",
      "description": "Optional promo code."
    }
  },
  "required": [
    "checkIn",
    "checkOut",
    "totalPrice",
    "currency"
  ],
  "additionalProperties": false
}
🔴create_checkout(ref, supplierCode, supplierHotelId, offerRef, supplierRoomId, ...)

Create a secure checkout for a chosen hotel room and return a getmyhotels.com URL where the guest completes payment. This does NOT charge the card — the guest pays on the hosted page. Confirm the hotel, room, dates, and price with the user before calling. Call `get_checkout_quote` first to confirm the live price.

Input Schema

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "description": "Hotel `ref` from `search_hotels` (e.g. 'TBO:1402689'). Alternative to supplierCode + supplierHotelId."
    },
    "supplierCode": {
      "type": "string",
      "description": "Supplier code (from `search_hotels`). Required if `ref` is omitted."
    },
    "supplierHotelId": {
      "type": "string",
      "description": "Supplier hotel id (from `search_hotels`). Required if `ref` is omitted."
    },
    "offerRef": {
      "type": "string",
      "description": "Opaque room offer from get_rooms."
    },
    "supplierRoomId": {
      "type": "string",
      "description": "Bookable room/rate id from the chosen room in `search_hotels`."
    },
    "checkIn": {
      "type": "string",
      "description": "Check-in date, ISO 8601 (YYYY-MM-DD)."
    },
    "checkOut": {
      "type": "string",
      "description": "Check-out date, ISO 8601 (YYYY-MM-DD)."
    },
    "rooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9,
      "description": "Rooms (default 1)."
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Adults (default 2)."
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "Children (default 0)."
    },
    "childrenAges": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 18
      },
      "description": "Age of each child."
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217 currency of `price`/`totalPrice` (e.g. 'USD')."
    },
    "hotelName": {
      "type": "string",
      "description": "Hotel name (from `search_hotels`)."
    },
    "roomName": {
      "type": "string",
      "description": "Room name (from the chosen room)."
    },
    "price": {
      "type": "number",
      "description": "Total to charge for the WHOLE stay (use `grandTotal` from `get_checkout_quote` verbatim — do not multiply it by the number of nights)."
    }
  },
  "required": [
    "hotelName",
    "roomName",
    "checkIn",
    "checkOut",
    "price",
    "currency"
  ],
  "additionalProperties": false
}
🟢get_booking(bookingToken)

Look up a hotel booking by its management token (sent in the confirmation email). Returns the booking status, hotel, dates, and guest details.

Input Schema

{
  "type": "object",
  "properties": {
    "bookingToken": {
      "type": "string",
      "description": "The booking management token from the confirmation email/URL."
    }
  },
  "required": [
    "bookingToken"
  ],
  "additionalProperties": false
}
🟢list_trips

List the signed-in user's saved trips (itineraries).

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟡save_trip(title, description, startDate, endDate, budget, ...)

Create a new saved trip (itinerary) for the signed-in user.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Trip title (1-255 chars)."
    },
    "description": {
      "type": "string",
      "description": "Optional notes (≤4000 chars)."
    },
    "startDate": {
      "type": "string",
      "description": "Trip start, ISO 8601 (YYYY-MM-DD)."
    },
    "endDate": {
      "type": "string",
      "description": "Trip end, ISO 8601 (YYYY-MM-DD)."
    },
    "budget": {
      "type": "number",
      "description": "Optional total budget."
    },
    "budgetCurrency": {
      "type": "string",
      "description": "ISO 4217 currency for the budget (e.g. 'USD')."
    }
  },
  "required": [
    "title",
    "startDate",
    "endDate"
  ],
  "additionalProperties": false
}
🟡add_trip_item(itineraryPublicId, day, type, title, description, ...)

Add an item (hotel, flight, activity, etc.) to a saved trip on a given day.

Input Schema

{
  "type": "object",
  "properties": {
    "itineraryPublicId": {
      "type": "string",
      "description": "The trip's public id (from `list_trips`/`save_trip`)."
    },
    "day": {
      "type": "integer",
      "minimum": 1,
      "maximum": 365,
      "description": "Day number within the trip."
    },
    "type": {
      "type": "string",
      "enum": [
        "hotel",
        "flight",
        "experience",
        "transfer",
        "activity",
        "meal",
        "note"
      ],
      "description": "Item type."
    },
    "title": {
      "type": "string",
      "description": "Item title (1-255 chars)."
    },
    "description": {
      "type": "string",
      "description": "Optional notes (≤2000 chars)."
    },
    "sortOrder": {
      "type": "integer",
      "minimum": 0,
      "description": "Order within the day (default 0)."
    }
  },
  "required": [
    "itineraryPublicId",
    "day",
    "type",
    "title"
  ],
  "additionalProperties": false
}
🟢list_my_bookings(page, limit)

List the signed-in user's hotel bookings.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "type": "integer",
      "minimum": 1,
      "description": "Page number (default 1)."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Page size (default 20)."
    }
  },
  "additionalProperties": false
}
🟢get_my_booking(publicId)

Get full details of one of the signed-in user's bookings by its public id.

Input Schema

{
  "type": "object",
  "properties": {
    "publicId": {
      "type": "string",
      "description": "The booking's public id."
    }
  },
  "required": [
    "publicId"
  ],
  "additionalProperties": false
}
⚪request_booking_action_code(publicId, action)

Email a 6-digit verification code to the booking owner, required before cancelling or modifying a booking. Step 1 of 2 — then call `cancel_booking`/`modify_booking` with the code.

Input Schema

{
  "type": "object",
  "properties": {
    "publicId": {
      "type": "string",
      "description": "The booking's public id."
    },
    "action": {
      "type": "string",
      "enum": [
        "cancel",
        "modify"
      ],
      "description": "Which action the code authorizes."
    }
  },
  "required": [
    "publicId",
    "action"
  ],
  "additionalProperties": false
}
🔴cancel_booking(publicId, verificationCode, reason)

Cancel one of the signed-in user's bookings. Requires the 6-digit `verificationCode` from `request_booking_action_code`. This may be irreversible and can trigger a refund per policy.

Input Schema

{
  "type": "object",
  "properties": {
    "publicId": {
      "type": "string",
      "description": "The booking's public id."
    },
    "verificationCode": {
      "type": "string",
      "description": "6-digit code from `request_booking_action_code`."
    },
    "reason": {
      "type": "string",
      "description": "Optional cancellation reason (≤1000 chars)."
    }
  },
  "required": [
    "publicId",
    "verificationCode"
  ],
  "additionalProperties": false
}
🔴modify_booking(publicId, verificationCode, checkIn, checkOut, specialRequests)

Change one of the signed-in user's bookings. Requires the 6-digit `verificationCode` from `request_booking_action_code`. Special-request edits always apply. A DATE change is pushed to the hotel supplier as a cancel-and-rebook at current availability, so it only works for suppliers that support amendment — for others (and when no room is available for the new dates) it returns an error asking you to cancel and rebook instead. A date change can shift the price and issue a new confirmation; the result's `supplierModifyStatus` says whether the supplier reservation was actually changed (`modified`), simulated (`simulated`), or the edit stayed local (`local_only`, e.g. special requests only). Never promise a date change went through unless `supplierModifyStatus` is `modified` or `simulated`.

Input Schema

{
  "type": "object",
  "properties": {
    "publicId": {
      "type": "string",
      "description": "The booking's public id."
    },
    "verificationCode": {
      "type": "string",
      "description": "6-digit code from `request_booking_action_code`."
    },
    "checkIn": {
      "type": "string",
      "description": "New check-in date, ISO 8601 (optional)."
    },
    "checkOut": {
      "type": "string",
      "description": "New check-out date, ISO 8601 (optional)."
    },
    "specialRequests": {
      "type": "string",
      "description": "New special requests (≤2000 chars, optional)."
    }
  },
  "required": [
    "publicId",
    "verificationCode"
  ],
  "additionalProperties": false
}
🟢list_payment_methods

List the signed-in user's saved payment cards (brand, last 4, expiry, default). Use the returned `publicId` with `create_one_click_checkout` to pre-select a card.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🔴create_one_click_checkout(ref, supplierCode, supplierHotelId, offerRef, supplierRoomId, ...)

Create a checkout for the signed-in user with a saved card pre-selected, and return a getmyhotels.com URL where they confirm + pay in one click. Does NOT charge the card — the user confirms on the hosted page. Get the `savedPaymentMethodPublicId` from `list_payment_methods`. Confirm the hotel, room, dates, and price with the user first.

Input Schema

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "description": "Hotel `ref` from `search_hotels` (e.g. 'TBO:1402689')."
    },
    "supplierCode": {
      "type": "string",
      "description": "Supplier code (if `ref` omitted)."
    },
    "supplierHotelId": {
      "type": "string",
      "description": "Supplier hotel id (if `ref` omitted)."
    },
    "offerRef": {
      "type": "string",
      "description": "Opaque room offer from get_rooms."
    },
    "supplierRoomId": {
      "type": "string",
      "description": "Bookable room/rate id from `search_hotels`."
    },
    "savedPaymentMethodPublicId": {
      "type": "string",
      "description": "Saved card `publicId` from `list_payment_methods`."
    },
    "hotelName": {
      "type": "string",
      "description": "Hotel name."
    },
    "roomName": {
      "type": "string",
      "description": "Room name."
    },
    "checkIn": {
      "type": "string",
      "description": "Check-in date, ISO 8601."
    },
    "checkOut": {
      "type": "string",
      "description": "Check-out date, ISO 8601."
    },
    "price": {
      "type": "number",
      "description": "Total for the WHOLE stay (use `grandTotal` from `get_checkout_quote` verbatim — do not multiply it by the number of nights)."
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217 currency (e.g. 'USD')."
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Adults (default 2)."
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "Children (default 0)."
    },
    "rooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9,
      "description": "Rooms (default 1)."
    }
  },
  "required": [
    "savedPaymentMethodPublicId",
    "hotelName",
    "roomName",
    "checkIn",
    "checkOut",
    "price",
    "currency"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded18 tools
verifiedversion not recorded18 tools