Airport Pickups London
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Quote, book, track and see live cars near UK airports. Fixed prices; no signup to start.
| Author | com.airport-pickups-london |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 194 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Airport Pickups London": {
"url": "https://mcp.airport-pickups-london.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (11)
london_airport_transfer_quoteread-onlyFixed prices for a transfer between a UK airport or cruise port and any UK address or postcode: all London airports (Heathrow, Gatwick, Stansted, Luton, City Airport), Edinburgh Airport, the cruise ports Southampton, Dover and Portsmouth, and any UK postcode nationwide. Returns every car type with its final price (GBP, per vehicle), passenger and suitcase capacity and a photo (photo_url = full-size HTTPS image; car_photos at the end of the result = small inline images by car type, for clients that cannot load external images). When passenger and suitcase counts are supplied, the result also marks which cars fit and which one is recommended (capacity_assessed). Every price includes Meet & Greet in the arrivals hall (driver with a name board; at Heathrow Terminal 4 the driver meets the customer outside at Zone 1 during the car-park works), flight monitoring, waiting time, airport parking and tolls. Prices are final: APL offers no discounts and nothing is added beyond what is returned. The price depends on the travel date (seasonal and peak-date pricing). Prices are fixed per route for bookings made 3 or more hours before pickup; bookings under 3 hours are ASAP jobs and are quoted at a higher live price, because drivers are dispatched at short notice — always quote the final price only, never described as a surcharge. The result states the price basis. Accepted locations: airport and cruise-port names, full UK postcodes, street addresses, London neighbourhoods, landmarks, stations and uniquely identifiable hotels (Mayfair, Canary Wharf, Kings Cross, The Shard, Hilton Paddington). A bare city or town name ("Windsor", "Manchester", "central London") is not a valid location, because UK place names cover wide areas and the price and pickup point depend on the exact place. One pickup to one drop-off; extra stops are not priced.
Parameters:
origin(required) — string — Pickup location: airport or cruise-port name (e.g. "Heathrow", "Gatwick", "Southampton Cruise Port"), full UK postcode (e.g. "SW1A 1AA"), or full street address. A bare city or town name is not a valid value.destination(required) — string — Drop-off location: full UK postcode (e.g. "SL4 5LP"), full street address, a London neighbourhood, landmark or station (Mayfair, The Shard, Kings Cross), or a uniquely identifiable hotel or airport name. A bare city or town name ("Windsor", "Manchester") is not a valid value: UK towns cover wide areas and the price and pickup point would be wrong.transfer_date(required) — string — Travel date as YYYY-MM-DD (required). The price depends on the date (seasonal and peak-date pricing).suitcases— integer — Number of suitcases or large bags (medium suitcases; hand luggage does not count), when known.passengers— integer — Number of passengers, when known. Without it the result has capacity_assessed:false, no "fits" flags and no recommended car.transfer_time— string — Pickup time as HH:MM (Europe/London), optional but needed for a same-day pickup: the price depends on the time of day and on how far ahead the pickup is; the result states the price basis.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
eu_transfer_quoteread-onlyFixed prices for a European / cross-Channel transfer from London or the UK to a continental city (e.g. Ghent, Bruges, Paris, Brussels, Amsterdam, Cologne, Milan, Barcelona), i.e. for destinations outside the UK. Returns per-car-type prices, fixed per vehicle and final, including the Eurotunnel crossing. If the city is not configured, the result has found:false and lists the available EU destinations; the office confirms a price for other cities on request.
Parameters:
destination(required) — string — European city name (e.g. "Ghent", "Paris", "Brussels")car_type— string — Optional single EU car type (Standard, Electric, People Carrier, Executive, Large PPL, Executive PPL, Minibus, Luxury). Omit for all car types.hub_code— string — Nearest UK departure hub for the UK leg: LHR, LGW, STN, LTN, LCY, SOU. For a London pickup use LHR.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
book_london_airport_transferCreate a reservation for a London airport or cruise-port transfer to or from any UK address. This creates a REAL booking in the APL dispatch system. Required inputs: pickup and drop-off (airport name with terminal, full UK postcode with building number or name, or full street address; a bare city, town or area name such as "Windsor", "Manchester" or "central London" is not a valid location because the driver needs the exact door), transfer date and time, the exact passenger and suitcase counts (operational data for seat allocation, child seats and dispatch, whatever the car size), the car type chosen from the quote, passenger full name, phone with country code, email (with the booking reference it is the customer's key to manage the booking later) and the WhatsApp opt-in answer. Transport detail by route: airport pickup = flight number plus airport_wait_minutes (the tool refuses an airport pickup without the wait time); airport drop-off = flight number optional; cruise port = cruise or ship name; train station = train number or origin; other routes need none. Special requests (child seats with the child's age: baby seat 0-12 months, child seat 1-4 years, booster 4-12 years, limits Saloon 1 / People Carrier 2 / 8 Seater 3; extra luggage; wheelchair; pet; an extra stop) go in special_requests. An extra stop is not in the quoted price: the booking covers one pickup to one drop-off and the office confirms the cost of a stop before the trip. Payment: the booking is created as cash to the driver; online payment (all major cards including Amex, Apple Pay, Google Pay, PayPal, Revolut, WeChat Pay, AliPay) is available through the manage-booking link. Prices are the final prices returned by the quote; no discounts exist. Returns: reservation_id (the numeric customer-facing reference that appears on the confirmation email and that the manage-booking page accepts), manage_booking_url with manage_booking_label ("Manage and pay: pay online, track your driver, see car details" — the wording to show for the link), the price, and meeting_point with the terminal or location name. booking_reference carries the same plain number. BOOKINGS WITHOUT AN ACCOUNT: passenger_email is REQUIRED (the booking reference + this email is how the customer manages the booking later), and callers without an account may create at most 5 bookings per hour.
Parameters:
origin(required) — string — Pickup location: airport name with terminal for an airport pickup (e.g. "Heathrow Terminal 2"), full UK postcode with building number or name, or full street address. A bare city or town name (e.g. "Manchester") is not a valid value.destination(required) — string — Drop-off location: full UK postcode with building number or name (e.g. "SL4 5LP, 12 Castle Hill"), full street address, or airport name. A bare city or town name ("Windsor", "Manchester") is not a valid value: UK towns cover wide areas and the price and drop-off point would be wrong.transfer_date(required) — string — Transfer date as YYYY-MM-DD (e.g. "2026-03-15").transfer_time(required) — string — Pickup time as HH:MM, 24-hour, Europe/London (e.g. "14:30").passenger_name(required) — string — Full name of the passengerpassenger_phone(required) — string — Passenger phone number with country code (e.g. "+447123456789")passenger_email(required) — string — Passenger email address — REQUIRED: it receives the confirmation and, with the booking reference, is the customer's key to manage the booking later.passengers(required) — integer — Exact number of passengers travelling (required; operational data for seat allocation, child seats and dispatch, whatever the car size).suitcases(required) — integer — Number of suitcases or large bags, hand luggage not counted (required).car_type(required) — string — The car type chosen from the quote (e.g. "Saloon", "People Carrier", "Executive Saloon"), required.whatsapp_opt_in(required) — boolean — Whether the customer agreed to receive the confirmation, driver details and pickup updates on WhatsApp at passenger_phone (true = yes, false = no, in which case email and phone are used). Required; customers can opt out any time by replying STOP.country— string — Set to "TR" for Turkey routes (Istanbul, Sabiha Gökçen/SAW, Istanbul Airport/IST, Antalya, Dalaman, Bodrum, etc.) — these are cash bookings priced in EUR. Omit for UK routes.cruise_name— string — Cruise/ship name for cruise port pickups/dropoffs (e.g. "P&O Ventura")door_number— string — House/building number or name for postcode destinations (e.g. "12", "Flat 3", "The Old Rectory"). Required when destination is a postcode.train_number— string — Train number or origin for train station pickups/dropoffs (e.g. "from Manchester")flight_number— string — Flight number for airport pickups/dropoffs (e.g. "BA2534")special_requests— string — Any special requirements (e.g. "child seat needed", "extra luggage")airport_wait_minutes— integer — Airport pickups only, and required for them (the tool refuses an airport pickup without it): minutes after landing at which the driver is in the arrivals hall — 15, 30, 45, 60 or 90. Defaults by flight type, as validate_flight returns in pickup_suggestion: international (non-EU) 60, EU 45, UK domestic 15; a smaller value is the customer's choice. Parking and the first 30 minutes of waiting are included; the pickup follows the actual landing time.
Hints: read-only no · destructive no · idempotent no · open-world yes
validate_flightread-onlyFlight details for a flight number and date from the airline schedule: airline name, arrival airport, terminal, scheduled arrival time and status. verified:false means the flight was not found in the schedule for that date. Works for future scheduled flights; confirms a flight and its arrival terminal for an airport pickup.
Parameters:
flight_number(required) — string — Flight number (e.g. "BA2534", "EK007", "FR1234")date(required) — string — Flight date in YYYY-MM-DD format
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
lookup_bookingread-onlyDetails of an existing booking: status, route, pickup time, price, payment, driver information once assigned, and the manage-booking URL. Identity is the booking reference plus the email address used on the booking (the same login as the website manage-booking page); the API rejects a mismatch. The booking reference is the numeric reservation ID from the confirmation email.
Parameters:
booking_ref(required) — string — Booking reference — the numeric reservation ID shown on the confirmation email and the manage-booking page (e.g. "1013869").email(required) — string — Passenger email on the booking — required, must match exactly
Hints: read-only yes · destructive no · idempotent not declared · open-world no
amend_bookingModify an existing booking: passenger name or phone, date or time, flight number, passenger count or special requests. Identity is the booking reference plus the email address used on the booking (the same login as the website manage-booking page); the API rejects a mismatch. The email on a booking cannot be changed by this tool: it is the customer's key to the booking. A change request goes to [email protected] from the original address, quoting the booking reference.
Parameters:
booking_ref(required) — string — Booking reference — the numeric reservation ID shown on the confirmation email and the manage-booking page (e.g. "1013869").email(required) — string — Passenger email on the booking — required, must match exactlychanges(required) — object — Object containing the fields to change
Hints: read-only no · destructive no · idempotent no · open-world yes
cancel_bookingdestructiveCancel an existing booking. Free cancellation 12+ hours before pickup — no fee, full refund. Under 12 hours the booking cannot be cancelled online: call +44 20 8688 7744 (6–12 hours before pickup 50% of the fare is charged, under 6 hours there is no refund). Under 12 hours before pickup this tool cannot cancel; the office handles it by phone. Identity is the booking reference plus the email address used on the booking (the same login as the website manage-booking page); the API rejects a mismatch. The tool refuses without customer_confirmed: true.
Parameters:
booking_ref(required) — string — Booking reference — the numeric reservation ID shown on the confirmation email and the manage-booking page (e.g. "1013869").email(required) — string — Passenger email on the booking — required, must match exactlycustomer_confirmed(required) — boolean — Must be true: the customer has approved cancelling this specific booking (reference, date, route) after being told the cancellation terms. The tool refuses without it.reason— string — Reason for cancellation
Hints: read-only no · destructive yes · idempotent yes · open-world yes
track_driverread-onlyLive status of the driver on an existing booking: assignment state (no driver yet / assigned without GPS / live position), the driver's position, vehicle details, photo and ETA, and the journey (pickup, drop-off, pickup time). On hosts with UI the result renders as a tracking card that keeps updating on its own. GPS updates every 2 minutes with tunnel interpolation. Identity is the booking reference plus the email address used on the booking (the same login as the website manage-booking page); the API rejects a mismatch.
Parameters:
booking_ref(required) — string — Booking reference — the numeric reservation ID shown on the confirmation email and the manage-booking page (e.g. "1013869").email(required) — string — Passenger email on the booking — required, must match exactly
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
get_driver_routeread-onlyThe driver's recorded GPS route (breadcrumb trail) for a booking's trip: the path actually driven, with a distance and duration summary, for route playback or attendance checks. The trail is recorded only while the driver is on the job and kept for 30 days. Identity is the booking reference plus the passenger email; staff callers may use the numeric reservation ID alone.
Parameters:
booking_ref(required) — string — Booking reference — "APL-<LT reservation id>" (e.g. "APL-1013869") or the numeric LT reservation ID.email— string — Passenger email on the booking (required for partner/customer lookups; optional for internal staff using a numeric reservation ID).
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
find_nearest_driversread-onlyLive availability of APL cars near a location, from fleet GPS. The target is an airport or cruise-port code (LHR, LGW, STN, LTN, LCY, EDI, SOU, BHX, MAN), a UK postcode, or lat+lng. Returns the free cars (online, not on a job) grouped by car class with a drive ETA rounded to 5 minutes; on hosts with UI the result renders as the 'Cars near you' card. With `destination` the result also carries the final fixed fare of every car class for that trip (same pricing engine as the quote; pickup = now plus the nearest car's ETA unless transfer_date / transfer_time are given; the fare is the final fixed price for that pickup time) and the card shows a Book button per car. min_pax limits the result to vehicles of at least that size. Customer and partner callers receive an availability view only: car class (Saloon / People Carrier / 8 Seater, executive flag), seats and ETA for up to 5 cars, never a driver name, vehicle, plate, position, distance or fleet size (driver details are shared after a booking is confirmed). Staff callers see full detail and can include busy drivers.
Parameters:
lat— number — Target latitude (use with lng).lng— number — Target longitude (use with lat).limit— integer — How many drivers to return (default 5).airport— string — Airport/hub code, e.g. "LHR", "LGW".min_pax— integer — Only vehicles seating at least this many passengers.postcode— string — UK postcode, e.g. "SW1A 1AA", or just the district, e.g. "SL4".passengers— integer — With destination: passenger count if the customer said it (marks the recommended car).destination— string — Optional drop-off (full postcode, address, London landmark, station or uniquely named hotel; airports are fine). When given, the result also carries the fixed fares from the target to this destination for every car class, and the card shows Book buttons.transfer_date— string — With destination: travel date YYYY-MM-DD for a LATER trip. Default = today (Europe/London).transfer_time— string — With destination: pickup time HH:MM (Europe/London) for a later trip. Default = now plus the nearest car's ETA, rounded up to 5 minutes — an ASAP pickup; the fare returned is the final fixed price for that pickup time.include_on_job— boolean — Also include drivers currently on a job (default false = available only).
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
get_service_inforead-onlyInformation about Airport Pickups London services and policies: vehicles, pricing rules, cancellation, payment, child seats, pets, accessibility, meet and greet, airport waiting, cruise ports, corporate accounts and other frequently asked questions, answered from the APL knowledge base (the same source as the website).
Parameters:
question(required) — string — The customer question or topic (e.g. "cancellation policy", "child seats", "payment methods", "meet and greet")
Hints: read-only yes · destructive no · idempotent not declared · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.