Antalya Transfers
Quote and request private airport transfers in Antalya, Turkey. Operator confirms each request.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"transfers": {
"url": "https://api.antalyatransfers.co/api/mcp"
}
}
}远程端点
https://api.antalyatransfers.co/api/mcpstreamable-http它能做什么
工具清单
工具(4)
🟢get_price_quote(pickupAddress, dropoffAddress, vehicleType, scheduledAt, passengers, ...)
Use this when a traveller asks how much a private airport transfer costs between Antalya Airport (AYT) and Antalya-area destinations (Konyaaltı, Antalya city/Kaleiçi, Lara, Belek, Side, Alanya, Kemer, Kaş) or between those resorts. Returns a fixed-price estimate in EUR, whether the party fits the chosen vehicle, and a suggested vehicle if not. Read-only: it does not create a request or reserve anything. Do not use for flights, car rental, tours, or destinations outside the Antalya region. If a route has no fixed price, priced=false and the operator quotes it.
输入模式
{
"type": "object",
"properties": {
"pickupAddress": {
"type": "string",
"maxLength": 200,
"description": "Pickup place: \"Antalya Airport (AYT)\", a resort area or a hotel name, e.g. \"Rixos Premium Belek\"."
},
"dropoffAddress": {
"type": "string",
"maxLength": 200,
"description": "Drop-off place, same format as pickupAddress, e.g. \"Kemer\"."
},
"vehicleType": {
"type": "string",
"enum": [
"sedan",
"minivan",
"vip_sedan",
"minibus",
"bus"
],
"description": "Optional: if omitted the smallest vehicle that fits the party is quoted. Capacity: sedan 3 pax/2 large bags; minivan 8 pax/6 large bags; vip_sedan 3 pax/2 large bags; minibus 16 pax/12 large bags; bus 50 pax/50 large bags."
},
"scheduledAt": {
"type": "string",
"format": "date-time",
"description": "Optional pickup time. ISO 8601 date-time of pickup in Antalya local time, e.g. 2026-11-20T10:00:00+03:00. If no timezone is given, Antalya time (UTC+3) is assumed. If omitted a daytime price is returned; pickups 22:00–06:00 cost +30%."
},
"passengers": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Total passengers including children"
},
"luggage": {
"type": "integer",
"minimum": 0,
"maximum": 50,
"description": "Number of large suitcases (optional)"
},
"childSeats": {
"type": "integer",
"minimum": 0,
"maximum": 10,
"description": "Number of child seats needed (optional)"
}
},
"required": [
"pickupAddress",
"dropoffAddress",
"passengers"
]
}输出模式
{
"type": "object",
"properties": {
"priced": {
"type": "boolean",
"description": "false when this route has no fixed price; the operator will quote it"
},
"estimatedPrice": {
"type": [
"string",
"null"
],
"description": "Formatted EUR price, e.g. \"€80.00\""
},
"priceCents": {
"type": [
"integer",
"null"
]
},
"currency": {
"type": "string"
},
"route": {
"type": [
"string",
"null"
]
},
"nightSurchargeApplied": {
"type": "boolean",
"description": "+30% for pickups 22:00–06:00 Antalya time"
},
"capacity": {
"type": "object",
"properties": {
"fits": {
"type": "boolean"
},
"errors": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"suggestedVehicle": {
"type": [
"string",
"null"
],
"enum": [
"sedan",
"minivan",
"vip_sedan",
"minibus",
"bus",
null
]
}
}
},
"vehicleType": {
"type": "string",
"enum": [
"sedan",
"minivan",
"vip_sedan",
"minibus",
"bus"
]
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Defaults applied for missing optional inputs"
},
"note": {
"type": "string"
}
},
"required": [
"priced",
"currency",
"note"
]
}🟡create_transfer_request(pickupAddress, dropoffAddress, scheduledAt, passengers, luggage, ...)
Use this only after the customer has chosen a route, time and vehicle and has given their name, email and phone, and explicitly asked to send the request. Submits a transfer REQUEST that is stored as pending and reviewed by the operator, who confirms the ride and final price by email/WhatsApp. This does NOT confirm a booking, assign a driver or take payment — never tell the customer the ride is confirmed. Writes data: do not call it to explore prices (use get_price_quote) and do not retry on success. Repeating identical details returns the original request instead of creating a duplicate. At most 5 requests per phone number per day. Capacity is checked: parties larger than the vehicle are rejected with a suggested vehicle.
输入模式
{
"type": "object",
"properties": {
"pickupAddress": {
"type": "string",
"maxLength": 200,
"description": "Pickup place, e.g. \"Antalya Airport (AYT) Terminal 2\""
},
"dropoffAddress": {
"type": "string",
"maxLength": 200,
"description": "Drop-off place or hotel name with its area"
},
"scheduledAt": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 date-time of pickup in Antalya local time, e.g. 2026-11-20T10:00:00+03:00. If no timezone is given, Antalya time (UTC+3) is assumed. For arrivals use flight landing time plus ~30 minutes."
},
"passengers": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Total passengers including children"
},
"luggage": {
"type": "integer",
"minimum": 0,
"maximum": 50,
"description": "Large suitcases"
},
"childSeats": {
"type": "integer",
"minimum": 0,
"maximum": 10,
"description": "Child seats required"
},
"pets": {
"type": "integer",
"minimum": 0,
"maximum": 5,
"description": "Pets travelling (the operator confirms whether they can be carried)"
},
"vehicleType": {
"type": "string",
"enum": [
"sedan",
"minivan",
"vip_sedan",
"minibus",
"bus"
],
"description": "Vehicle class; must fit passengers, luggage and child seats"
},
"flightNumber": {
"type": "string",
"pattern": "^[A-Za-z0-9]{2,10}$",
"description": "Flight number without spaces, e.g. TK2548"
},
"notes": {
"type": "string",
"maxLength": 500,
"description": "Extra instructions for the operator (hotel address, special needs)"
},
"customerName": {
"type": "string",
"minLength": 2,
"maxLength": 100,
"description": "Full name of the lead passenger"
},
"customerEmail": {
"type": "string",
"format": "email",
"maxLength": 254,
"description": "Where the reference and confirmation are sent"
},
"customerPhone": {
"type": "string",
"description": "International format with country code, e.g. +905551234567"
},
"language": {
"type": "string",
"description": "Customer language code, e.g. en, ru, de, tr"
}
},
"required": [
"pickupAddress",
"dropoffAddress",
"scheduledAt",
"passengers",
"vehicleType",
"customerName",
"customerEmail",
"customerPhone"
]
}输出模式
{
"type": "object",
"properties": {
"reference": {
"type": "string",
"description": "Booking reference for get_request_status"
},
"status": {
"type": "string",
"enum": [
"pending"
],
"description": "Always pending: the operator has not confirmed yet"
},
"operatorConfirmed": {
"type": "boolean",
"description": "false: this is a request, not a confirmed ride"
},
"estimatedPrice": {
"type": [
"string",
"null"
]
},
"priceStatus": {
"type": "string",
"enum": [
"indicative",
"operator_quote"
]
},
"message": {
"type": "string"
}
},
"required": [
"status",
"operatorConfirmed",
"message"
]
}🟢get_request_status(reference, customerEmail)
Use this when the customer asks whether their transfer request was confirmed, assigned or cancelled. Requires the booking reference returned by create_transfer_request and the email used for the request. Read-only. pending means the operator has not confirmed yet; only operatorConfirmed=true means the ride is confirmed. Do not use to create or change a request.
输入模式
{
"type": "object",
"properties": {
"reference": {
"type": "string",
"description": "Booking reference, e.g. AT-20260605-0001"
},
"customerEmail": {
"type": "string",
"format": "email",
"maxLength": 254,
"description": "Email address used when the request was submitted"
}
},
"required": [
"reference",
"customerEmail"
]
}输出模式
{
"type": "object",
"properties": {
"reference": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending",
"assigned",
"confirmed",
"in_progress",
"completed",
"cancelled"
]
},
"statusMeaning": {
"type": "string"
},
"operatorConfirmed": {
"type": "boolean"
},
"pickupAddress": {
"type": "string"
},
"dropoffAddress": {
"type": "string"
},
"scheduledAt": {
"type": "string",
"format": "date-time"
},
"estimatedPrice": {
"type": [
"string",
"null"
]
},
"priceStatus": {
"type": "string",
"enum": [
"indicative",
"final",
"operator_quote"
]
}
},
"required": [
"reference",
"status",
"statusMeaning",
"operatorConfirmed"
]
}🔴cancel_transfer_request(reference, customerEmail, reason)
Use this only when the customer has explicitly asked to cancel their transfer request and you have the booking reference returned by create_transfer_request and the email used for it. Cancels a request that is still pending or assigned, tells the operator (WhatsApp/email) and emails the customer a cancellation notice. Calling it again for an already-cancelled request is harmless and returns cancelled=true without notifying anyone again. Destructive and sends real messages: never call it to explore, to "test", or because the customer is merely unsure or wants to change details. Do not use for a request the operator has already confirmed (it is refused: the customer must contact the operator), for changing time/passengers/vehicle (contact the operator), or for refunds. Use get_request_status to check the current state first if unsure.
输入模式
{
"type": "object",
"properties": {
"reference": {
"type": "string",
"description": "Booking reference, e.g. AT-20260605-0001"
},
"customerEmail": {
"type": "string",
"format": "email",
"maxLength": 254,
"description": "Email address used when the request was submitted"
},
"reason": {
"type": "string",
"maxLength": 200,
"description": "Optional short reason given by the customer"
}
},
"required": [
"reference",
"customerEmail"
]
}输出模式
{
"type": "object",
"properties": {
"reference": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"cancelled"
]
},
"cancelled": {
"type": "boolean",
"description": "true: the request is cancelled"
},
"alreadyCancelled": {
"type": "boolean",
"description": "true when it had been cancelled before this call (no new notification sent)"
},
"operatorNotified": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"reference",
"status",
"cancelled",
"message"
]
}社区
证据