Fortrip
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.
- 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
Scored across 8 tools
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).
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.
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.
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
- Documentation
- https://fortrip.ai/agents/docs
- Trust center
- Unknown
- Restrictions
- Unknown
Available Tools
8 toolsbook_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 orderADestructiveIdempotentInspect
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 detailsARead-onlyIdempotentInspect
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 offersARead-onlyIdempotentInspect
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 orderARead-onlyIdempotentInspect
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 ordersARead-onlyIdempotentInspect
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 orderAIdempotentInspect
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 hotelsARead-onlyIdempotentInspect
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
- AlicenseNot gradedqualityCmaintenanceRemote 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
- AlicenseCqualityCmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs112 npm29 PyPIMIT
- AlicenseAqualityDmaintenanceEnables 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.169 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.