Antalya Transfers

Quote and request private airport transfers in Antalya, Turkey. Operator confirms each request.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
100%
命名质量
100%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,239token 数(工具定义)
~4.8 KB典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.75%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 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"
  ]
}

社区

评价此服务器

证据

最近观测

已验证未记录版本4 个工具