ATA Travel

ATA Travel: agent-first direct booking for accommodations, hotels, and vacation rentals.

我該用這個嗎

品質與安全性

A
說明品質
97%
結構描述完整度
82%
命名品質
97%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(3)

  • LOWTool 'ping' description lacks action verb在 ping 中
  • LOWTool 'search_flexible_network_availability' name length outside 3-30 range在 search_flexible_network_availability 中
  • LOWTool 'get_traveler_verification_status' name length outside 3-30 range在 get_traveler_verification_status 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~8,983Token(工具定義)
~2.8 KB典型回應大小
顯著的注意力影響(128k 上下文的 7.02%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "travel-agency": {
      "url": "https://atatravel.cloud/mcp"
    }
  }
}

遠端端點

https://atatravel.cloud/mcpstreamable-http

它能做什麼

工具清單

工具(25)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢ping

A simple ping tool

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_network_discovery_context

Return a compact, live summary of destinations, stay types, capacity, amenities, views, and published suitability guidance currently available on the ATA network. Use this before offering discovery shortcuts or asking a vague traveler to choose from options.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_flexible_network_availability(location, earliestCheckIn, latestCheckIn, nights, adults, ...)

Find real, priced ATA stays when the traveler is flexible. Defaults to a window 28–56 days from today, three nights, and two adults only when those values are missing; always return those defaults as explicit assumptions. Preferences are soft ranking signals, not a closed taxonomy.

輸入結構描述

{
  "type": "object",
  "properties": {
    "location": {
      "description": "Optional city, state, country, neighborhood, or building. Omit when the traveler is open to ATA's current destinations.",
      "type": "string"
    },
    "earliestCheckIn": {
      "description": "Earliest acceptable check-in date. Defaults to 28 days from today.",
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "latestCheckIn": {
      "description": "Latest acceptable check-in date. Defaults to 56 days from today.",
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "nights": {
      "description": "Length of stay. Defaults to 3 nights.",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    },
    "adults": {
      "description": "Adult guests. Defaults to 2.",
      "type": "integer",
      "minimum": 1,
      "maximum": 40
    },
    "children": {
      "description": "Child guests. Defaults to 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 40
    },
    "propertyType": {
      "description": "Optional soft property-type preference; it ranks results and is reported as a difference when unavailable.",
      "type": "string"
    },
    "amenities": {
      "description": "Optional soft amenity preferences for flexible discovery.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "views": {
      "description": "Optional soft view preferences for flexible discovery.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "preferences": {
      "description": "Open-ended soft preferences inferred from the traveler's own words or live network facets.",
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 120
      }
    },
    "maxPrice": {
      "description": "Maximum total stay price.",
      "type": "number",
      "minimum": 0.01
    },
    "maxPriceCurrency": {
      "description": "Currency for maxPrice when filtering mixed native currencies.",
      "type": "string"
    },
    "displayCurrency": {
      "description": "Optional traveler-facing display currency.",
      "type": "string"
    },
    "maxResults": {
      "description": "Maximum priced stays to return. Defaults to 4.",
      "type": "integer",
      "minimum": 1,
      "maximum": 6
    },
    "priceAudience": {
      "type": "string",
      "enum": [
        "PUBLIC",
        "VERIFIED_TRAVELER"
      ]
    },
    "internalAgentKey": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_company_mission

Returns the official ATA company mission and description. Call this when a user asks what ATA is, what we do, our vision, or about the company.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_traveler_memories(travelerId, travelerAssertion)

Returns active structured memories for a verified traveler. Use this when you need durable personalization beyond the context already provided.

輸入結構描述

{
  "type": "object",
  "properties": {
    "travelerId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "Verified traveler ID from the private traveler context."
    },
    "travelerAssertion": {
      "description": "Current signed ATA traveler assertion matching travelerId; required on shared transports.",
      "type": "string"
    }
  },
  "required": [
    "travelerId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡suggest_traveler_memory(travelerId, travelerAssertion, type, key, value, ...)

Save or update one durable traveler memory for personalization. Use only for stable, travel-relevant preferences or constraints explicitly stated by the traveler.

輸入結構描述

{
  "type": "object",
  "properties": {
    "travelerId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "Verified traveler ID from the private traveler context."
    },
    "travelerAssertion": {
      "description": "Current signed ATA traveler assertion matching travelerId; required on shared transports.",
      "type": "string"
    },
    "type": {
      "type": "string",
      "enum": [
        "PREFERENCE",
        "PROFILE_FACT",
        "TRAVEL_STYLE",
        "SERVICE_NOTE"
      ],
      "description": "Memory category."
    },
    "key": {
      "type": "string",
      "enum": [
        "accessibility",
        "budget",
        "children",
        "diet",
        "guest_count",
        "language",
        "occasion",
        "pace",
        "pets",
        "room_features",
        "service_animal",
        "stay_length",
        "travel_party",
        "travel_purpose",
        "view"
      ],
      "description": "Stable normalized memory key. Choose the closest allowed key."
    },
    "value": {
      "description": "Small JSON value, e.g. {\"hasServiceDog\":true} or {\"typicalAdults\":2,\"typicalChildren\":1}."
    },
    "summary": {
      "type": "string",
      "minLength": 8,
      "maxLength": 240,
      "description": "Short practical note, without speculation or sensitive details."
    },
    "confidence": {
      "default": 0.8,
      "description": "Confidence in this memory. Use 1 for explicit user statements, lower for inferred patterns.",
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "source": {
      "default": "USER_STATED",
      "type": "string",
      "enum": [
        "USER_STATED",
        "INFERRED",
        "BOOKING_HISTORY",
        "AGENT_NOTE"
      ]
    },
    "visibility": {
      "default": "AGENT_ONLY",
      "type": "string",
      "enum": [
        "AGENT_ONLY",
        "STAFF_VISIBLE",
        "USER_VISIBLE"
      ]
    }
  },
  "required": [
    "travelerId",
    "type",
    "key",
    "value",
    "summary"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_property_availability(propertyToken, checkIn, checkOut, adults, children, ...)

Search specific dates and occupancy for a known property using its propertyToken.

輸入結構描述

{
  "type": "object",
  "properties": {
    "propertyToken": {
      "type": "string",
      "description": "Exact public propertyToken returned by discovery or property context. Never add a prefix or invent a token."
    },
    "checkIn": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "Check-in date (YYYY-MM-DD)"
    },
    "checkOut": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "Check-out date (YYYY-MM-DD)"
    },
    "adults": {
      "default": 1,
      "type": "number"
    },
    "children": {
      "default": 0,
      "type": "number"
    },
    "displayCurrency": {
      "description": "Optional 3-letter currency for approximate traveler-facing display conversion. Native property currency remains authoritative.",
      "type": "string"
    },
    "priceAudience": {
      "type": "string",
      "enum": [
        "PUBLIC",
        "VERIFIED_TRAVELER"
      ]
    },
    "internalAgentKey": {
      "type": "string"
    }
  },
  "required": [
    "propertyToken",
    "checkIn",
    "checkOut"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_network_availability(location, checkIn, checkOut, adults, children, ...)

Find accommodations across the ATA Travel Network with real-time pricing. Use when dates are known. Supports filtering by amenities, views, property type, and free-text keyword to handle vague requests.

輸入結構描述

{
  "type": "object",
  "properties": {
    "location": {
      "description": "Optional city, state, or country. Omit when the traveler knows dates but is open to ATA's current destinations.",
      "type": "string"
    },
    "checkIn": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "Check-in date (YYYY-MM-DD)"
    },
    "checkOut": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "Check-out date (YYYY-MM-DD)"
    },
    "adults": {
      "default": 1,
      "description": "Number of adults",
      "type": "number"
    },
    "children": {
      "default": 0,
      "description": "Number of children",
      "type": "number"
    },
    "maxPrice": {
      "description": "Maximum total price filter",
      "type": "number"
    },
    "maxPriceCurrency": {
      "description": "Currency for maxPrice when filtering across mixed property currencies. If omitted, maxPrice is compared to each property's native currency.",
      "type": "string"
    },
    "displayCurrency": {
      "description": "Optional 3-letter currency for approximate traveler-facing display conversion. Native property currency remains authoritative.",
      "type": "string"
    },
    "amenities": {
      "description": "Filter by amenities on property or rooms. e.g. ['Pool', 'Gym', 'Pet Friendly', 'Spa']",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "views": {
      "description": "Filter by room views. e.g. ['Ocean', 'Mountain', 'Garden', 'City']",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "propertyType": {
      "description": "e.g. 'Hotel', 'Apartment', 'Villa'",
      "type": "string"
    },
    "keyword": {
      "description": "Free-text keyword matched against property name/description. Great for vibe searches like 'boutique', 'beachside', 'romantic'.",
      "type": "string"
    },
    "preferences": {
      "description": "Open-ended soft ranking signals. These do not exclude otherwise valid stays.",
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 120
      }
    },
    "priceAudience": {
      "type": "string",
      "enum": [
        "PUBLIC",
        "VERIFIED_TRAVELER"
      ]
    },
    "internalAgentKey": {
      "type": "string"
    }
  },
  "required": [
    "checkIn",
    "checkOut"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_buildings(query, city, neighborhood, tags, amenities, ...)

Find published ATA building/complex profiles by destination, neighborhood, tag, amenity, or free-text. Use this for questions about buildings, condo towers, complexes, gated communities, marina developments, or neighborhoods.

輸入結構描述

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Building name, neighborhood, city, or text query.",
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "neighborhood": {
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "maxResults": {
      "default": 10,
      "type": "number"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_building_details(slug)

Get a published ATA building/complex profile with assigned stays and map coordinates. Use slug from search_buildings or property search results.

輸入結構描述

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_stays_in_building(slug, checkIn, checkOut, adults, children, ...)

Return ATA stays assigned to a published building, optionally filtered by live dates and guest counts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "checkIn": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "checkOut": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "adults": {
      "default": 1,
      "type": "number"
    },
    "children": {
      "default": 0,
      "type": "number"
    },
    "displayCurrency": {
      "description": "Optional 3-letter currency for approximate traveler-facing display conversion. Native property currency remains authoritative.",
      "type": "string"
    },
    "priceAudience": {
      "type": "string",
      "enum": [
        "PUBLIC",
        "VERIFIED_TRAVELER"
      ]
    },
    "internalAgentKey": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_property_catalog(location, propertyType, amenities, views, keyword, ...)

Browse the ATA property catalog WITHOUT needing dates. Fast, lightweight — no availability or pricing check. Use this for vague exploration, browsing by type/amenity/view, or when the traveler has no dates yet.

輸入結構描述

{
  "type": "object",
  "properties": {
    "location": {
      "description": "City, State, or Country to filter by. Omit for a global search.",
      "type": "string"
    },
    "propertyType": {
      "description": "e.g. 'Hotel', 'Villa', 'Apartment'",
      "type": "string"
    },
    "amenities": {
      "description": "e.g. ['Pool', 'Spa', 'Pet Friendly', 'Gym']",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "views": {
      "description": "e.g. ['Ocean', 'Mountain', 'Garden']",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "keyword": {
      "description": "Free-text matched against name/description. e.g. 'boutique', 'beachside', 'romantic'",
      "type": "string"
    },
    "preferences": {
      "description": "Open-ended soft ranking signals inferred from traveler language or current network facets.",
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 120
      }
    },
    "adults": {
      "description": "Optional adults for occupancy-safe catalog suggestions.",
      "type": "integer",
      "minimum": 1,
      "maximum": 40
    },
    "children": {
      "description": "Optional children for occupancy-safe catalog suggestions.",
      "type": "integer",
      "minimum": 0,
      "maximum": 40
    },
    "maxResults": {
      "default": 10,
      "description": "Max number of properties to return (default 10)",
      "type": "number"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_property_details(propertyToken, roomQuery)

Get date-free property and room details, including traveler-facing amenities, property-authored direct-booking benefits, policies, Events & Weddings, room profiles, images, and links. When the traveler names a room or unit, pass that wording as roomQuery before treating it as another property.

輸入結構描述

{
  "type": "object",
  "properties": {
    "propertyToken": {
      "type": "string"
    },
    "roomQuery": {
      "description": "Optional traveler-provided room or unit name, such as '5B Casita Vista'. No stay dates are required.",
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    }
  },
  "required": [
    "propertyToken"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_support_contacts(propertyToken)

Get published ATA support and optional property guest contact details. Use for human help, unanswered property questions, or booking support. Returns configured contact links only; does not send messages, create a case, or transfer the traveler to a person. Omit propertyToken for ATA support alone.

輸入結構描述

{
  "type": "object",
  "properties": {
    "propertyToken": {
      "description": "Property public token, when the traveler needs help from that property.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_property_extras(propertyToken, category, standaloneOnly)

List date-free published events, services, activities, day passes, experiences, dining, wellness, packages, transfers, and other extras for a known property. Returns read-only offer details and ATA purchase links when the property is published on ATA; it does not create an order.

輸入結構描述

{
  "type": "object",
  "properties": {
    "propertyToken": {
      "type": "string"
    },
    "category": {
      "description": "Optional exact offer category filter, such as DAY_PASS, EXPERIENCE, WELLNESS, TRANSPORT, or PACKAGE.",
      "type": "string"
    },
    "standaloneOnly": {
      "default": false,
      "description": "When true, exclude offers that require a stay.",
      "type": "boolean"
    }
  },
  "required": [
    "propertyToken"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡start_traveler_verification(guestName, guestEmail, emailConfirmedByTraveler, guestPhone, propertyToken, ...)

Start general traveler verification for this MCP session after the traveler confirms their email address. Uses the property’s configured verification method. This does not create a quote, enquiry, hold, or booking.

輸入結構描述

{
  "type": "object",
  "properties": {
    "guestName": {
      "type": "string",
      "minLength": 1
    },
    "guestEmail": {
      "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,}$"
    },
    "emailConfirmedByTraveler": {
      "type": "boolean",
      "description": "True only after the traveler confirms the exact email address."
    },
    "guestPhone": {
      "type": "string"
    },
    "propertyToken": {
      "type": "string"
    },
    "method": {
      "type": "string",
      "enum": [
        "EMAIL_CODE",
        "EMAIL_LINK",
        "SMS_CODE",
        "WHATSAPP_CODE"
      ]
    },
    "agentProvider": {
      "type": "string"
    },
    "agentName": {
      "type": "string"
    }
  },
  "required": [
    "guestName",
    "guestEmail",
    "emailConfirmedByTraveler"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪verify_traveler_code(challengeRef, code)

Consume the six-digit code for a challenge started in this MCP session. On success, ATA privately binds the verified traveler to this MCP session; no reusable bearer credential is returned.

輸入結構描述

{
  "type": "object",
  "properties": {
    "challengeRef": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "code": {
      "type": "string",
      "pattern": "^\\d{6}$"
    }
  },
  "required": [
    "challengeRef",
    "code"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_traveler_verification_status(challengeRef)

Check whether a code or email-link challenge started in this MCP session has completed. A completed link binds the traveler privately to this MCP session.

輸入結構描述

{
  "type": "object",
  "properties": {
    "challengeRef": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "challengeRef"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡start_traveler_handoff(action, confirmationCode, guestName, guestEmail, emailConfirmedByTraveler, ...)

Internal approval step for quote or booking tools. Before calling, read guestEmail back to the traveler and confirm it is correct; then set emailConfirmedByTraveler=true. If an email is sent, tell the traveler only to check their inbox and click the secure ATA link. Do not mention handoffs/tool details to the traveler.

輸入結構描述

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "QUOTE",
        "BOOKING_HOLD",
        "BOOKING_READ"
      ],
      "description": "Use BOOKING_HOLD before creating a reservation; BOOKING_READ grants only read access to an existing booking for questions."
    },
    "confirmationCode": {
      "description": "Required for BOOKING_READ: the ATA confirmation code printed on the booking confirmation.",
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "guestName": {
      "type": "string",
      "description": "Traveler name collected by the agent."
    },
    "guestEmail": {
      "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,}$",
      "description": "Traveler email. ATA sends the verification/approval link here."
    },
    "emailConfirmedByTraveler": {
      "description": "Set true only after reading guestEmail back to the traveler and they confirm it is correct.",
      "type": "boolean"
    },
    "guestPhone": {
      "type": "string"
    },
    "propertyToken": {
      "type": "string"
    },
    "roomId": {
      "type": "string"
    },
    "ratePlanId": {
      "type": "string"
    },
    "selectedRoomCount": {
      "type": "number"
    },
    "checkIn": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "checkOut": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "adults": {
      "type": "number"
    },
    "children": {
      "default": 0,
      "type": "number"
    },
    "quoteId": {
      "type": "string"
    },
    "quoteHash": {
      "type": "string"
    },
    "agentProvider": {
      "description": "Agent platform or provider name when known.",
      "type": "string"
    },
    "agentName": {
      "description": "Agent/application display name when known.",
      "type": "string"
    },
    "mcpSessionId": {
      "description": "Optional client-side MCP/session correlation ID.",
      "type": "string"
    },
    "intentSummary": {
      "description": "Short traveler-facing summary of what ATA is verifying, without mentioning internal handoff/tool details.",
      "type": "string"
    }
  },
  "required": [
    "action",
    "guestName",
    "guestEmail"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_traveler_handoff_status(handoffId)

Internal status check after sending an ATA verification link. Use to know whether the traveler clicked the link. Do not mention this tool, polling, or handoff status to the traveler.

輸入結構描述

{
  "type": "object",
  "properties": {
    "handoffId": {
      "type": "string",
      "description": "ID returned by start_traveler_handoff."
    }
  },
  "required": [
    "handoffId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_quote_details(quoteId, quoteHash, quoteUrl, propertyToken, travelerAssertion, ...)

Read a previously created quote using its actual quoteId, quoteHash or quoteUrl. Requires a current signed traveler assertion, verified legacy session, or the still-valid USED QUOTE handoff that created this exact quote. A quote is not a booking or inventory hold. Returns stored prices and payment terms; never substitute another room's payment schedule.

輸入結構描述

{
  "type": "object",
  "properties": {
    "quoteId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "quoteHash": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "quoteUrl": {
      "description": "Existing ATA /stays/quote/ link supplied by the traveler or returned by create_quote.",
      "type": "string",
      "maxLength": 2048,
      "format": "uri"
    },
    "propertyToken": {
      "type": "string"
    },
    "travelerAssertion": {
      "description": "Current signed ATA traveler assertion for the quote owner.",
      "type": "string"
    },
    "agentHandoffId": {
      "description": "Still-valid USED QUOTE handoff that created this quote. Read-only access grants no additional writes; expired handoffs require fresh traveler verification.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_booking_details(confirmationCode, propertyToken, travelerAssertion, agentHandoffId)

Read an existing booking by its ATA confirmation code returned by a successful booking or supplied by the traveler. Never invent a code. Requires a current signed ATA traveler assertion, a verified legacy MCP session, or an approved BOOKING_READ handoff with matching booking email and code. For stateless third-party clients, use start_traveler_handoff with action BOOKING_READ and confirmationCode, then poll get_traveler_handoff_status. Returns booked stay, prices, payments and cancellation terms. Cannot modify, cancel, pay, or create inventory holds. Never use a confirmation code as holdId in get_reservation_status.

輸入結構描述

{
  "type": "object",
  "properties": {
    "confirmationCode": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "ATA confirmation code from the booking email."
    },
    "propertyToken": {
      "description": "Known property public token; required to match a property-scoped connection.",
      "type": "string"
    },
    "travelerAssertion": {
      "description": "Current signed ATA traveler verification assertion; never a typed email or model claim.",
      "type": "string"
    },
    "agentHandoffId": {
      "description": "Approved BOOKING_READ handoff for this confirmation code. No write scope is accepted.",
      "type": "string"
    }
  },
  "required": [
    "confirmationCode"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_reservation_status(holdId, propertyToken, guestEmail, travelerAssertion, agentHandoffId, ...)

Return the current status and exact stay, price, payment schedule, and cancellation terms for a reservation previously created through ATA. Requires the hold ID plus the same verified traveler context/assertion or the secure booking handoff that created it. This tool is read-only and cannot change, pay, cancel, check in, or check out a reservation.

輸入結構描述

{
  "type": "object",
  "properties": {
    "holdId": {
      "type": "string",
      "minLength": 1,
      "description": "Hold ID returned by create_provisional_booking."
    },
    "propertyToken": {
      "description": "Known public property token for this reservation; must match the hold property when supplied.",
      "type": "string"
    },
    "guestEmail": {
      "description": "Traveler email. Required when using travelerAssertion; populated automatically for a verified MCP session.",
      "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,}$"
    },
    "travelerAssertion": {
      "description": "Current signed ATA traveler verification assertion for the reservation guest.",
      "type": "string"
    },
    "agentHandoffId": {
      "description": "Secure BOOKING_HOLD handoff ID that created this reservation.",
      "type": "string"
    },
    "displayCurrency": {
      "description": "Optional 3-letter currency for approximate display conversion. Native property currency remains authoritative.",
      "type": "string"
    }
  },
  "required": [
    "holdId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_provisional_booking(propertyToken, roomId, ratePlanId, selectedRoomCount, checkIn, ...)

Secure a reservation or create a host-approval enquiry on behalf of a traveler. policyAcknowledged is required as an explicit boolean and must be true for financially binding flows after the exact total, payment schedule, and cancellation terms are shown; identity verification is not consent. A host-approval enquiry may pass false because payment is not due unless accepted. Also requires the traveler’s full name, email, and country (guestCountry, required for bookings; optional for quotes) plus travelerAssertion or approved internal BOOKING_HOLD agentHandoffId. If verification is needed, keep internal tool details private; tell the traveler to confirm their email and follow the code or link instructions returned by verification. If instant book is enabled and payment is ready, creates an inventory-holding provisional booking and returns payment/manual-payment next steps. If instant book is disabled or Stripe checkout is not ready, creates an enquiry hold for host approval/payment follow-up.

輸入結構描述

{
  "type": "object",
  "properties": {
    "propertyToken": {
      "type": "string"
    },
    "roomId": {
      "type": "string"
    },
    "ratePlanId": {
      "description": "Rate plan ID. If omitted, the system auto-selects the default active rate plan per night, then the cheapest active auto-selectable fallback.",
      "type": "string"
    },
    "selectedRoomCount": {
      "description": "For direct-booking room-count configurations, the number of rooms the traveler selected. Use defaultSelectedRoomCount from availability results.",
      "type": "number"
    },
    "checkIn": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "checkOut": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "guestName": {
      "type": "string",
      "minLength": 1,
      "description": "Traveler’s full name, as supplied by the traveler."
    },
    "guestEmail": {
      "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,}$"
    },
    "guestPhone": {
      "type": "string"
    },
    "guestCountry": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "Required traveler country, as supplied by the traveler. Ask only if missing. Do not infer it from the property location, language, currency, or phone number. Quotes do not require country."
    },
    "notes": {
      "description": "Optional traveler comments, questions, or requests for the host. Especially useful for host-approval enquiries.",
      "type": "string"
    },
    "adults": {
      "type": "number"
    },
    "children": {
      "default": 0,
      "type": "number"
    },
    "policyAcknowledged": {
      "type": "boolean",
      "description": "Explicit policy-consent state. Set true only after the traveler agrees to the exact price, payment schedule, and cancellation terms. Required before creating either an instant-book hold or a host-approval enquiry."
    },
    "displayCurrency": {
      "description": "Optional 3-letter currency for approximate traveler-facing display conversion. Native property currency remains authoritative.",
      "type": "string"
    },
    "travelerAssertion": {
      "description": "Signed traveler email verification assertion from ATA.",
      "type": "string"
    },
    "agentHandoffId": {
      "description": "Approved ATA traveler handoff ID from start_traveler_handoff/get_traveler_handoff_status. Required for third-party agents before inventory-holding booking actions.",
      "type": "string"
    },
    "priceAudience": {
      "type": "string",
      "enum": [
        "PUBLIC",
        "VERIFIED_TRAVELER"
      ]
    },
    "internalAgentKey": {
      "type": "string"
    }
  },
  "required": [
    "propertyToken",
    "roomId",
    "checkIn",
    "checkOut",
    "guestName",
    "guestEmail",
    "guestCountry",
    "adults",
    "policyAcknowledged"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_quote(propertyToken, roomId, ratePlanId, selectedRoomCount, checkIn, ...)

Generate a non-binding reference quote for a traveler. Requires guest name/email plus a current travelerAssertion or fresh approved internal QUOTE agentHandoffId. If verification is needed, keep internal tool details private; tell the traveler to confirm their email and follow the code or link instructions returned by verification. Quotes do not hold inventory or guarantee future availability.

輸入結構描述

{
  "type": "object",
  "properties": {
    "propertyToken": {
      "type": "string"
    },
    "roomId": {
      "type": "string"
    },
    "ratePlanId": {
      "description": "Rate plan ID. Optional.",
      "type": "string"
    },
    "selectedRoomCount": {
      "description": "For direct-booking room-count configurations, the number of rooms the traveler selected. Use defaultSelectedRoomCount from availability results.",
      "type": "number"
    },
    "checkIn": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "checkOut": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "guestName": {
      "type": "string"
    },
    "guestEmail": {
      "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,}$"
    },
    "guestPhone": {
      "type": "string"
    },
    "guestCountry": {
      "description": "Optional for a quote. If omitted, the traveler supplies it when completing the booking.",
      "type": "string",
      "maxLength": 80
    },
    "adults": {
      "type": "number"
    },
    "children": {
      "default": 0,
      "type": "number"
    },
    "displayCurrency": {
      "description": "Optional 3-letter currency for approximate traveler-facing display conversion. Native property currency remains authoritative.",
      "type": "string"
    },
    "travelerAssertion": {
      "description": "Signed traveler email verification assertion from ATA.",
      "type": "string"
    },
    "agentHandoffId": {
      "description": "Fresh approved ATA traveler handoff ID from start_traveler_handoff/get_traveler_handoff_status. Required for third-party quote creation without a current traveler assertion.",
      "type": "string"
    },
    "priceAudience": {
      "type": "string",
      "enum": [
        "PUBLIC",
        "VERIFIED_TRAVELER"
      ]
    },
    "internalAgentKey": {
      "type": "string"
    }
  },
  "required": [
    "propertyToken",
    "roomId",
    "checkIn",
    "checkOut",
    "guestName",
    "guestEmail",
    "adults"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

建議的提示詞

list_items
List all [items] available in ATA Travel
預期的工具: list_property_extras
retrieve_data
Get details about [item] from ATA Travel
預期的工具: get_network_discovery_context
search_research
Search for information about [topic] using ATA Travel
預期的工具: search_flexible_network_availability
find_specific
Find [specific item] using ATA Travel
預期的工具: search_flexible_network_availability
fetch_info
Fetch [information type] using ATA Travel
預期的工具: get_network_discovery_context

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本25 個工具
已驗證未記錄版本24 個工具