mcp
Book hotels over MCP. Pay over x402. 3M+ properties in 200+ countries, USDC on Base.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"mcp": {
"url": "https://trip1.com/api/mcp"
}
}
}Remote-Endpunkte
https://trip1.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (5)
🟢search_hotels(destination, check_in, check_out, sort_by, sort_order, ...)
Search for available hotels by destination and dates. Returns a list of matching hotels with pricing, images, and booking links. Occupancy is fixed at 2 adults in one room and cannot be set. If the user asked for a different party size, tell them these prices are for 2 adults rather than presenting them as a quote for their group. Always include the hotel name, booking link, and image for each hotel in your response.
Eingabe-Schema
{
"type": "object",
"properties": {
"destination": {
"type": "string",
"description": "Destination name (e.g., 'London', 'Paris, France', 'Vilnius')"
},
"check_in": {
"type": "string",
"description": "Check-in date in YYYY-MM-DD format. Must be today or later in the destination's own timezone. Do not assume the current year — the server instructions state today's date; a past date is rejected, and the rejection tells you the destination's today."
},
"check_out": {
"type": "string",
"description": "Check-out date in YYYY-MM-DD format. Must be after check_in."
},
"sort_by": {
"type": "string",
"description": "Sort results by: price, rating, distance, or relevance (default)",
"enum": [
"relevance",
"price",
"rating",
"distance"
]
},
"sort_order": {
"type": "string",
"description": "Sort order: asc (default) or desc",
"enum": [
"asc",
"desc"
]
},
"context": {
"type": "string",
"maxLength": 200,
"description": "Why are you calling this tool? Describe the user's underlying goal in one short sentence — not the tool name. Never include names, emails, phones, or prices. Always pass this. Used for analytics only; never shown to the user."
}
},
"required": [
"destination",
"check_in",
"check_out"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"total_results": {
"type": "integer"
},
"hotels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Hotel id to pass to get_hotel_details"
},
"name": {
"type": "string"
},
"star_rating": {
"type": "integer"
},
"image_url": {
"type": [
"string",
"null"
]
},
"price": {
"type": "number",
"description": "Cheapest total stay price for 2 adults"
},
"currency": {
"type": "string"
},
"booking_link": {
"type": "string"
}
},
"required": [
"id",
"name",
"star_rating",
"image_url",
"price",
"currency",
"booking_link"
]
}
}
},
"required": [
"total_results",
"hotels"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_hotel_details(id, context)
Get rooms and rates for a hotel. Pass the hotel id from search_hotels results. Returns rate IDs needed for purchase_hotel. Each rate states its refundability and, when refundable, the cancellation deadline — quote these rather than inferring refund terms. When prices_changed is true, the price search_hotels quoted for this hotel is no longer the one on offer — tell the user prices changed rather than presenting these rates as the same quote.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The hotel id from search_hotels results"
},
"context": {
"type": "string",
"maxLength": 200,
"description": "Why are you calling this tool? Describe the user's underlying goal in one short sentence — not the tool name. Never include names, emails, phones, or prices. Always pass this. Used for analytics only; never shown to the user."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"star_rating": {
"type": "integer"
},
"address": {
"type": [
"string",
"null"
]
},
"check_in": {
"type": "string",
"description": "Earliest check-in time, HH:MM"
},
"check_out": {
"type": "string",
"description": "Latest check-out time, HH:MM"
},
"rooms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"rates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Rate id to pass to purchase_hotel"
},
"board_type": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"refundability": {
"type": "string",
"enum": [
"fully_refundable",
"partially_refundable",
"non_refundable"
]
},
"cancellation_deadline": {
"type": [
"string",
"null"
],
"description": "Free cancellation until this time for fully_refundable rates, partial refund until it for partially_refundable; null for non_refundable"
}
},
"required": [
"id",
"board_type",
"price",
"currency",
"refundability",
"cancellation_deadline"
]
}
}
},
"required": [
"name",
"rates"
]
}
},
"prices_changed": {
"type": [
"boolean",
"null"
],
"description": "true when these rates come from a different provider than the search_hotels quote; null when the search recorded no winner"
}
},
"required": [
"name",
"star_rating",
"address",
"check_in",
"check_out",
"rooms",
"prices_changed"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ask_about_hotel(id, question, context)
Answer a yes-or-no question about a hotel from what its guests said, such as "is it quiet at night?" or "is the breakfast good?". Ask one thing per call, and turn an open question into a yes-or-no one ("what is the breakfast like?" becomes "is the breakfast good?"). Pass the hotel id from search_hotels results. Returns how many guest review summaries say yes, no or mixed, with a few of them. Report it as what guests found, with the counts. When enough_evidence is false, say few guests mentioned it rather than drawing a conclusion. It knows only what guests reported, not the hotel's facilities or policies.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The hotel id from search_hotels results"
},
"question": {
"type": "string",
"maxLength": 200,
"pattern": "\\S",
"description": "One yes-or-no question about the hotel, such as \"is it quiet at night?\""
},
"context": {
"type": "string",
"maxLength": 200,
"description": "Why are you calling this tool? Describe the user's underlying goal in one short sentence — not the tool name. Never include names, emails, phones, or prices. Always pass this. Used for analytics only; never shown to the user."
}
},
"required": [
"id",
"question"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"question": {
"type": "string"
},
"summaries_read": {
"type": "integer",
"description": "Guest review summaries read to answer"
},
"yes": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"sentiments": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5
}
},
"required": [
"count",
"sentiments"
]
},
"no": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"sentiments": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5
}
},
"required": [
"count",
"sentiments"
]
},
"mixed": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"sentiments": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5
}
},
"required": [
"count",
"sentiments"
]
},
"enough_evidence": {
"type": "boolean",
"description": "false when too few guests mentioned it to draw a conclusion"
}
},
"required": [
"name",
"question",
"summaries_read",
"yes",
"no",
"mixed",
"enough_evidence"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴purchase_hotel(rate_id, first_name, last_name, email, phone, ...)
Book a hotel room by providing guest details and a rate ID from get_hotel_details. Creates a guest profile, adds the room to a cart, and initiates checkout. Returns a payment_url and an x402 payment challenge by default (USDC on Base). Set payment_service to 'coingate' to return a browser-based crypto payment URL instead. The booking is confirmed once payment settles; poll get_order_details to check status.
Eingabe-Schema
{
"type": "object",
"properties": {
"rate_id": {
"type": "string",
"description": "Signed rate ID from get_hotel_details response"
},
"first_name": {
"type": "string",
"description": "Guest's first name"
},
"last_name": {
"type": "string",
"description": "Guest's last name"
},
"email": {
"type": "string",
"description": "Guest's email address"
},
"phone": {
"type": "string",
"description": "Guest's phone number (e.g., +44123456789)"
},
"nationality": {
"type": "string",
"description": "Guest's nationality as ISO 3166-1 alpha-2 code (default: GB)"
},
"title": {
"type": "string",
"description": "Guest's title: MR, MRS, MS, or MISS (default: MR)",
"enum": [
"MR",
"MRS",
"MS",
"MISS"
]
},
"price_currency": {
"type": "string",
"description": "Payment currency (default: USD for x402, EUR for coingate). Supported: EUR, USD, GBP, PLN, CZK, HUF, SEK, NOK, DKK"
},
"payment_service": {
"type": "string",
"description": "Payment method: x402 (USDC on Base, default) or coingate (browser-based crypto)",
"enum": [
"x402",
"coingate"
]
},
"context": {
"type": "string",
"maxLength": 200,
"description": "Why are you calling this tool? Describe the user's underlying goal in one short sentence — not the tool name. Never include names, emails, phones, or prices. Always pass this. Used for analytics only; never shown to the user."
}
},
"required": [
"rate_id",
"first_name",
"last_name",
"email",
"phone"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"cart_id": {
"type": "string",
"description": "Pass to get_order_details to poll the booking"
},
"booking_reference": {
"type": [
"string",
"null"
]
},
"payment_url": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string",
"description": "How to complete payment for the chosen payment_service"
}
},
"required": [
"cart_id",
"booking_reference",
"payment_url",
"message"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_order_details(cart_id, context)
Get the current state of an order. Returns payment status, booking state, and item details. Poll until ready is true to confirm the booking is complete.
Eingabe-Schema
{
"type": "object",
"properties": {
"cart_id": {
"type": "string",
"description": "The cart_id from purchase_hotel response"
},
"context": {
"type": "string",
"maxLength": 200,
"description": "Why are you calling this tool? Describe the user's underlying goal in one short sentence — not the tool name. Never include names, emails, phones, or prices. Always pass this. Used for analytics only; never shown to the user."
}
},
"required": [
"cart_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"ready": {
"type": "boolean",
"description": "true once payment settled and the booking is purchased — stop polling"
},
"cart_url": {
"type": "string"
},
"payment": {
"type": [
"object",
"null"
],
"properties": {
"state": {
"type": "string"
},
"service": {
"type": "string"
},
"amount": {
"type": "number"
},
"currency": {
"type": "string"
},
"transaction_hash": {
"type": "string"
}
},
"required": [
"state",
"service",
"amount"
]
},
"booking": {
"type": [
"object",
"null"
],
"properties": {
"state": {
"type": "string"
},
"booking_reference": {
"type": [
"string",
"null"
]
},
"contact": {
"type": [
"object",
"null"
],
"properties": {
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"email": {
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"email"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"state": {
"type": "string"
},
"hotel_name": {
"type": "string"
},
"room_name": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"provider_reference": {
"type": "string"
}
},
"required": [
"state",
"price"
]
}
}
},
"required": [
"state",
"booking_reference",
"contact",
"items"
]
}
},
"required": [
"ready",
"cart_url",
"payment",
"booking"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis