vladand-source avatar

Airport Transfers

vladand-source/rides

A stateless MCP server for booking airport transfers between Novi Sad and Belgrade Airport (BEG). It exposes six tools: list_routes, get_pricing, estimate_price for quoting the cheapest vehicle tier, get_service_info for lead times and payment details, and create_booking_request plus get_booking_request_status for the booking flow. Bookings aren't silent. The create call generates a provisional request and emails the passenger a confirmation link. No money changes hands until the driver arrives (cash or card). Reach for this if you're building a travel assistant that needs real ground transport in Serbia. The same catalog and booking API is also available as plain REST at rides.rs/api/v1/routes if you want to skip MCP.

tools
6
transport
HTTP
last updated
May 22, 2026

Install

From registry metadata
$ npx add-mcp https://rides.rs/api/mcp --name airport-transfers

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http airport-transfers https://rides.rs/api/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 6 tools

Verified live against the running server on Nov 6, 2026.

list_routesList all active airport-transfer routes with their slug, endpoints, distance, travel time, available directions, and starting price.

List all active airport-transfer routes with their slug, endpoints, distance, travel time, available directions, and starting price.

No parameters. Call it with no arguments.

get_pricingGet 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.1 params

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.

Parameters* required
routeSlugstring
Optional route slug (e.g. 'novi-sad-belgrade-airport'). Omit to get pricing for every route.
estimate_priceEstimate 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.3 params

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.

Parameters* required
luggageinteger
Number of large bags (optional).
passengers*integer
Number of passengers.
routeSlug*string
Route slug, e.g. 'novi-sad-belgrade-airport'.
get_service_infoGet business info: service area, accepted payment methods, supported languages, minimum booking lead time, contact details, and how to book (including the booking URL template).

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).

No parameters. Call it with no arguments.

create_booking_requestStart 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. The result says where the...14 params

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. The result says where the...

Parameters* required
direction*string
to_airport = going to the airport; from_airport = pickup at the airport.one of to_airport · from_airport
flightNumberstring
Flight number (recommended for airport pickups).
localestring
Language for the confirmation email. Default en.one of en · sr · ru · de · zh · it
luggageinteger
Number of large bags (optional).
passengerEmail*string
Passenger email — the confirmation link is sent here.
passengerName*string
Full name of the passenger.
passengerPhone*string
Passenger phone in international E.164 format, starting with + and the country code (e.g. +381641234567, +491512345678). Without the +country code the driver cannot message the passenger on WhatsAp...
passengers*integer
Number of passengers.
pickupAddressstring
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...
pickupDate*string
Pickup date, YYYY-MM-DD, Belgrade local time.
pickupTime*string
Pickup time, HH:MM (24h), Belgrade local time.
routeSlug*string
Route slug, e.g. 'novi-sad-belgrade-airport'.
specialRequestsstring
Notes, e.g. child seat needed (optional).
vehiclestring
Optional vehicle tier name (e.g. 'Group XL'). Defaults to the cheapest vehicle that fits the group.
get_booking_request_statusCheck whether a booking request has been confirmed by the passenger yet. Returns 'pending', 'confirmed' (with the booking number), or 'expired'.1 params

Check whether a booking request has been confirmed by the passenger yet. Returns 'pending', 'confirmed' (with the booking number), or 'expired'.

Parameters* required
requestId*string
The requestId of a booking request.

Sponsors

Readme

Details

Repository
github.com/vladand-source/rides
Website
rides.rs/en/for-agents
Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026