amend_booking | Modify booking details like passenger name/phone, date/time, flight number, passenger count or special requests. Ask the customer for BOTH their booking reference AND the email address used at booking — same as our website manage-booking login. Do not call this tool without both values. The EMAIL on a booking cannot be changed here — it is the customer's key to the booking. If they need a new email on the booking, tell them to email [email protected] from the original address, quoting the booking reference. |
book_london_airport_transfer | Book a London airport or cruise port transfer to/from any UK address. Creates a REAL reservation — only call after the customer confirms.
REQUIRED FLOW — collect ALL info before booking:
1. Ask: Where are you travelling from and to?
2. Ask: What date and time? (ask naturally, never expose technical formats like YYYY-MM-DD to the user)
3. MANDATORY — Ask: How many passengers travelling, and how many suitcases/large bags? You MUST collect the exact passenger count for EVERY booking, even when the customer has already chosen the largest vehicle (Executive 8 Seater / Minibus). Passenger count is operational data the driver needs (seat allocation, child-seat planning, dispatch) — never skip this question, never assume "they picked the big car so it doesn't matter". Do not proceed without an explicit number.
4. Call london_airport_transfer_quote to show prices and car options
5. Ask: Which car type would you like? (show the options with prices)
6. Ask: Passenger full name
7. Ask: Phone number (with country code)
8. Ask: Email address (for booking confirmation)
9. CRITICAL — POSTCODE / EXACT ADDRESS: NEVER book using only a city, town, or area name (e.g. "Windsor", "Manchester", "central London"). UK city names cover wide areas — pricing and the actual pickup/dropoff point will be wrong (a customer asking for "Windsor" must reach SL4, not Harrow HA). If you only have a city/town name, ask the customer for the FULL UK postcode (e.g. "SL4 5LP") AND the house/building number or name. If you have a postcode but no building number, ask for the building number/name. Do not guess, do not substitute a default. The exact door is required so the driver can reach the customer.
10. Ask the RIGHT transport detail based on booking type:
- Airport PICKUP (customer arriving at airport) → Flight number (e.g. BA2534). Use validate_flight to verify and auto-detect terminal.
- Airport DROPOFF (customer going TO airport) → Flight number is optional, don't require it
- Cruise port pickup/dropoff → Cruise/ship name (e.g. P&O Ventura)
- Train station pickup/dropoff → Train number or arriving from where
- Non-airport/port/station route → skip, no transport detail needed
11. MANDATORY — Ask: "Do you have any special requests? For example, child seat, extra luggage, wheelchair, pet?" You MUST ask this every time. Do NOT skip it. If they mention a child seat, ask the child's age (baby seat 0-12mo, child seat 1-4yrs, booster 4-12yrs). Check seat limit for their car (Saloon 1, People Carrier 2, 8 Seater 3). If they ask for extra pickup or drop-off stops (via points): the quote covers ONE pickup → ONE drop-off and the quote tool cannot price a stop. Book the main journey, put the stop in special_requests (e.g. "extra stop at 12 High St, Slough"), and tell them: "Extra stops are not included in this price — our office will confirm the extra cost with you before the trip."
12. MANDATORY — Before confirming the booking, inform the passenger: "We'll create your booking and you can pay the driver in cash on the day. If you prefer to pay online, you can do so via your manage booking link — we accept all major cards including Amex, Apple Pay, Google Pay, PayPal, Revolut, WeChat Pay, and AliPay." Wait for the customer to confirm.
13. Confirm all details with the customer, then call book_london_airport_transfer
14. AFTER booking: Share the reservation_id number (the numeric LT reference, e.g. "966811") and the manage_booking_url. This numeric reservation_id is what appears on the customer confirmation email AND what the manage-booking page accepts — it is the customer-facing reference. Do NOT mention the internal booking_reference (APL-XXXXXX format) to the customer; that is for our internal tagging only. Say: "Booking confirmed! Your reference is #{reservation_id}. You can track your driver, view booking details, and pay online (all major cards, Amex, Apple Pay, Google Pay, PayPal, Revolut, WeChat Pay, AliPay) using this link: {manage_booking_url}"
- Share meeting_point instructions — ALWAYS include the terminal/location name from meeting_point.name (e.g. "Meeting point at Heathrow Terminal 2: ..."). Never show meeting instructions without specifying which terminal or location.
IMPORTANT: Never call book_london_airport_transfer without customer confirmation. Always show the price first via london_airport_transfer_quote.
IMPORTANT: The customer MUST choose a car type from the quote. Do NOT auto-select a car — always ask which one they want.
IMPORTANT: Email address is REQUIRED — it is used for the booking management link and confirmation.
IMPORTANT: Always inform the customer about payment options (cash or card/Apple Pay/Google Pay via manage booking link) BEFORE making the booking.
IMPORTANT — PRICING: Quote the prices returned by london_airport_transfer_quote EXACTLY. Do NOT calculate discounts, do NOT round up or down, do NOT modify prices in any way. The prices returned are already final and include all surcharges. Never offer a discount unless it is explicitly returned by the quote tool. The MCP server is the only source of truth for pricing.
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. |
cancel_bookingdestructive | Cancel a 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 this tool cannot cancel — the customer must call the office. Ask the customer for BOTH their booking reference AND the email address used at booking — same as our website manage-booking login. Do not call this tool without both values. |
eu_transfer_quoteread-only | Get prices for a EUROPEAN / cross-Channel transfer from London/UK to a continental destination (e.g. Ghent, Bruges, Paris, Brussels, Amsterdam, Cologne, Milan, Barcelona). Use this — NOT london_airport_transfer_quote — whenever the destination is OUTSIDE the UK / on the European continent. Returns per-car-type prices, fixed per vehicle, including the Eurotunnel crossing. Prices are FINAL — quote them exactly, no discounts. If the city is not configured the tool returns the list of available EU destinations; in that case tell the customer the team will confirm a price for it. |
find_nearest_driversread-only | Find the closest available drivers to a location using live fleet GPS. Give a target as an airport code (LHR, LGW, STN, LTN, LCY, EDI, SOU, BHX, MAN), a UK postcode, or lat+lng. Returns the nearest available cars (online, not on a job) with straight-line distance and a rough drive ETA. Set min_pax to require a vehicle size. Customers and partner agents get an availability view only — car type (Saloon / People Carrier / 8 Seater, executive flag), seats and a rough ETA rounded to 5 minutes for up to 5 cars, plus a per-car-type summary; NO driver name, vehicle, plate, position, distance or fleet size (driver details are shared only after a booking is confirmed). Staff see the full detail and can include busy drivers. |
get_driver_routeread-only | Get the driver's recorded GPS route (breadcrumb trail) for a booking's trip — the path the driver actually drove, with a distance/duration summary. Use for route playback or to verify a driver attended. Trail is recorded only while the driver is on the job and kept for 30 days. Needs the booking reference (and the passenger email unless you're internal staff using the numeric reservation ID). |
get_service_inforead-only | Get information about Airport Pickups London services, policies, vehicles, pricing rules, cancellation, payment, child seats, pets, accessibility, meet and greet, cruise ports, corporate accounts, and any other frequently asked questions. Use this when customers ask about how the service works. |
london_airport_transfer_quoteread-only | Get London airport transfer prices between a UK airport or cruise port and any UK address or postcode. Covers all London airports (Heathrow, Gatwick, Stansted, Luton, City Airport), Edinburgh Airport, and all major UK cruise ports (Southampton, Dover, Portsmouth); transfers to and from any UK postcode nationwide. Returns every car type with its fixed price (GBP, per vehicle, final), passenger and suitcase capacity, 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), and — only when passenger and suitcase counts were given — which cars fit and which one is recommended (capacity_assessed tells you). WHAT IS INCLUDED in every price: Meet & Greet in the arrivals hall (driver with a name board; exception Heathrow Terminal 4, where 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: quote them exactly as returned — no discounts, no rounding, no "price after discount"; APL offers no ad-hoc discounts. POSTCODE RULE: if the customer gives only a city or town ("Windsor", "Manchester") or just "London" / "central London", ask for the full postcode or a precise address BEFORE calling — UK place names cover wide areas and the price and pickup point would be wrong. London neighbourhoods, landmarks, stations and uniquely identifiable hotel names ARE fine for a quote (Mayfair, Canary Wharf, Kings Cross, The Shard, Hilton Paddington). transfer_date is REQUIRED (the price depends on the date) — ask for it, never guess it. Passengers and suitcases are optional: if you do not know them, leave them out and the result says what is missing. One pickup → one drop-off only; extra stops are not priced here (see the server instructions). |
lookup_bookingread-only | Look up booking details including status, price, payment, driver info, and manage booking URL. For "where is my driver" use track_driver alone (it already includes the journey and the driver) — do not call both for one question. Ask the customer for BOTH their booking reference AND the email address used at booking — same as our website manage-booking login. Do not call this tool without both values. Booking reference can be either the APL-XXXXXX format from the customer's confirmation email, or the numeric LT reservation ID — both work. |
track_driverread-only | Get the assigned driver's live GPS position, vehicle details, photo, ETA and the journey (pickup → drop-off, pickup time). This is the COMPLETE answer to 'where is my driver' / 'show me the driver' — call it once and answer from its result; do NOT also call lookup_booking unless the customer asks about the booking itself (price, payment, changes). The card it renders keeps updating by itself, so never call it again just to refresh. GPS updates every 2 minutes with tunnel interpolation. Ask the customer for BOTH their booking reference AND the email address used at booking — same as our website manage-booking login. Do not call this tool without both values. |
validate_flightread-only | Validate a flight number and get flight details including airline name, arrival airport, terminal, and arrival time. If the result has verified: false, the flight was NOT found in the airline schedule for that date — tell the customer so, ask them to check the flight number and date, and do not call it verified. Use this to verify a customer's flight number before booking and auto-detect the correct terminal. Works with future scheduled flights. |