LockTrip Hotels
REMOTE · LOCKTRIP.COM
Search hotels worldwide, compare rooms, prices and cancellation terms, then get a link to book.
Available components
Last scanned (6 hours ago)
Scores higher than 44% of remote servers
Reachable. Last reached 5 Nov 2026.
Category E-commerce
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (confirm_booking). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability62
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5355 tokens (~315/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
- Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 93% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 4 Nov 26 0
- Stability: unverified → 0.03 ▲ functional
- 3 Nov 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://locktrip.com/mcp/rpc
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=locktrip.com | CN=WE1,O=Google Trust Services,C=US | 17 Sept 2026 | 16 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | 8a62aa20a08bd49c13af2e2b3d86087a |
| SANs: locktrip.com, *.locktrip.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of locktrip.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| locktrip.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://locktrip.com/mcp/rpc | Verified | 200 | |
| http (plaintext) | http://locktrip.com/mcp/rpc | HTTPS enforced | 301 | https://locktrip.com/mcp/rpc |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cancel_booking Cancel Booking ~407
Cancels an existing booking. Required: `bookingId` (from `list_bookings`) and the boolean `confirmed`; optional `reason`. This is a two-step safety flow: calling with `confirmed:false` does NOT cancel and returns only a 'not confirmed' acknowledgement (it does NOT return fees or refund amounts — read those first from `get_booking_details`); call again with `confirmed:true` to actually submit the cancellation. On success the response includes `cancellationFee` + `cancellationFeeCurrency` when the supplier reported a charged fee (absent means none was reported, not zero); refunds are processed separately. When the cancellation is not accepted, `failureReason` is one of `NOT_FOUND`, `AFTER_CHECK_IN`, `NOT_CANCELLABLE_STATUS`, `SUPPLIER_NOT_CONFIRMED` (submitted, under review: do not rebook or retry) or `ERROR` (not processed: the booking was not cancelled; try again later or contact support). Needs a registered LockTrip account session; guest sessions cannot cancel bookings. Without a signed-in session, pass the user's `email` instead: LockTrip emails them a sign-in link to their bookings on locktrip.com, and the result has `magicLinkSent: true` (nothing is shown or changed in this chat). Returns `success` and a `message`. This is a destructive, terminal action — confirm with the user before calling with `confirmed:true`.
| Name | Type | Req | Description |
|---|---|---|---|
| bookingId | string | yes | Booking ID to cancel |
| confirmed | boolean | yes | Set true to confirm cancellation |
| string | – | The user's LockTrip account email. Needed only when there is no signed-in session: LockTrip then emails that address a sign-in link to the user's bookings on locktrip.com (the bookings are not shown… | |
| reason | string | – | Optional cancellation reason |
| sessionToken | string | – | Optional guest-checkout token returned by `guest_login`. |
No output schema declared.
No examples provided.
check_cancellation_policy Check Cancellation Policy ~238
Returns detailed cancellation terms for one or more room packages before booking. Required: `searchKey`, `hotelId`, and `packageIds[]` — pass the package UUID WITHOUT the `_hotelId` suffix, i.e. `quoteId.split('_')[0]`. Passing the full `quoteId` here fails with a misleading SESSION_EXPIRED even on a live session, because the policy lookup matches the bare UUID. Returns `policies[]`, each with `packageId`, `isRefundable`, `freeCancellationUntil`, and `fees[]` (`fromDate`, `amount`, `currency`). `currency` is the supplier's own denomination for that penalty and is OMITTED, never guessed, when the supplier does not state one — so read the amount as unpriced if it is absent rather than assuming your search currency. No authentication required. Informational only — use it to confirm the refund/penalty terms with the user, then continue with `prepare_booking`.
| Name | Type | Req | Description |
|---|---|---|---|
| hotelId | string | yes | Hotel ID |
| packageIds | array | yes | Package IDs to check |
| searchKey | string | yes | Search key |
No output schema declared.
No examples provided.
confirm_booking Confirm Hotel Booking ~321
Confirms and finalizes a booking using a B2B credit line — PARTNER ACCOUNTS ONLY. Guests cannot use this; ordinary consumers must instead pay via `create_checkout` (recommended) or `get_payment_url`. Required: `bookingInternalId` and `quoteId` (both from `prepare_booking`); `paymentMethod` defaults to `CREDIT_LINE`. REQUIRES A B2B PARTNER SESSION with a credit line; a `guest_login` session has no credit line and is rejected. Returns `accepted` and `message`, plus a `voucherUrl` on success. On `accepted:false`, READ `serviceUnavailable`: if it is absent the credit-line service gave a real verdict (insufficient balance, inactive line) and the answer will NOT change on retry — tell the user and stop; if it is `true` the credit-line service was unreachable, which is a system fault and not a decision about their credit. Even then do NOT blindly retry: the reservation may already have been applied — re-read the booking with `get_booking_details` first. Note also that `accepted:true` means the credit line was charged and the booking accepted, but the supplier reservation is completed asynchronously afterwards.
| Name | Type | Req | Description |
|---|---|---|---|
| bookingInternalId | string | yes | Booking ID from prepare_booking |
| paymentMethod | string | – | Payment method (default: CREDIT_LINE for B2B) |
| quoteId | string | yes | Quote ID used in prepare_booking |
| sessionToken | string | – | Optional guest-checkout token returned by `guest_login`. |
No output schema declared.
No examples provided.
create_checkout Create Checkout ~244
Creates a hosted Revolut payment link for a prepared booking — the RECOMMENDED way for ordinary consumers (no credit line) to pay. Required: `bookingId` (the `preparedBookingId` from `prepare_booking`) and `currency` (3-letter); optional `backUrl` and `successUrl`. REQUIRES A SESSION: pass the token returned by `guest_login` as the `sessionToken` argument. Returns a `checkoutUrl` (valid ~20 minutes), a `checkoutToken`, and a `message`. Share the `checkoutUrl` with the guest to complete payment — the booking is confirmed automatically by webhook once payment succeeds (do not call `confirm_booking`, which is B2B-only).
| Name | Type | Req | Description |
|---|---|---|---|
| backUrl | string | – | Cancel/back redirect URL (optional, defaults to locktrip.com) |
| bookingId | string | yes | Booking ID from prepare_booking (preparedBookingId) |
| currency | string | yes | 3-letter currency code (e.g. USD, EUR, GBP) |
| sessionToken | string | – | Optional guest-checkout token returned by `guest_login`. |
| successUrl | string | – | Success redirect URL (optional) |
No output schema declared.
No examples provided.
get_booking_details Get Booking Details ~282
Returns the full details of one existing booking: hotel, dates, rooms, guests, contact person, total price, payment status (`PAID`, `PENDING`, or `CREDIT_LINE` for a confirmed booking charged to a partner credit line, settled per statement via `GET /api/b2b/credit-line/statement`), and the cancellation policy (including any cancellation fees and the free-cancellation deadline). Required: `bookingId` (from `list_bookings`). Needs a registered LockTrip account session; guest sessions cannot view booking details. Without a signed-in session, pass the user's `email` instead: LockTrip emails them a sign-in link to their bookings on locktrip.com, and the result has `magicLinkSent: true` (nothing is shown or changed in this chat). Informational only. Use this to read the fee/refund terms BEFORE cancelling, since `cancel_booking` itself does not return a fee preview.
| Name | Type | Req | Description |
|---|---|---|---|
| bookingId | string | yes | Booking ID to retrieve |
| string | – | The user's LockTrip account email. Needed only when there is no signed-in session: LockTrip then emails that address a sign-in link to the user's bookings on locktrip.com (the bookings are not shown… | |
| sessionToken | string | – | Optional guest-checkout token returned by `guest_login`. |
No output schema declared.
No examples provided.
get_credit_line_statement Get Credit-Line Statement ~279
Returns the signed-in partner's own credit-line statement: `balance` (the real-time balance due and pending, ALWAYS for the whole credit line, not filtered by the dates), `account` details (name, currency, creditLimit, periodType), and the booking rows whose due date falls between `from` and `to` (default: the current month; at most 93 days). Each row carries `bookingReferenceId`, `hotelName`, `guestName`, dates, `amount`, `currency`, `bucket` (`current` = due, `pending` = not due yet), `dueDate`, `paid`, `outstanding`, `paymentStatus`, `settledBy`, and `lineType` (`booking`, or `cancellation_fee` for a late-cancellation charge). Read-only. Needs a signed-in partner credit-line account session; guest sessions have no credit line. Takes no account identifier: the credit line is always the caller's own.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | – | First due date to include, YYYY-MM-DD. Pass with `to`; omit both for the current month. |
| sessionToken | string | – | Optional guest-checkout token returned by `guest_login`. |
| to | string | – | Last due date to include, YYYY-MM-DD (at most 93 days after `from`). |
No output schema declared.
No examples provided.
get_hotel_details Get Hotel Details ~204
Fetches full descriptive details for one hotel: name, address, coordinates (lat/lng), star rating, description, phone, amenities, photos, and reviews. Required: the NUMERIC `hotelId` (the same hotel identifier returned in search results, passed as a number); optional `language`, `includeImages` (set true to fetch extra photos), and `imageLimit` (default 20, max 100). Returns a `hotel` object and optional `additionalImages`. No authentication required. Informational only — use it to enrich what you show the user before they pick a room.
| Name | Type | Req | Description |
|---|---|---|---|
| hotelId | number | yes | Hotel ID (numeric, from search results externalId) |
| imageLimit | number | – | Max additional images to fetch (default: 20, max: 100) |
| includeImages | boolean | – | Fetch additional hotel images (default: false) |
| language | string | – | Language code for description (default: en) |
No output schema declared.
No examples provided.
get_hotel_rooms Get Hotel Rooms ~356
Lists the bookable room packages for one hotel. Required: `hotelId` (from `get_search_results`), the SAME `searchKey` from `hotel_search`, plus `startDate`, `endDate`, `rooms[]`, `nationality`, and `regionId` (re-supply the same values used in `hotel_search`); `currency` is recommended. Returns `packages[]`, each with a `quoteId` (the priced, bookable offer — format `packageId_hotelId`), a `packageId` (the same string as the `quoteId`; truncate it at the underscore before sending it to `check_cancellation_policy`), `roomName`, `mealType`, `price`, `pricePerNight`, `totalNights`, `amenities`, and `isRefundable`. No authentication required. Pass a chosen `quoteId` to `prepare_booking` (and to `confirm_booking` for B2B). To inspect cancellation terms first, pass `quoteId.split('_')[0]` (the bare package UUID, WITHOUT the `_hotelId` suffix) to `check_cancellation_policy` — handing it the full `quoteId` fails with a misleading SESSION_EXPIRED even on a live session.
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | Currency code |
| endDate | string | yes | Check-out date (YYYY-MM-DD) |
| hotelId | string | yes | Hotel ID from search results |
| nationality | string | yes | 2-letter country code |
| regionId | string | yes | Region ID |
| rooms | array | yes | – |
| searchKey | string | yes | Search key |
| startDate | string | yes | Check-in date (YYYY-MM-DD) |
No output schema declared.
No examples provided.
get_payment_url Get Payment URL ~242
Creates a hosted Stripe (credit-card) checkout link for a prepared booking — an alternative consumer payment rail to `create_checkout` (Revolut). Required: `bookingId` (the `preparedBookingId` from `prepare_booking`), `currency` (3-letter), and `backUrl`; optional `successUrl`. REQUIRES A REGISTERED-ACCOUNT SESSION; a `guest_login` session is REJECTED here (the Stripe rail is not open to guests; use `create_checkout` for a guest instead). Returns a payment `url` and a `sessionId`. Share the `url` with the guest — the booking is confirmed automatically by webhook once payment succeeds. Prefer `create_checkout` unless a Stripe card link is specifically needed.
| Name | Type | Req | Description |
|---|---|---|---|
| backUrl | string | yes | URL to redirect on cancel/back |
| bookingId | string | yes | Booking ID from prepare_booking (preparedBookingId) |
| currency | string | yes | Payment currency code (e.g., USD, EUR) |
| sessionToken | string | – | Optional guest-checkout token returned by `guest_login`. |
| successUrl | string | – | Custom URL to redirect on success |
No output schema declared.
No examples provided.
get_search_results Get Hotel Search Results ~450
Returns the hotel results for a running search identified by `searchKey` (from `hotel_search`). Results stream in asynchronously, so POLL this tool until the returned `searchStatus` equals `COMPLETED` (it is `IN_PROGRESS` while results are still loading). Supports `page` (0-indexed on BOTH the request and the response echo — page 0 is the first page and comes back as page 0), `size` (use a large value like 5000 to get all), `filters` (minPrice/maxPrice/starRatings/amenities/mealTypes/hotelName/minDiscountScore), `sortBy` (PRICE_ASC/PRICE_DESC/RATING_DESC/DISTANCE/VALUE_DESC), and `currency`. Returns `hotels[]` (each with `hotelId`, `name`, `starRating`, `minPrice`, `originalPrice`, `currency`, `discountScore`, `reviewScore`, `hasFreeCancellation`, `isRefundable`, etc.), plus `totalCount` and `hasMore`. `discountScore` is LockTrip's value score for the offer: an estimated % below the hotel's usual public price (the figure locktrip.com shows as "X% off"). Higher means better value; 20 or more is a strong deal; 0 or missing means no score. A low price is not the same as good value, so to find the best-value hotels use `sortBy` VALUE_DESC (highest discountScore first) or `filters.minDiscountScore` (e.g. 20), and weigh it with `starRating` and `reviewScore`. No authentication required. Pass a chosen `hotelId` together with the SAME `searchKey` to `get_hotel_rooms`.
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | Currency code from hotel_search (prices are in this currency) |
| filters | object | – | – |
| page | number | – | Page number (0-indexed) |
| searchKey | string | yes | Search key from hotel_search |
| size | number | – | Results per page (use 5000 to get all) |
| sortBy | string | – | VALUE_DESC = best value first (highest discountScore) |
No output schema declared.
No examples provided.
get_statement_document Get Statement Document ~144
Returns the signed-in partner's own monthly statement of account for `period` (YYYY-MM) exactly as it was sent to them: `format` `pdf` (default) returns the PDF as an embedded file, `csv` returns the CSV as text in `csv`. Statements exist only for months already issued; any other month returns RESOURCE_NOT_FOUND. Read-only. Needs a signed-in partner credit-line account session; guest sessions have no credit line.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | pdf (default) or csv |
| period | string | yes | Statement month, YYYY-MM |
| sessionToken | string | – | Optional guest-checkout token returned by `guest_login`. |
No output schema declared.
No examples provided.
guest_login Continue as Guest ~227
Starts a guest checkout from the user's `email` only (no password) and returns a session `token` plus `userId`, `email`, and `isNewUser`; a new email also receives a verification email. Use it when the user wants to book, with the email the user gave for the booking. Pass the returned `token` as the `sessionToken` argument to `prepare_booking` and `create_checkout`. If the email already belongs to a LockTrip account, no guest session is created: LockTrip emails a sign-in link to that address instead, and the result has `magicLinkSent: true` and no `token`. Tell the user to check their email and finish on locktrip.com; do not call `guest_login` again for that email. A guest session can search, prepare a booking, and pay via `create_checkout`, but CANNOT list, view or cancel bookings, use `get_payment_url`, or use `confirm_booking`. No authentication required to call this tool.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | User email address for guest registration/login |
No output schema declared.
No examples provided.
hotel_search Search Hotels ~376
Starts an asynchronous hotel-availability search and returns a `searchKey` (plus `sessionId`, `status`, `totalHotels`). Required: `startDate` and `endDate` (both YYYY-MM-DD), `rooms[]` (each `{adults, childrenAges?[]}`, 1-4 adults per room), `nationality` (2-letter ISO country code), and EITHER `regionId` (from `search_location`) OR `latitude`+`longitude`; `currency` (3-letter) is strongly recommended. Before calling, collect the missing trip details from the user (exact check-in date, number of nights to derive `endDate`, number of rooms/adults, and nationality) instead of guessing. No authentication required. Pass the returned `searchKey` to `get_search_results` (poll it), and reuse the SAME `searchKey` for `get_hotel_rooms` and `prepare_booking`.
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | Currency code (USD, EUR, etc.) |
| endDate | string | yes | Check-out date (YYYY-MM-DD) |
| latitude | number | – | Latitude for coordinate-based search (-90 to 90). Use with longitude instead of regionId. |
| longitude | number | – | Longitude for coordinate-based search (-180 to 180). Use with latitude instead of regionId. |
| nationality | string | yes | 2-letter country code for guest nationality |
| radiusInMeters | number | – | Search radius in meters (default: 30000, min: 1000, max: 100000). Only with lat/lng. |
| regionId | string | – | Location ID from search_location. Required unless latitude/longitude are provided. |
| rooms | array | yes | Room configurations |
| startDate | string | yes | Check-in date (YYYY-MM-DD) |
No output schema declared.
No examples provided.
list_bookings List My Bookings ~340
Lists the authenticated user's existing bookings, filtered by `type`: `UPCOMING` (default), `COMPLETED`, `CANCELLED`, or `PENDING`. Needs a registered LockTrip account session; guest sessions from `guest_login` cannot list bookings. Without a signed-in session, pass the user's `email` instead: LockTrip emails them a sign-in link to their bookings on locktrip.com, and the result has `magicLinkSent: true` (nothing is shown or changed in this chat). Returns `bookings[]` (each with `bookingId`, `bookingReferenceId`, `hotelName`, `checkIn`, `checkOut`, `status`, `roomCount`, `createdAt`, and `totalPrice` + `currency` when the booking records a price) plus `totalCount` (all matching bookings). Optional paging: `page` (0-based) and `size` (max 100); omit both for the full list. Pass a `bookingId` to `get_booking_details` or `cancel_booking`.
| Name | Type | Req | Description |
|---|---|---|---|
| string | – | The user's LockTrip account email. Needed only when there is no signed-in session: LockTrip then emails that address a sign-in link to the user's bookings on locktrip.com (the bookings are not shown… | |
| page | integer | – | Page number, 0-based. Omit page and size for the full list. |
| sessionToken | string | – | Optional guest-checkout token returned by `guest_login`. |
| size | integer | – | Bookings per page (max 100). |
| type | string | – | Booking list filter |
No output schema declared.
No examples provided.
list_settlements List Bank Transfers ~179
Lists the signed-in partner's own bank-transfer settlements of the credit line: `settlements[]` (each with `reference`, `status`, `amount`, `currency`, `createdAt`, `expiresAt`, and `receivedAmount`/`receivedAt` once the transfer has arrived), `payable[]` (transfers still awaiting funds), the `bank` details to pay into, and a `notice` that must be shown to the user as given (overpayments are held as credit, not refunded). This is the list of transfers, not per-booking payment state: that is on each row of `get_credit_line_statement`. Read-only. Needs a signed-in partner credit-line account session; guest sessions have no credit line.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionToken | string | – | Optional guest-checkout token returned by `guest_login`. |
No output schema declared.
No examples provided.
prepare_booking Prepare Hotel Booking ~366
Prepares a booking for a chosen room offer and returns the final price plus a `preparedBookingId` (also returned as the alias `bookingInternalId`). A prepared booking has NO fixed expiry — what expires is the search session behind its `quoteId`, which surfaces as "This booking is unavailable"; re-run `hotel_search` and re-quote if you see that. Required: `quoteId` (from `get_hotel_rooms`), `searchKey` (the SAME one from `hotel_search` — omitting it is a 400), `rooms[]` (each `{roomIndex (0-based), guests:[{firstName, lastName, title?}], children?}` — one guest entry per adult), and a `contactPerson` (`firstName`, `lastName`, `email`, `phone`); the `searchKey` is required (it warms the cancellation-policy cache the backend needs to book). Collect every guest's first/last name and a contact email + phone from the user before calling. REQUIRES A SESSION: for a guest booking, first call `guest_login` with the user's email and pass the returned token as the `sessionToken` argument. After this, send `preparedBookingId` to `create_checkout` (consumer, recommended) or `get_payment_url` (consumer, Stripe alternative); B2B partners use `confirm_booking`.
| Name | Type | Req | Description |
|---|---|---|---|
| contactPerson | object | yes | – |
| quoteId | string | yes | Quote ID from get_hotel_rooms |
| rooms | array | yes | – |
| searchKey | string | yes | Search key from hotel_search (needed to validate cancellation policy) |
| sessionToken | string | – | Optional guest-checkout token returned by `guest_login`. |
| specialRequests | string | – | – |
No output schema declared.
No examples provided.
search_location Search Locations ~139
Searches LockTrip destinations (cities, regions, landmarks, or specific hotels) by free-text `query`. Returns `locations[]`, each with `id`, `name`, `country`, `type` (CITY/REGION/HOTEL/AIRPORT/POI), and `fullName`. Pass a chosen location's `id` to `hotel_search` as its `regionId` to search hotels in that area. No authentication required. This is the first step of the booking flow.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Language code (default: en) |
| query | string | yes | Search query (city name, region, or hotel name) |
No output schema declared.
No examples provided.
How do I install the LockTrip Hotels MCP server?
LockTrip Hotels is a hosted endpoint at https://locktrip.com/mcp/rpc, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · locktrip.com
claude mcp add --transport http com-locktrip-hotels 'https://locktrip.com/mcp/rpc'
What is the LockTrip Hotels MCP server?
LockTrip Hotels is an MCP server listed in the public MCP registry as com.locktrip/hotels. Search hotels worldwide, compare rooms, prices and cancellation terms, then get a link to book. This page covers its hosted endpoint (https://locktrip.com/mcp/rpc).
Is the LockTrip Hotels MCP server safe to use?
LockTrip Hotels scores 63 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the LockTrip Hotels MCP server expose?
LockTrip Hotels exposes 17 tools: search_location, hotel_search, get_search_results, get_hotel_rooms, check_cancellation_policy, and 12 more. Their descriptions and schemas cost roughly 4,794 tokens of context every time the server is loaded.
Does the LockTrip Hotels MCP server require authentication?
No. We connected to LockTrip Hotels without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the LockTrip Hotels MCP server still maintained?
LockTrip Hotels is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.