Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,562Letters: 14Defects: 1,336counted just now
teppi

Server definition

Hash
sha256:7a3f3f92779d962bdbb4f6086c77ecd418870f3a734d6722af327f588fa1a119
What it is
What a remote MCP server returned when asked what it offers: 18 tools

The blob, as servednamed by its sha256

{ "instructions": "GetMyHotels lets you search real hotels, price them live, and start a booking.\n\nBooking workflow:\n1. `search_hotels` (destination + checkIn/checkOut + guests) returns a price-sorted list in the\n text as JSON. Each hotel has an opaque `ref` and an indicative stay price.\n2. To see all of one hotel's rooms (or refresh availability), call `get_rooms` with the hotel `ref`.\n3. `get_checkout_quote` (offerRef + ref + dates + totalPrice + currency) confirms the live price.\n4. `create_checkout` returns a getmyhotels.com link where the guest confirms and pays. It does NOT\n charge a card — never claim a booking is paid or confirmed from this tool alone.\n\nRules:\n- Use the `ref` and `offerRef` strings EXACTLY as returned — do not reformat, uppercase, or invent them.\n- Present a few good options with name, star rating, price, and cancellation; don't dump the whole list.\n- Every price is the TOTAL for the whole stay (all nights), not a per-night rate. Say so when you\n quote one. The live quote (step 3) is authoritative and is also a stay total.\n\nSign-in: search and creating a checkout link work for guests. Saving trips, viewing/cancelling/\nmodifying your bookings, listing saved cards, and one-click checkout require the user to sign in\n(the client runs an OAuth flow). Cancel/modify need a one-time code emailed via\n`request_booking_action_code` first.\n\nModifying a booking: special-request edits always apply. A DATE change is pushed to the hotel\nsupplier as a cancel-and-rebook at current availability — it only works for suppliers that\nsupport amendment and when a room is available for the new dates; otherwise the tool errors and\nthe user must cancel and rebook. Check the result's `supplierModifyStatus` before telling the\nuser a date change succeeded.\n\n`search` and `fetch` are the read-only tools for research-style clients.", "tools": [ { "description": "Add an item (hotel, flight, activity, etc.) to a saved trip on a given day.", "inputSchema": { "additionalProperties": false, "properties": { "day": { "description": "Day number within the trip.", "maximum": 365, "minimum": 1, "type": "integer" }, "description": { "description": "Optional notes (≤2000 chars).", "type": "string" }, "itineraryPublicId": { "description": "The trip's public id (from `list_trips`/`save_trip`).", "type": "string" }, "sortOrder": { "description": "Order within the day (default 0).", "minimum": 0, "type": "integer" }, "title": { "description": "Item title (1-255 chars).", "type": "string" }, "type": { "description": "Item type.", "enum": [ "hotel", "flight", "experience", "transfer", "activity", "meal", "note" ], "type": "string" } }, "required": [ "itineraryPublicId", "day", "type", "title" ], "type": "object" }, "name": "add_trip_item", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "publicId": { "description": "The booking's public id.", "type": "string" }, "reason": { "description": "Optional cancellation reason (≤1000 chars).", "type": "string" }, "verificationCode": { "description": "6-digit code from `request_booking_action_code`.", "type": "string" } }, "required": [ "publicId", "verificationCode" ], "type": "object" }, "name": "cancel_booking", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "adults": { "description": "Adults (default 2).", "maximum": 10, "minimum": 1, "type": "integer" }, "checkIn": { "description": "Check-in date, ISO 8601 (YYYY-MM-DD).", "type": "string" }, "checkOut": { "description": "Check-out date, ISO 8601 (YYYY-MM-DD).", "type": "string" }, "children": { "description": "Children (default 0).", "maximum": 6, "minimum": 0, "type": "integer" }, "childrenAges": { "description": "Age of each child.", "items": { "maximum": 18, "minimum": 0, "type": "integer" }, "type": "array" }, "currency": { "description": "ISO 4217 currency of `price`/`totalPrice` (e.g. 'USD').", "type": "string" }, "hotelName": { "description": "Hotel name (from `search_hotels`).", "type": "string" }, "offerRef": { "description": "Opaque room offer from get_rooms.", "type": "string" }, "price": { "description": "Total to charge for the WHOLE stay (use `grandTotal` from `get_checkout_quote` verbatim — do not multiply it by the number of nights).", "type": "number" }, "ref": { "description": "Hotel `ref` from `search_hotels` (e.g. 'TBO:1402689'). Alternative to supplierCode + supplierHotelId.", "type": "string" }, "roomName": { "description": "Room name (from the chosen room).", "type": "string" }, "rooms": { "description": "Rooms (default 1).", "maximum": 9, "minimum": 1, "type": "integer" }, "supplierCode": { "description": "Supplier code (from `search_hotels`). Required if `ref` is omitted.", "type": "string" }, "supplierHotelId": { "description": "Supplier hotel id (from `search_hotels`). Required if `ref` is omitted.", "type": "string" }, "supplierRoomId": { "description": "Bookable room/rate id from the chosen room in `search_hotels`.", "type": "string" } }, "required": [ "hotelName", "roomName", "checkIn", "checkOut", "price", "currency" ], "type": "object" }, "name": "create_checkout", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "adults": { "description": "Adults (default 2).", "maximum": 10, "minimum": 1, "type": "integer" }, "checkIn": { "description": "Check-in date, ISO 8601.", "type": "string" }, "checkOut": { "description": "Check-out date, ISO 8601.", "type": "string" }, "children": { "description": "Children (default 0).", "maximum": 6, "minimum": 0, "type": "integer" }, "currency": { "description": "ISO 4217 currency (e.g. 'USD').", "type": "string" }, "hotelName": { "description": "Hotel name.", "type": "string" }, "offerRef": { "description": "Opaque room offer from get_rooms.", "type": "string" }, "price": { "description": "Total for the WHOLE stay (use `grandTotal` from `get_checkout_quote` verbatim — do not multiply it by the number of nights).", "type": "number" }, "ref": { "description": "Hotel `ref` from `search_hotels` (e.g. 'TBO:1402689').", "type": "string" }, "roomName": { "description": "Room name.", "type": "string" }, "rooms": { "description": "Rooms (default 1).", "maximum": 9, "minimum": 1, "type": "integer" }, "savedPaymentMethodPublicId": { "description": "Saved card `publicId` from `list_payment_methods`.", "type": "string" }, "supplierCode": { "description": "Supplier code (if `ref` omitted).", "type": "string" }, "supplierHotelId": { "description": "Supplier hotel id (if `ref` omitted).", "type": "string" }, "supplierRoomId": { "description": "Bookable room/rate id from `search_hotels`.", "type": "string" } }, "required": [ "savedPaymentMethodPublicId", "hotelName", "roomName", "checkIn", "checkOut", "price", "currency" ], "type": "object" }, "name": "create_one_click_checkout", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "id": { "description": "An id from `search` results, or a 'bk_'-prefixed booking ref.", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "fetch", "outputSchema": null }, { "description": "Look up a hotel booking by its management token (sent in the confirmation email). Returns the booking status, hotel, dates, and guest details.", "inputSchema": { "additionalProperties": false, "properties": { "bookingToken": { "description": "The booking management token from the confirmation email/URL.", "type": "string" } }, "required": [ "bookingToken" ], "type": "object" }, "name": "get_booking", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "adults": { "description": "Adults (default 2).", "maximum": 10, "minimum": 1, "type": "integer" }, "checkIn": { "description": "Check-in date, ISO 8601 (YYYY-MM-DD).", "type": "string" }, "checkOut": { "description": "Check-out date, ISO 8601 (YYYY-MM-DD).", "type": "string" }, "children": { "description": "Children (default 0).", "maximum": 6, "minimum": 0, "type": "integer" }, "childrenAges": { "description": "Age of each child.", "items": { "maximum": 18, "minimum": 0, "type": "integer" }, "type": "array" }, "currency": { "description": "ISO 4217 currency of `price`/`totalPrice` (e.g. 'USD').", "type": "string" }, "offerRef": { "description": "Opaque room offer from get_rooms.", "type": "string" }, "promoCode": { "description": "Optional promo code.", "type": "string" }, "ref": { "description": "Hotel `ref` from `search_hotels` (e.g. 'TBO:1402689'). Alternative to supplierCode + supplierHotelId.", "type": "string" }, "rooms": { "description": "Rooms (default 1).", "maximum": 9, "minimum": 1, "type": "integer" }, "supplierCode": { "description": "Supplier code (from `search_hotels`). Required if `ref` is omitted.", "type": "string" }, "supplierHotelId": { "description": "Supplier hotel id (from `search_hotels`). Required if `ref` is omitted.", "type": "string" }, "supplierRoomId": { "description": "Bookable room/rate id from the chosen room in `search_hotels`.", "type": "string" }, "totalPrice": { "description": "The room's price from `search_hotels` — the TOTAL for the whole stay, not a nightly rate (used to detect price changes).", "type": "number" } }, "required": [ "checkIn", "checkOut", "totalPrice", "currency" ], "type": "object" }, "name": "get_checkout_quote", "outputSchema": null }, { "description": "Get full property details (description, amenities, photos, policies, location) for a hotel, identified by its `ref` from `search_hotels` (or its supplierCode + supplierHotelId).", "inputSchema": { "additionalProperties": false, "properties": { "ref": { "description": "The hotel `ref` from search (e.g. 'tbo:1360717').", "type": "string" }, "supplierCode": { "description": "Alternative to `ref`: supplier code.", "type": "string" }, "supplierHotelId": { "description": "Alternative to `ref`: supplier hotel id.", "type": "string" } }, "type": "object" }, "name": "get_hotel_details", "outputSchema": null }, { "description": "Get full details of one of the signed-in user's bookings by its public id.", "inputSchema": { "additionalProperties": false, "properties": { "publicId": { "description": "The booking's public id.", "type": "string" } }, "required": [ "publicId" ], "type": "object" }, "name": "get_my_booking", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "adults": { "description": "Adults (default 2).", "maximum": 10, "minimum": 1, "type": "integer" }, "checkIn": { "description": "Check-in date, ISO 8601 (YYYY-MM-DD).", "type": "string" }, "checkOut": { "description": "Check-out date, ISO 8601 (YYYY-MM-DD).", "type": "string" }, "children": { "description": "Children (default 0).", "maximum": 6, "minimum": 0, "type": "integer" }, "ref": { "description": "The hotel `ref` from search (e.g. 'tbo:1360717').", "type": "string" }, "rooms": { "description": "Rooms (default 1).", "maximum": 9, "minimum": 1, "type": "integer" }, "supplierCode": { "description": "Alternative to `ref`: supplier code.", "type": "string" }, "supplierHotelId": { "description": "Alternative to `ref`: supplier hotel id.", "type": "string" } }, "required": [ "checkIn", "checkOut" ], "type": "object" }, "name": "get_rooms", "outputSchema": null }, { "description": "List the signed-in user's hotel bookings.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "description": "Page size (default 20).", "maximum": 100, "minimum": 1, "type": "integer" }, "page": { "description": "Page number (default 1).", "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "list_my_bookings", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "list_payment_methods", "outputSchema": null }, { "description": "List the signed-in user's saved trips (itineraries).", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "list_trips", "outputSchema": null }, { "description": "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`.", "inputSchema": { "additionalProperties": false, "properties": { "checkIn": { "description": "New check-in date, ISO 8601 (optional).", "type": "string" }, "checkOut": { "description": "New check-out date, ISO 8601 (optional).", "type": "string" }, "publicId": { "description": "The booking's public id.", "type": "string" }, "specialRequests": { "description": "New special requests (≤2000 chars, optional).", "type": "string" }, "verificationCode": { "description": "6-digit code from `request_booking_action_code`.", "type": "string" } }, "required": [ "publicId", "verificationCode" ], "type": "object" }, "name": "modify_booking", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "action": { "description": "Which action the code authorizes.", "enum": [ "cancel", "modify" ], "type": "string" }, "publicId": { "description": "The booking's public id.", "type": "string" } }, "required": [ "publicId", "action" ], "type": "object" }, "name": "request_booking_action_code", "outputSchema": null }, { "description": "Create a new saved trip (itinerary) for the signed-in user.", "inputSchema": { "additionalProperties": false, "properties": { "budget": { "description": "Optional total budget.", "type": "number" }, "budgetCurrency": { "description": "ISO 4217 currency for the budget (e.g. 'USD').", "type": "string" }, "description": { "description": "Optional notes (≤4000 chars).", "type": "string" }, "endDate": { "description": "Trip end, ISO 8601 (YYYY-MM-DD).", "type": "string" }, "startDate": { "description": "Trip start, ISO 8601 (YYYY-MM-DD).", "type": "string" }, "title": { "description": "Trip title (1-255 chars).", "type": "string" } }, "required": [ "title", "startDate", "endDate" ], "type": "object" }, "name": "save_trip", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "adults": { "description": "Adults (1-10). Default 2.", "maximum": 10, "minimum": 1, "type": "integer" }, "checkIn": { "description": "Check-in date, ISO 8601 (YYYY-MM-DD).", "type": "string" }, "checkOut": { "description": "Check-out date, ISO 8601 (YYYY-MM-DD). Must be after check-in.", "type": "string" }, "children": { "description": "Children (0-6). Default 0.", "maximum": 6, "minimum": 0, "type": "integer" }, "childrenAges": { "description": "Age of each child at check-in. Length should equal `children`.", "items": { "maximum": 17, "minimum": 0, "type": "integer" }, "type": "array" }, "destination": { "description": "City, region, or place to search (e.g. 'Paris', 'Goa', 'Lower Manhattan').", "type": "string" }, "guestNationality": { "description": "ISO 3166-1 alpha-2 guest nationality (e.g. 'US', 'GB'). Affects supplier pricing.", "type": "string" }, "keywords": { "description": "Optional free-text preferences, e.g. 'beachfront pool spa'.", "type": "string" }, "query": { "description": "Natural-language search, e.g. 'hotels in Lisbon 2026-08-10 to 2026-08-14 for 2 adults'.", "type": "string" }, "rooms": { "description": "Rooms (1-6). Default 1.", "maximum": 6, "minimum": 1, "type": "integer" } }, "required": [ "query" ], "type": "object" }, "name": "search", "outputSchema": null }, { "description": "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).", "inputSchema": { "additionalProperties": false, "properties": { "adults": { "description": "Adults (1-10). Default 2.", "maximum": 10, "minimum": 1, "type": "integer" }, "checkIn": { "description": "Check-in date, ISO 8601 (YYYY-MM-DD).", "type": "string" }, "checkOut": { "description": "Check-out date, ISO 8601 (YYYY-MM-DD). Must be after check-in.", "type": "string" }, "children": { "description": "Children (0-6). Default 0.", "maximum": 6, "minimum": 0, "type": "integer" }, "childrenAges": { "description": "Age of each child at check-in. Length should equal `children`.", "items": { "maximum": 17, "minimum": 0, "type": "integer" }, "type": "array" }, "destination": { "description": "City, region, or place to search (e.g. 'Paris', 'Goa', 'Lower Manhattan').", "type": "string" }, "guestNationality": { "description": "ISO 3166-1 alpha-2 guest nationality (e.g. 'US', 'GB'). Affects supplier pricing.", "type": "string" }, "keywords": { "description": "Optional free-text preferences, e.g. 'beachfront pool spa'.", "type": "string" }, "rooms": { "description": "Rooms (1-6). Default 1.", "maximum": 6, "minimum": 1, "type": "integer" } }, "required": [ "destination", "checkIn", "checkOut" ], "type": "object" }, "name": "search_hotels", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:7a3f3f92779d962bdbb4f6086c77ecd418870f3a734d6722af327f588fa1a119 | sha256sum