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,516Tokens (tool definitions)
~2.0 KBTypical response size
Significant attention impact (3.53% 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, checkIn, checkOut, ...)

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."
    },
    "checkIn": {
      "type": "string",
      "description": "Check-in date, ISO 8601 (YYYY-MM-DD). Pass the guest's dates when known: some suppliers only return a hotel that has rooms for them."
    },
    "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)."
    }
  },
  "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, activity, meal, 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",
        "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
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools
verifiedversion not recorded18 tools