Antalya Transfers

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

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
100%
이름 품질
100%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,239토큰 (도구 정의)
~4.8 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.75%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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개