Skip to main content
Glama

Server Details

Search hotels worldwide, compare live room rates and cancellation terms, and create unpaid booking payment links. Requires a Fortrip account with OAuth sign-in; users complete payment on Fortrip, and the connector never collects card details.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.3/5.0

Scored across 8 tools

Disambiguation5/5

Each tool maps to a distinct stage of the hotel booking lifecycle: discovery, hotel facts, live offers, booking, payment, order lookup, order listing, and cancellation. The descriptions explicitly separate similar areas, such as get_hotel (static catalogue facts) from get_hotel_offers (live prices and availability), and search_hotels (indicative discovery) from get_hotel_offers (bookable offers).

Naming Consistency5/5

All tools use a consistent snake_case verb_noun pattern: search_hotels, get_hotel, get_hotel_offers, book_hotel, pay_order, get_order, list_orders, cancel_order. The convention is predictable and easy to scan.

Tool Count5/5

Eight tools are well scoped for a hotel booking flow and each has a clear role. There are no redundant tools or obvious missing lifecycle steps that would require an extra tool.

Completeness4/5

The surface covers search, hotel details, offers, booking, payment, retrieval, listing, and cancellation, which is strong lifecycle coverage. The main gap is that modifying an existing order is not available as a tool and instead requires emailing support, a minor but real dead end for an agent.

Publisher details

Operator
FortripAI
Operator website
https://fortrip.ai
Vendor relationship
Unknown
Trust center
Unknown
Restrictions
Unknown

Available Tools

8 tools
book_hotelCreate orderAInspect

Order one offer from get_hotel_offers. The answer is an unpaid order with a payment link: status awaiting_payment, the total, the stay and its terms, and payment.url, a Fortrip page to pay on. Nothing is charged until the order is paid, on that page or with pay_order; anyone holding the link can pay. Send the contact and, for each room of the offer, at least one guest. If the price or terms changed since the offer, the answer is offer_changed with every change and a new offer: show the changes and ask the user again before ordering it. Sending the same details again returns the same order. An offer is ordered once: for another order of the stay (another party, or a corrected guest name), get offers again and order the new offer; when it replaces an unpaid order, tell the user to pay only the new link, as the earlier one expires unpaid. To cancel an order, use cancel_order; for changes, or a cancellation cancel_order can't make, the user emails info@fortrip.ai with the order's reference.

Inputs: items (required), contact (required). Returns: items, price, cancel, status, +7 more

cancel_orderCancel orderA
DestructiveIdempotent
Inspect

Cancel a paid order under its terms, or close an unpaid one. Paid (cancel.reason cancellable): only after the user confirmed the order's cancel.penalty and cancel.refund with a clear yes, pass maximumPenalty, that cancel.penalty exactly as returned. The order becomes cancelling, then cancelled with cancel.refund refunded, or confirmed with reason refused if the hotel refuses: poll get_order. cancellation_changed: the penalty rose above maximumPenalty and nothing changed; ask the user again. Never state a refund the order did not return. Unpaid (cancel.reason unpaid): close it, without maximumPenalty, only once the user says they no longer want it; nothing is charged and it becomes expired. If it was paid meanwhile, the answer is the paid order, invalid_request, order_not_cancellable or order_in_progress: cancel it only under its cancel.penalty, with the user's yes. payment_in_progress: read it again shortly. Repeat calls answer the order as it is.

Inputs: orderId (required), maximumPenalty. Returns: items, price, cancel, status, +6 more

get_hotelHotel detailsA
Read-onlyIdempotent
Inspect

One hotel's catalogue facts: names, address, location, time zone, check-in and check-out times, the full description, every policy and the amenities, and its rooms with include: "rooms". "Not listed" is not "no". No prices or availability: get_hotel_offers has those.

Inputs: hotelId (required), locale, include. Returns: name, names, rooms, stars, +14 more

get_hotel_offersLive offersA
Read-onlyIdempotent
Inspect

Live, bookable offers for up to 15 hotels and one stay. Every room in stay.rooms must have the same party: for different parties, call once per party. Each offer has the room, the meals included, price.total, in the request's currency, for the whole stay and every room (what is charged), fees payable at the property, the cancellation terms with times in UTC and the hotel's time zone, the confirmation mode, and an offerId for book_hotel that expires at expiresAt. Hotels with nothing to offer are listed under unavailable with the reason. Up to limitPerHotel offers per hotel (default 15), picked to span price, free cancellation, breakfast and rooms, listed cheapest first; the answer counts those not shown.

Inputs: stay (required), hotelIds (required), locale, filters, +2 more. Returns: stay, hotels, unavailable

get_orderGet orderA
Read-onlyIdempotent
Inspect

One of the user's orders by orderId: its status, the payment status and, while it awaits payment, payment.url; the stay and its terms; and the hotel's confirmation number once there is one. Check it after the user pays.

Inputs: orderId (required), locale. Returns: items, price, cancel, status, +7 more

list_ordersList ordersA
Read-onlyIdempotent
Inspect

The user's hotel orders, newest first, including those made on the Fortrip website. Pass nextCursor back as cursor for the next page.

Inputs: limit, cursor, locale. Returns: data, nextStep, nextCursor

pay_orderPay orderA
Idempotent
Inspect

Pay a USD order without its link, by one of its payment.methods: a Stripe shared payment token, only if you can request one from the user's Link wallet (US and Canadian accounts; never ask the user for one), or Alipay/WeChat Pay (method stripe_alipay_wechat_pay). Call it only after the user confirmed the order's total and currency, the stay and every term with a clear yes. Token: request it with the entry's handler config.business_profile and limits, and pass it with price.total; a token pays one order. Wallet: pass method and price.total, then show the entry it returns: the WeChat code as an image if you can, and both links; the user pays once, by either. A code lasts 120 minutes; then the WeChat link opens a new one, or call again. Pay one way only: success closes payment.url, a failure leaves it open, and each error says how to recover. Then poll get_order.

Inputs: total (required), orderId (required), method, payment, +1 more. Returns: items, price, cancel, status, +6 more

search_hotelsSearch hotelsA
Read-onlyIdempotent
Inspect

Find hotels by destination and/or text, with an indicative per-room-night price when a stay is given. destination is a place_name with its countryCode, a place or locality by placeId from an earlier answer, a point, or a country. text matches hotel names, brands and areas word for word. Indicative prices are estimates and not bookable: get_hotel_offers returns what the user pays. A name several places bear answers destination_ambiguous, and a search too broad to answer search_too_broad with its localities; each error says what to do next. The answer states the scope, the counts and notes; a next page is the cursor and, optionally, limit.

Inputs: sort, stay, text, limit, +6 more. Returns: data, sort, stay, text, +6 more

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
      16
      9 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources