1stay
Hotel booking MCP server. Search, book, and manage reservations across 250K+ properties worldwide.
我該用這個嗎
品質與安全性
發現項目(2)
- HIGH
- MEDIUM在 resend_confirmation 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"1stay": {
"url": "https://mcp.stayker.com/mcp"
}
}
}遠端端點
https://mcp.stayker.com/mcpstreamable-http它能做什麼
工具清單
工具(8)
🟢search_hotels(location, latitude, longitude, check_in, check_out, ...)
Search hotels by location and dates for exactly one room. Returns available properties with nightly rates across major brands, boutique, and independent hotels. The first 1Stay release supports one room per search and reservation. Guest pays the hotel directly. Hotel's own confirmation number. Loyalty points apply.
輸入結構描述
{
"type": "object",
"properties": {
"location": {
"description": "City, address, venue, or landmark (e.g. 'Nashville, TN' or 'Times Square, NYC'). Required unless latitude and longitude are both provided.",
"type": "string"
},
"latitude": {
"description": "Latitude — must be provided together with longitude",
"type": "number"
},
"longitude": {
"description": "Longitude — must be provided together with latitude",
"type": "number"
},
"check_in": {
"type": "string",
"description": "Check-in date in YYYY-MM-DD format (e.g. 2026-05-06). Must be today through 340 days from today."
},
"check_out": {
"type": "string",
"description": "Check-out date in YYYY-MM-DD format (e.g. 2026-05-07). Must be after check_in."
},
"guests_per_room": {
"description": "Guests per room, 1-10 (default 2)",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"rooms": {
"description": "Number of rooms. 1Stay currently supports exactly one room per search and reservation; omit this field or set it to 1.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"radius": {
"description": "Search radius in miles, 1-100 (default 25). Applies only when the search resolves to coordinates - explicit latitude/longitude, or a venue, landmark or address that is geocoded. It is ignored for city searches, which resolve to a city code; the response reports which happened in resolution_type.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"currency": {
"description": "Currency code (default USD)",
"type": "string"
},
"max_results": {
"description": "Max hotels to return, max 6 (default 6). Results are a representative selection across different hotel brands, not a ranking. Use the returned cursor to load more pages.",
"type": "integer",
"minimum": 1,
"maximum": 6
},
"search_id": {
"description": "Search ID paired with a pagination cursor from previous results",
"type": "string"
},
"cursor": {
"description": "Pagination cursor from previous search response",
"type": "string"
}
},
"required": [
"check_in",
"check_out"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hotel_id": {
"type": "string"
},
"name": {
"type": "string"
},
"chain": {
"type": "string"
},
"star_rating": {
"type": "number"
},
"review": {},
"photo": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"address": {
"type": "object",
"properties": {
"line1": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"postal_code": {
"type": "string"
},
"country": {
"type": "string"
}
},
"additionalProperties": {}
},
"total_stay": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"avg_nightly_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"booking_fee": {
"type": "number"
},
"booking_fee_currency": {
"type": "string"
},
"nights": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"currency": {
"type": "string"
},
"amenities": {
"type": "array",
"items": {}
},
"reward_points_eligible": {
"type": "boolean"
},
"booking_type": {
"type": "string"
}
},
"required": [
"hotel_id",
"name",
"photo",
"total_stay",
"avg_nightly_rate",
"nights",
"currency",
"amenities",
"reward_points_eligible",
"booking_type"
],
"additionalProperties": false
}
},
"total_results": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"check_in": {
"type": "string"
},
"check_out": {
"type": "string"
},
"search_id": {
"type": "string"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"has_more": {
"type": "boolean"
},
"rooms": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"guests_per_room": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"requested_currency": {
"type": "string"
},
"returned_currencies": {
"type": "array",
"items": {
"type": "string"
}
},
"conversion_applied": {
"type": "boolean"
},
"resolved_location": {
"type": "string"
},
"resolution_type": {
"type": "string"
}
},
"required": [
"results",
"total_results",
"check_in",
"check_out",
"cursor",
"has_more"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_hotel_details(hotel_id, check_in, check_out, guests, rooms, ...)
Get rates and room details for exactly one room at a specific hotel. Returns room types, live rates, amenities, cancellation policies, and rate_codes required by book_hotel. Guest pays the hotel directly. Displayed totals include taxes and any applicable, itemized 1Stay Booking Fee. Loyalty points eligible. Room type notes: "Run of house" means the hotel assigns the room at check-in. "Suite" at select-service brands usually means a larger room with a sofa, not a separate bedroom.
輸入結構描述
{
"type": "object",
"properties": {
"hotel_id": {
"type": "string",
"description": "Hotel ID from search results"
},
"check_in": {
"type": "string",
"description": "Check-in date in YYYY-MM-DD format (e.g. 2026-05-06)"
},
"check_out": {
"type": "string",
"description": "Check-out date in YYYY-MM-DD format (e.g. 2026-05-07)"
},
"guests": {
"description": "Number of guests, 1-10 (default 2)",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"rooms": {
"description": "Number of rooms. 1Stay currently supports exactly one room per search and reservation; omit this field or set it to 1.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"accessible": {
"description": "When true, returns accessible (ADA) room types instead of standard ones. Default false because hotels list many near-identical accessible variants. The response always reports accessible_rooms_available.",
"type": "boolean"
}
},
"required": [
"hotel_id",
"check_in",
"check_out"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"availability_status": {
"type": "string",
"enum": [
"available",
"unavailable"
]
},
"message": {
"type": "string"
},
"next_step": {
"type": "string"
},
"hotel": {
"type": "object",
"properties": {
"hotel_id": {
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"chain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"review": {},
"check_in_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"check_out_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"address": {
"type": "object",
"properties": {
"line1": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"line2": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"postal_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"line1",
"line2",
"city",
"state",
"postal_code",
"country"
],
"additionalProperties": false
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"amenities": {
"type": "array",
"items": {}
},
"photos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"thumbnail": {
"type": "string"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"description"
],
"additionalProperties": false
}
}
},
"required": [
"hotel_id",
"address",
"amenities",
"photos"
],
"additionalProperties": false
},
"stay": {
"type": "object",
"properties": {
"check_in": {
"type": "string"
},
"check_out": {
"type": "string"
},
"guests": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"rooms": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"nights": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"check_in",
"check_out",
"guests",
"rooms",
"nights"
],
"additionalProperties": false
},
"rooms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"room_id": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"room_name_confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"bed_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"max_occupancy": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"rate_plans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rate_code": {
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total_with_taxes": {
"type": "number"
},
"avg_nightly_rate": {
"type": "number"
},
"subtotal": {
"type": "number"
},
"taxes": {
"type": "number"
},
"booking_fee": {
"type": "number"
},
"booking_fee_currency": {
"type": "string"
},
"currency": {
"type": "string"
},
"nightly_breakdown": {
"type": "array",
"items": {}
},
"meal_plan": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"booking_terms": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"refundable": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"cancellation_policy": {
"type": "string"
},
"cancel_by_datetime": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"guarantee_policy": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"reward_points_eligible": {
"type": "boolean"
},
"booking_type": {
"type": "string"
}
},
"required": [
"rate_code",
"total_with_taxes",
"avg_nightly_rate",
"subtotal",
"taxes",
"currency",
"nightly_breakdown",
"cancellation_policy",
"cancel_by_datetime",
"guarantee_policy",
"reward_points_eligible",
"booking_type"
],
"additionalProperties": false
}
}
},
"required": [
"room_id",
"name",
"rate_plans"
],
"additionalProperties": false
}
},
"accessible_rooms_available": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"accessible_rooms_note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"rate_quote_expires_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"rate_quote_ttl_seconds": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"hotel",
"rooms",
"accessible_rooms_available"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢book_hotel(hotel_id, rate_code, check_in, check_out, guests, ...)
Book exactly one hotel room. The first 1Stay release does not support multi-room searches or reservations. Returns a secure checkout URL. This tool accepts no guest identity or payment fields. Name, email, phone, and payment details are collected on the secure checkout page. Guest pays the hotel directly. Their credit card statement shows the hotel name, not 1Stay. Hotel's own confirmation number. Loyalty points apply automatically. The displayed total includes taxes and any applicable, itemized 1Stay Booking Fee. Requires a rate_code from get_hotel_details, valid approximately 15 minutes. Expired codes are rejected.
輸入結構描述
{
"type": "object",
"properties": {
"hotel_id": {
"type": "string",
"description": "Hotel ID from search or details"
},
"rate_code": {
"type": "string",
"description": "Valid, unexpired rate code for the selected hotel, dates, and room"
},
"check_in": {
"type": "string",
"description": "Check-in date in YYYY-MM-DD format (e.g. 2026-05-06)"
},
"check_out": {
"type": "string",
"description": "Check-out date in YYYY-MM-DD format (e.g. 2026-05-07)"
},
"guests": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Number of guests, 1-10"
},
"external_reference_id": {
"description": "Caller-defined unique reference ID for idempotency and retrieval",
"type": "string"
}
},
"required": [
"hotel_id",
"rate_code",
"check_in",
"check_out",
"guests"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ACTION_REQUIRED",
"ALREADY_CONFIRMED"
]
},
"message": {
"type": "string"
},
"idempotency_hit": {
"type": "boolean"
},
"checkout_url": {
"type": "string"
},
"confirmation_number": {
"type": "string"
},
"external_reference_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"expires_in_minutes": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"hotel_name": {
"type": "string"
},
"room_type": {
"type": "string"
},
"rate_plan": {
"type": "string"
},
"avg_nightly_rate": {
"type": "number"
},
"subtotal": {
"type": "number"
},
"taxes": {
"type": "number"
},
"total_with_taxes": {
"type": "number"
},
"booking_fee": {
"type": "number"
},
"booking_fee_currency": {
"type": "string"
},
"currency": {
"type": "string"
},
"check_in": {
"type": "string"
},
"check_out": {
"type": "string"
},
"nights": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"cancellation_policy": {
"type": "string"
},
"reward_points_eligible": {
"type": "boolean"
},
"booking_type": {
"type": "string"
}
},
"required": [
"status",
"message"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢lookup_booking(first_name, last_name, confirmation_number, email, last_four_card, ...)
Look up a reservation by verifying the guest's identity. Returns the confirmation number and booking summary in conversation. Requires the guest's full name plus either the hotel confirmation number, or the booking email together with the last 4 digits of the card used to book. An email address alone is not enough. An optional check-in date can narrow repeat stays.
輸入結構描述
{
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "Guest first name on the reservation"
},
"last_name": {
"type": "string",
"description": "Guest last name on the reservation"
},
"confirmation_number": {
"description": "Hotel confirmation number",
"type": "string"
},
"email": {
"description": "Email address used when booking",
"type": "string"
},
"last_four_card": {
"description": "Last 4 digits of the card used to book",
"type": "string"
},
"check_in_date": {
"description": "Optional check-in date (YYYY-MM-DD) to narrow repeat stays",
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"confirmation_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"confirmation_number_status": {
"type": "string",
"enum": [
"available",
"pending"
]
},
"verification_token": {
"type": "string"
},
"verification_token_expires_at": {
"type": "string"
},
"verification_token_note": {
"type": "string"
},
"hotel": {
"type": "string"
},
"check_in": {
"type": "string"
},
"check_out": {
"type": "string"
},
"guest_name": {
"type": "string"
},
"booking_status": {
"type": "string"
},
"action_handoff": {
"type": "string"
},
"available_actions": {
"type": "object",
"properties": {
"resend_confirmation": {
"type": "object",
"properties": {
"tool": {
"type": "string",
"const": "resend_confirmation"
},
"arguments": {
"type": "object",
"properties": {
"confirmation_number": {
"type": "string"
}
},
"required": [
"confirmation_number"
],
"additionalProperties": false
},
"instruction": {
"type": "string"
}
},
"required": [
"tool",
"arguments",
"instruction"
],
"additionalProperties": false
},
"preview_cancellation": {
"type": "object",
"properties": {
"tool": {
"type": "string",
"const": "cancel_booking"
},
"arguments": {
"type": "object",
"properties": {
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"confirmation_number": {
"type": "string"
}
},
"required": [
"confirmation_number"
],
"additionalProperties": false
},
"instruction": {
"type": "string"
}
},
"required": [
"tool",
"arguments",
"instruction"
],
"additionalProperties": false
}
},
"required": [
"resend_confirmation",
"preview_cancellation"
],
"additionalProperties": false
}
},
"required": [
"status",
"confirmation_number",
"verification_token",
"verification_token_expires_at",
"action_handoff"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴resend_confirmation(confirmation_number, first_name, last_name, email)
Resend a hotel reservation confirmation email. Use either the confirmation number from a successful lookup_booking call, or the guest's full name and email address when they do not know their confirmation number, card last four, or check-in date. The email contains the hotel confirmation number the guest can then use with lookup_booking or cancel_booking. Recovery requests never reveal whether a reservation matched. The confirmation is sent only to the email address already on the booking record; there is no recipient override. Email changes are handled at https://stayker.com/service.
輸入結構描述
{
"type": "object",
"properties": {
"confirmation_number": {
"description": "Hotel confirmation number. Use this after a verified lookup.",
"type": "string"
},
"first_name": {
"description": "Guest first name. Required with last_name and email when the confirmation number is unavailable.",
"type": "string"
},
"last_name": {
"description": "Guest last name. Required with first_name and email when the confirmation number is unavailable.",
"type": "string"
},
"email": {
"description": "Guest email address. Used only to find a match; confirmation is sent only to the email address already on file.",
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"status",
"message"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_booking(confirmation_number, verification_token)
Look up a reservation exclusively by the hotel confirmation number shown in the guest's confirmation email. Internal Stayker booking IDs are never accepted or disclosed by MCP. Returns full booking details including hotel, dates, guest info, rate, and status. Anonymous access requires a verification_token issued by lookup_booking and scoped to a single booking. Without a valid token, no booking data is returned. Developers authenticated with their own API key do not need a token; their access is scoped to their own bookings.
輸入結構描述
{
"type": "object",
"properties": {
"confirmation_number": {
"type": "string",
"description": "Hotel confirmation number shown in the guest's confirmation email"
},
"verification_token": {
"description": "Booking-scoped verification token required for anonymous access. Developer API key-authenticated access does not require it.",
"type": "string"
}
},
"required": [
"confirmation_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"confirmation_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"hotel": {},
"check_in": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"check_out": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"nights": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"room": {},
"guests": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"pricing": {
"type": "object",
"properties": {
"room_total": {
"type": "number"
},
"taxes": {
"type": "number"
},
"hotel_fees": {
"type": "number"
},
"service_fee": {
"type": "number"
},
"hotel_total": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"required": [
"room_total",
"taxes",
"hotel_fees",
"hotel_total",
"currency"
],
"additionalProperties": false
},
"cancellation": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"created_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"reward_points_eligible": {
"type": "boolean"
},
"booking_type": {
"type": "string"
},
"action_handoff": {
"type": "string"
},
"available_actions": {
"type": "object",
"properties": {
"resend_confirmation": {
"type": "object",
"properties": {
"tool": {
"type": "string",
"const": "resend_confirmation"
},
"arguments": {
"type": "object",
"properties": {
"confirmation_number": {
"type": "string"
}
},
"required": [
"confirmation_number"
],
"additionalProperties": false
},
"instruction": {
"type": "string"
}
},
"required": [
"tool",
"arguments",
"instruction"
],
"additionalProperties": false
},
"preview_cancellation": {
"type": "object",
"properties": {
"tool": {
"type": "string",
"const": "cancel_booking"
},
"arguments": {
"type": "object",
"properties": {
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"confirmation_number": {
"type": "string"
}
},
"required": [
"confirmation_number"
],
"additionalProperties": false
},
"instruction": {
"type": "string"
}
},
"required": [
"tool",
"arguments",
"instruction"
],
"additionalProperties": false
}
},
"required": [
"resend_confirmation",
"preview_cancellation"
],
"additionalProperties": false
}
},
"required": [
"reward_points_eligible",
"booking_type",
"action_handoff",
"available_actions"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴cancel_booking(first_name, last_name, confirmation_number)
Prepare a hotel cancellation for completion on a secure 1Stay page. Verifies the guest's first name, last name, and hotel confirmation number, then returns the hotel policy classification and any cancellation deadline recorded with the reservation, plus a short-lived cancellation_url. 1Stay does not estimate a refund, credit, penalty, or hotel charge. Calling this tool never cancels the reservation. The guest must review the terms and select Cancel reservation on the secure page. A later verified booking-status lookup reporting status cancelled is the authoritative confirmation that the reservation was cancelled.
輸入結構描述
{
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "Guest first name on the reservation"
},
"last_name": {
"type": "string",
"description": "Guest last name on the reservation"
},
"confirmation_number": {
"type": "string",
"description": "Hotel confirmation number"
}
},
"required": [
"first_name",
"last_name",
"confirmation_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ACTION_REQUIRED",
"already_cancelled"
]
},
"message": {
"type": "string"
},
"cancellation_url": {
"type": "string",
"format": "uri"
},
"cancellation_url_expires_at": {
"type": "string"
},
"booking": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"cancellation": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"message"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_tools(keyword)
List available 1Stay hotel booking tools. An optional keyword filters by search, book, cancel, or details; absence of a keyword returns all tools.
輸入結構描述
{
"type": "object",
"properties": {
"keyword": {
"description": "Optional tool filter keyword, such as book, search, cancel, or details",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"tools": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"name",
"description"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"tools",
"total"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}社群
證據