MCP 服务器

airport-transfers

rs.rides/airport-transfers
旅行与酒店 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Provides pricing, route information, and provisional booking requests for airport transfers between Novi Sad and Belgrade Airport.

create_booking_request
Start a booking (email confirmation)
Start a provisional airport-transfer booking. This does NOT finalize a booking — it emails the passenger a one-tap confirmation link, and the ride is only booked once they click it. Payment is to the driver (cash or card); no online payment is needed. Call estimate_price first to confirm the vehicle + price with the user, then call this. Always tell the user to check their email to confirm.
可访问外部资源
输入模式
{'type': 'object', 'required': ['routeSlug', 'direction', 'pickupDate', 'pickupTime', 'passengerName', 'passengerEmail', 'passengerPhone', 'passengers'], 'properties': {'locale': {'enum': ['en', 'sr', 'ru'], 'type': 'string', 'description': 'Language for the confirmation email. Default en.'}, 'luggage': {'type': 'integer', 'minimum': 0, 'description': 'Number of large bags (optional).'}, 'vehicle': {'type': 'string', 'description': "Optional vehicle tier name (e.g. 'Group XL'). Defaults to the cheapest vehicle that fits the group."}, 'direction': {'enum': ['to_airport', 'from_airport'], 'type': 'string', 'description': 'to_airport = going to the airport; from_airport = pickup at the airport.'}, 'routeSlug': {'type': 'string', 'description': 'Route slug from list_routes.'}, 'passengers': {'type': 'integer', 'minimum': 1, 'description': 'Number of passengers.'}, 'pickupDate': {'type': 'string', 'description': 'Pickup date, YYYY-MM-DD, Belgrade local time.'}, 'pickupTime': {'type': 'string', 'description': 'Pickup time, HH:MM (24h), Belgrade local time.'}, 'flightNumber': {'type': 'string', 'description': 'Flight number (recommended for airport pickups).'}, 'passengerName': {'type': 'string', 'description': 'Full name of the passenger.'}, 'pickupAddress': {'type': 'string', 'description': 'Pickup or drop-off address. REQUIRED when the ride departs to the airport (direction to_airport) or runs city-to-city — the driver has nowhere to collect the passenger otherwise, and the booking is refused. Optional for an airport arrival, where the driver waits in arrivals.'}, 'passengerEmail': {'type': 'string', 'description': 'Passenger email — the confirmation link is sent here.'}, 'passengerPhone': {'type': 'string', 'description': 'Passenger phone in international format.'}, 'specialRequests': {'type': 'string', 'description': 'Notes, e.g. child seat needed (optional).'}}, 'additionalProperties': False}
输出模式
{'oneOf': [{'type': 'object', 'required': ['ok', 'status', 'booked', 'confirmationEmailSent', 'message'], 'properties': {'ok': {'const': True}, 'route': {'type': 'string'}, 'booked': {'const': False}, 'pickup': {'type': 'string'}, 'status': {'const': 'pending_confirmation'}, 'message': {'type': 'string'}, 'vehicle': {'type': 'string'}, 'priceEur': {'type': 'number'}, 'expiresAt': {'type': 'string', 'format': 'date-time'}, 'requestId': {'type': 'string'}, 'confirmationEmailSent': {'type': 'boolean'}}}, {'type': 'object', 'required': ['ok', 'error'], 'properties': {'ok': {'const': False}, 'error': {'type': 'string'}}}]}
estimate_price
Estimate price
Estimate the price for a trip. Given a route and passenger count (and optional luggage count), returns the cheapest vehicle that fits the group, plus all fitting options. Use this to answer 'how much for N people from X to the airport?'.
只读
输入模式
{'type': 'object', 'required': ['routeSlug', 'passengers'], 'properties': {'luggage': {'type': 'integer', 'minimum': 0, 'description': 'Number of large bags (optional).'}, 'routeSlug': {'type': 'string', 'description': 'Route slug from list_routes.'}, 'passengers': {'type': 'integer', 'minimum': 1, 'description': 'Number of passengers.'}}, 'additionalProperties': False}
输出模式
{'oneOf': [{'type': 'object', 'required': ['fits', 'route', 'recommended'], 'properties': {'fits': {'const': True}, 'note': {'type': 'string'}, 'route': {'type': 'string'}, 'luggage': {'type': ['integer', 'null']}, 'passengers': {'type': 'integer'}, 'recommended': {'type': 'object', 'required': ['vehicle', 'priceEur'], 'properties': {'vehicle': {'type': 'string'}, 'priceEur': {'type': 'number'}, 'priceRsd': {'type': ['number', 'null']}, 'maxLuggage': {'type': 'integer'}, 'maxPassengers': {'type': 'integer'}}}, 'allFittingOptions': {'type': 'array', 'items': {'type': 'object'}}}}, {'type': 'object', 'required': ['fits', 'message'], 'properties': {'fits': {'const': False}, 'message': {'type': 'string'}}}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'string'}}}]}
get_booking_request_status
Check booking request status
Check whether a booking request (from create_booking_request) has been confirmed by the passenger yet. Returns 'pending', 'confirmed' (with the booking number), or 'expired'.
只读
输入模式
{'type': 'object', 'required': ['requestId'], 'properties': {'requestId': {'type': 'string', 'description': 'The requestId returned by create_booking_request.'}}, 'additionalProperties': False}
输出模式
{'oneOf': [{'type': 'object', 'required': ['ok', 'status', 'booked', 'message'], 'properties': {'ok': {'const': True}, 'booked': {'type': 'boolean'}, 'status': {'enum': ['pending', 'confirmed', 'expired']}, 'message': {'type': 'string'}, 'bookingNumber': {'type': ['string', 'null']}}}, {'type': 'object', 'required': ['ok', 'error'], 'properties': {'ok': {'const': False}, 'error': {'type': 'string'}}}]}
get_pricing
Get pricing
Get fixed per-vehicle prices for a route, or for all routes if no routeSlug is given. Prices are fixed (no surge, no metered fares), in EUR and RSD. Each vehicle tier lists max passengers and luggage.
只读
输入模式
{'type': 'object', 'properties': {'routeSlug': {'type': 'string', 'description': "Optional route slug from list_routes (e.g. 'novi-sad-belgrade-airport'). Omit to get pricing for every route."}}, 'additionalProperties': False}
输出模式
{'oneOf': [{'type': 'object', 'required': ['currency', 'routes'], 'properties': {'routes': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'pricing'], 'properties': {'slug': {'type': 'string'}, 'route': {'type': 'string'}, 'pricing': {'type': 'array', 'items': {'type': 'object', 'required': ['vehicle', 'priceEur'], 'properties': {'vehicle': {'type': 'string'}, 'priceEur': {'type': 'number'}, 'priceRsd': {'type': ['number', 'null']}, 'maxLuggage': {'type': ['integer', 'null']}, 'maxPassengers': {'type': ['integer', 'null']}}}}}}}, 'currency': {'type': 'string'}}}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'string'}}}]}
get_service_info
Get service info
Get business info: service area, accepted payment methods, supported languages, minimum booking lead time, contact details, and how to book (including the booking URL template).
只读
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['howToBook'], 'properties': {'url': {'type': 'string'}, 'meta': {'type': 'object'}, 'name': {'type': 'string'}, 'email': {'type': 'string'}, 'howToBook': {'type': 'string'}, 'languages': {'type': 'array', 'items': {'type': 'string'}}, 'telephone': {'type': 'string'}, 'paymentMethods': {'type': 'array', 'items': {'type': 'string'}}, 'bookingUrlTemplate': {'type': 'string'}}}
list_routes
List routes
List all active airport-transfer routes with their slug, endpoints, distance, travel time, available directions, and starting price. Use this first to discover what routes exist.
只读
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['routes', 'count'], 'properties': {'count': {'type': 'integer'}, 'routes': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'origin', 'destination'], 'properties': {'slug': {'type': 'string'}, 'origin': {'type': 'string'}, 'directions': {'type': 'array', 'items': {'type': 'string'}}, 'distanceKm': {'type': 'number'}, 'destination': {'type': 'string'}, 'fromPriceEur': {'type': 'number'}, 'durationMinutes': {'type': 'number'}}}}}}
已添加
get_booking_request_status
2026年9月17日 12:54
已添加
create_booking_request
2026年9月17日 12:54
已添加
get_service_info
2026年9月17日 12:54
已添加
estimate_price
2026年9月17日 12:54
已添加
get_pricing
2026年9月17日 12:54
已添加
list_routes
2026年9月17日 12:54