Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization not required, issuer https://mcp.airport-pickups-london.com/
Changed the definition of "amend_booking", "cancel_booking", "lookup_booking" and 1 more
⟨6 unchanged words⟩ "booking_ref":{"description":"Booking reference —eitherthe\"APL-<LTnumeric reservationid>\" (e.g. \"APL-1013869\",IDasshown on the confirmation email and the manage-booking page (e.g. \"1013869\"), or thenumericsameLTnumberreservationinID\"APL-<id>\" form (e.g. \"966244\APL-1013869\"). Both formats accepted.","maxLength":20 ⟨108 unchanged words⟩
⟨6 unchanged words⟩ "booking_ref":{"description":"Booking reference —eitherthe\"APL-<LTnumeric reservationid>\" (e.g. \"APL-1013869\",IDasshown on the confirmation email and the manage-booking page (e.g. \"1013869\"), or thenumericsameLTnumberreservationinID\"APL-<id>\" form (e.g. \"966244\APL-1013869\"). Both formats accepted.","maxLength":20 ⟨64 unchanged words⟩
⟨42 unchanged words⟩ API rejects a mismatch. The booking reference iseithertheAPL-xxxxxxnumericformatreservation ID from the confirmationemail oremail; thenumericsamereservationnumberID;inbothAPL-<id>work.form also works.
⟨6 unchanged words⟩ "booking_ref":{"description":"Booking reference —
⟨6 unchanged words⟩ "booking_ref":{"description":"Booking reference —eitherthe\"APL-<LTnumeric reservationid>\" (e.g. \"APL-1013869\",IDasshown on the confirmation email and the manage-booking page (e.g. \"1013869\"), or thenumericsameLTnumberreservationinID\"APL-<id>\" form (e.g. \"966244\APL-1013869\"). Both formats accepted.","maxLength":20 ⟨25 unchanged words⟩
Changed the definition of "amend_booking", "book_london_airport_transfer", "cancel_booking" and 8 more
Modifybookingandetailsexistinglikebooking: passengername/phonename or phone,date/timedate or time, flight number, passenger count or special requests.Ask the customer forIdentityBOTHistheirthe booking referenceANDplus the email address used
Changed the definition of "find_nearest_drivers"
Find the closest availabledriverscars to a location using live fleet GPS. Give ⟨25 unchanged words⟩ (online, not on a job) withstraight-lineadistancedrive ETA rounded to 5 minutes, grouped by car class; on hosts that show UI it renders as the 'Cars near you' card. Add `destination` when the customer also says where they are going ('any cars near Heathrow to take me to the Hilton Paddington?'): the result then also carries the FIXED FARES for that trip for every car class (same engine as london_airport_transfer_quote; pickup = now plus the nearest car's ETA unless transfer_date / transfer_time are given) andatheroughcarddriveshows
Authorization not required, issuer https://mcp.airport-pickups-london.com/
Authorization not required, issuer https://mcp.airport-pickups-london.com/
Authorization not required, issuer https://mcp.airport-pickups-london.com/
Changed the definition of "validate_flight"
⟨11 unchanged words⟩ , 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 ⟨12 unchanged words⟩
Authorization not required, issuer https://mcp.airport-pickups-london.com/
Changed the definition of "book_london_airport_transfer" and "london_airport_transfer_quote"
⟨421 unchanged words⟩ they ask for extra pickup or drop-off stops,tell(viathempoints):"Notheproblem!quoteExtracoversstopsONEwillpickupchange→ ONE drop-off and
Authorization not required, issuer https://mcp.airport-pickups-london.com/
Changed the definition of "book_london_airport_transfer"
⟨20 unchanged words⟩ Minutes after landing the customer wants the driverreadyin(e.g.the arrivals hall (30,/ 45,/ 60,/ 90 — most choose 60; ~45 European hand-luggage,~60~90internationallong-haul with bags
Changed the definition of "london_airport_transfer_quote"
⟨62 unchanged words⟩ suitcase capacity, a photo (photo_url = full-sizelink;HTTPSphoto_thumbimage; car_photos at the end of the result = small inlineimageimages by car type, for clients that cannot load external images), ⟨163 unchanged words⟩
Changed the definition of "amend_booking", "book_london_airport_transfer", "cancel_booking" and 1 more
Modify booking details like passengerinfoname/phone, date/time, flight number, passenger count or special requests. Ask the customer for BOTH ⟨17 unchanged words⟩ 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 info@aplcars.com from the original address, quoting the booking reference.
⟨57 unchanged words⟩ "maxLength":20,"type":"string"},"passenger_email":{"description":"New email address","maxLength":100,"type":"string"},"passenger_name":{"description":"New passenger full name ⟨80 unchanged words⟩
Authorization not required, issuer https://mcp.airport-pickups-london.com/
Changed the definition of "lookup_booking" and "track_driver"
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 ⟨44 unchanged words⟩
Get the assigned driver's live GPS position, vehicle details, photo, ETA andETA.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.
Authorization not required, issuer https://mcp.airport-pickups-london.com/
Authorization not required, issuer https://mcp.airport-pickups-london.com/
Authorization not required, issuer https://mcp.airport-pickups-london.com/
Changed the definition of "find_nearest_drivers"
⟨91 unchanged words⟩ ":"UK postcode, e.g. \"SW1A 1AA\", or just the district, e.g. \"SL4\".","maxLength":10,"type":"string" ⟨2 unchanged words⟩
Authorization required → not required, issuer https://mcp.airport-pickups-london.com/
First tool surface recorded: 11 tools (server version 1.0.0)
Authorization required, Bearer, issuer https://mcp.airport-pickups-london.com/
Authorization required, Bearer, issuer https://mcp.airport-pickups-london.com/
Authorization required, Bearer, issuer https://mcp.airport-pickups-london.com/
Authorization required, Bearer, issuer https://mcp.airport-pickups-london.com/
Authorization required, Bearer, issuer https://mcp.airport-pickups-london.com/
Authorization required, Bearer, issuer https://mcp.airport-pickups-london.com/
Authorization required, Bearer, issuer https://mcp.airport-pickups-london.com/
Authorization required, Bearer, issuer https://mcp.airport-pickups-london.com/
Authorization required, Bearer, issuer https://mcp.airport-pickups-london.com/
Certificate recorded, valid to 2026-12-07
Authorization required, Bearer, issuer https://mcp.airport-pickups-london.com/
Showing the latest 33 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
BookCreate a reservation for a London airport orcruise portcruise-port transferto/fromto or from any UK address.CreatesThis creates a REALreservation — only call after the customer confirms. REQUIRED FLOW — collect ALL info beforebooking: 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 datain thedriver needs (seat allocation, child-seat planning,APL 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.system. RequiredAskinputs:Which car type wouldpickupyouandlike?drop-off (show theairportoptionsname withprices) 6. Ask: Passengerterminal, fullname 7. Ask: PhoneUKnumberpostcode(withcountry code) 8. Ask: Email address (for booking confirmation) 9. CRITICAL — POSTCODEbuilding/numberEXACTorADDRESS:name,NEVERorbookfullusingstreetonlyaddress; a bare city, town,or area name(e.g.such as "Windsor", "Manchester",or "central London").UK city names coveriswidenotareasa—validpricinglocationandbecause theactualdriverpickup/dropoffneedspointthewillexactbedoor),wrongtransfer(adatecustomerandaskingtime,forthe"Windsor"exactmustpassengerreachandSL4,suitcasenotcountsHarrow(operationalHA).dataIfforyouseatonlyallocation,havechildaseatscity/townandnamedispatch,ask the customer forwhatever theFULL UK postcode (e.g. "SL4car5LP"size)AND, thehouse/buildingcarnumbertypeorchosenname.fromIftheyouquote,havepassengerafullpostcodename,butphonenowithbuildingcountrynumbercode,askemailfor(with thebuilding number/name. Do not guess, do not substitutebookingareferencedefault.itTheisexactthedoorcustomer'siskeyrequiredtosomanage thedriverbookingcanlater)reachand thecustomer. 10. Ask theWhatsAppRIGHTopt-intransportanswer. Transport detailbased on bookingbytyperoute:-Airport PICKUP (customer arriving atairport)→ Flight numberpickup(e.g.=BA2534).flightUsenumbervalidate_flightplustoairport_wait_minutesverify(theandtoolauto-detectrefusesterminal. -anAirportairportDROPOFFpickup(customerwithoutgoingtheTOwaitairporttime)→ Flight;numberairportisdrop-offoptional,=don'tflightrequirenumberit -optional;Cruisecruise portpickup/dropoff → Cruise/ship=namecruise(e.g.orP&OshipVentura) -name;Traintrain stationpickup/dropoff →=Traintrain number orarriving 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 skiporigin;it.otherIfroutestheyneedmentionnone. Specialarequests (childseat,seatsaskwith the child's age:(baby seat0-12mo0-12 months, child seat1-4yrs1-4 years, booster4-12yrs). Check seat limit for4-12theiryears,carlimits(Saloon 1,/ People Carrier 2,/ 8 Seater3). If they ask for3; extrapickupluggage;orwheelchair;drop-offpet;stopsan(viaextrapointsstop):the quote covers ONE pickup → ONE drop-off and the quote tool cannot price a stop. Book the main journey, put the stopgo inspecial_requestsspecial_requests.(e.g.An"extra stopat 12 HighisSt,notSlough"),inandthetellquotedthemprice:"Extrathestopsbookingarecoversnotoneincludedpickupintothisonepricedrop-off—andourthe officewill confirmconfirms theextracostwithofyoua stop before the trip." 12. MANDATORY — Before confirming the booking, inform the passengerPayment:"We'll create yourthe bookingand you can pay theisdrivercreatedinas cashonto theday. If you prefer to paydriver; online,you can do so via your manage booking link — we acceptpayment (all major cards including Amex, Apple Pay, Google Pay, PayPal, Revolut, WeChat Pay,andAliPay)AliPay."isWaitavailableforthrough thecustomermanage-bookingtolink.confirm. 13.PricesConfirmareallthedetailsfinalwithpricesthereturnedcustomer,bythenthecallquote;book_london_airport_transfer 14.noAFTERdiscountsbookingexist. Returns:Share thereservation_idnumber(the numericLTcustomer-facing reference,e.g. "966811") and the manage_booking_url. This numeric reservation_id is whatthat appears on thecustomerconfirmation emailANDandwhatthat 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,yourmanage_booking_urldriver(tracking,viewbooking details,and payonline(all major cards, Amex, Apple Pay, Google Pay, PayPal, Revolutpayment),Payprice,AliPay) using this link: {manage_booking_url}" - Shareand meeting_pointinstructions — ALWAYS includewith theterminal/location name from meeting_point.name (e.g. "Meeting point at Heathrow Terminal 2: ..."). Never show meeting instructions without specifying whichterminal orlocation. 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 aboutlocationpaymentname.optionsbooking_reference (cash or card/Apple Pay/Google Pay via manage booking linkAPL-xxxxxx)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 itisexplicitly returned by the quote tool. TheanMCPinternalservertag,isnot theonly source of truth forcustomer'spricing.reference. BOOKINGS WITHOUT AN ACCOUNT: passenger_email is REQUIRED ⟨27 unchanged words⟩
⟨5 unchanged words⟩ ,"properties":{"airport_wait_minutes":{"description":"AIRPORTAirportPICKUPS:pickupsREQUIREDonly, and required for them (the tool refuses an airport pickup without it).:Minutesminutes after landingthe customeratwantswhich the driver is in the arrivals hall(30—/30, 45/, 60/or 90— most(aboutchoose45
Cancelaan existing booking. Free cancellation 12+ hours before pickup — ⟨31 unchanged words⟩ there is no refund). Under 12 hours before pickup this tool cannotcancel —cancel; thecustomer must call theofficeoffice.handlesAskitthebycustomerphone.forIdentityBOTHistheirthe booking referenceANDplus the email address usedaton the booking—(the same login asourthe website manage-bookinglogin.page);DothenotAPIcallrejectsthisa mismatch. The tool refuses withoutbothcustomer_confirmed:values.true.
⟨40 unchanged words⟩ :"string"},"customer_confirmed":{"description":"REQUIRED — mustMust betrue. Set it only AFTERtrue:youthehavecustomertoldhastheapprovedcustomercancellingexactlythiswhichspecific booking (reference, date, route)will be cancelled and that it is free (12+ hours beforeafterpickup),beingandtoldtheytheansweredcancellation
GetFixed prices for aEUROPEANEuropean / cross-Channel transfer fromLondon/UKLondon or the UK to a continentaldestinationcity (e.g. Ghent, Bruges, Paris, Brussels, Amsterdam, Cologne, Milan, Barcelona). Use this — NOT london_airport_transfer_quote — whenever the destination is OUTSIDE,thei.e.UKfor/destinationsonoutside theEuropean continent.UK. Returns per-car-type prices, fixed per vehicle and final, including the Eurotunnel crossing.Prices are FINAL — quote them exactly, no discounts.If the city is not configured, thetoolresultreturnshasthefound:falselistandoflists the available EU destinations;in that case tellthecustomer the team willofficeconfirmconfirms a price forit.other cities on request.
FindLivetheavailabilityclosestofavailableAPL carstonear a locationusing,livefrom fleet GPS.Give aThe targetasis an airport or cruise-port code (LHR, LGW, STN, LTN, LCY ⟨4 unchanged words⟩ a UK postcode, or lat+lng. Returns thenearest availablefree cars (online, not on a job) grouped by car class with a drive ETA rounded to 5minutes, grouped by car class;minutes; on hoststhat showwith UIitthe result renders as the 'Cars near you' card.AddWith `destination`whenthecustomerresult alsosays where they are going ('any cars near Heathrow to take me to the Hilton Paddington?'):carries theresultfinalthenfixedalsofarecarriesoftheeveryFIXEDcarFARESclass for that tripfor every car class(same pricing engine aslondon_airport_transfer_quote;the quote; pickup = now plus the nearest car's ETA unless transfer_date / transfer_time are given) and,thesocardashowspickupBookunderbuttons3—hoursdoawaynotalreadycallincludes thequote20%toollast-minuteassurcharge)well.andCalltheoncecardpershowsquestion;atheBookcardbuttonisperthecar.completemin_paxanswer.limitsSetthemin_paxresult torequirevehiclesaofvehicleat least that size.CustomersCustomer and partneragentscallersgetreceive an availability view only—: car class (Saloon / People Carrier / ⟨4 unchanged words⟩ , seats and ETA for up to 5cars;cars,NOnever a driver name, vehicle, plate, position, distance or fleet size (driver details are sharedonlyafter a booking is confirmed). Staffseecallersthesee full detail and can include busy drivers.Prices are final — quote them exactly as returned.
Get theThe driver's recorded GPS route (breadcrumb trail) for a booking's trip—: the paththe driveractuallydrovedriven, with adistance/durationdistancesummary.andUseduration summary, for route playback orto verify aattendancedriverchecks.attended.TheTrailtrail is recorded only while the driver is on the job and kept for 30 days.NeedsIdentity is the booking reference(andplus the passengeremail unlessemail;you'restaffinternalcallersstaffmayusinguse the numeric reservation ID).alone.
Get informationInformation 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,andanyother frequently askedquestions. Usequestions,thisansweredwhenfromcustomerstheaskAPLaboutknowledgehowbase (theservicesameworks.source as the website).
GetFixedLondonpricesairportfortransferapricestransfer between a UK airport or cruise port and any UK address orpostcode. Coverspostcode: all London airports (Heathrow, Gatwick, Stansted, Luton, City Airport), Edinburgh Airport,and all major UKthe cruise ports(Southampton, Dover,Portsmouth); transfersandtoPortsmouth, andfromany UK postcode nationwide. Returns every car type with itsfixedfinal price (GBP, per vehicle, final), passenger and suitcase capacity,and a photo (photo_url = full-size HTTPS image; car_photos ⟨13 unchanged words⟩ , for clients that cannot load external images), and — only.whenWhen passenger and suitcase countswerearegivensupplied,—the result also marks which cars fit and which one is recommended (capacity_assessedtells you).WHAT IS INCLUDED in everyEvery price:includes Meet & Greet in the arrivals hall (driver with a name board;exceptionat Heathrow Terminal 4,wherethe driver meets the customerOUTSIDEoutside at Zone 1 during the car-park works), flight monitoring, waiting time, airport parking and tolls.PRICESPricesAREareFINALfinal:quote them exactly as returnedAPL—offers no discounts,no rounding, noand"pricenothingafterisdiscount";addedAPLbeyondofferswhatnoisad-hocreturned.discounts.ThePOSTCODEpriceRULE:dependsifon thecustomer gives only a city ortraveltowndate ("Windsor", "Manchester") or justseasonal"London"and/peak-date"centralpricing)London"and,askforthesame-dayfullpickups,postcodeonortheatimeprecise(rush-houraddressrules;BEFORE20%callinglast-minute—surchargeUKunderplace3nameshours).coverAcceptedwidelocations:areasairport andthe pricecruise-portandnames,pickupfullpointUKwouldpostcodes,bestreetwrong.addresses, London neighbourhoods, landmarks, stations and uniquely identifiablehotel names ARE fine for a quotehotels (Mayfair, Canary Wharf, Kings Cross, The Shard, Hilton Paddington).transfer_date is REQUIRED (the price dependsAonbarethecitydate)or—townasknamefor("Windsor",it"Manchester",never"centralguessLondon")it.isPassengersnotandasuitcasesvalidarelocation,optional:becauseifUKyouplacedonamesnotcoverknowwidethem,areasleaveandthemtheoutprice andthepickupresultpointsaysdependwhatonisthemissing.exact place. One pickup→to onedrop-off only;drop-off; extra stops are notpriced here (see the server instructions).priced.
⟨5 unchanged words⟩ ,"properties":{"destination":{"description":"DropoffDrop-off location—: full UK postcode (e.g. \"SL4 5LP\"for Windsor), full street address, a Londonneighbourhood/landmark/stationneighbourhood, landmark or station (Mayfair, The Shard, Kings Cross), or a uniquely identifiablehotel/airport name.hotelDoorNOTairportpassname.aA barecity/towncitynameorliketown name (\"Windsor\"or,
LookDetailsupofbookingandetailsexistingincludingbooking: status,price, paymentroute,driverpickupinfotime,and manage booking URL. For "where isprice,mypayment, driver"use track_driver alone (it already includesinformationtheoncejourneyassigned, and thedriver) — do not call both formanage-bookingoneURL.question.IdentityAskis thecustomer for BOTH theirbooking referenceANDplus the email address usedaton the booking—(the same login asourthe website manage-bookinglogin. Do notpage);callthethisAPItoolrejectswithoutabothmismatch.values.TheBookingbooking referencecan beis either theAPL-XXXXXXAPL-xxxxxx format from thecustomer'sconfirmation email,or the numericLTreservationID —ID; both work.
Get the assigned driver's live GPS position, vehicle details, photo,LiveETAstatusandof thejourney (pickup →driverdrop-off,onpickupantime).existingThisbooking:isassignmentthestateCOMPLETE(noanswerdrivertoyet'where/isassignedmywithoutdriver'GPS /'showlivemeposition), thedriver'driver's—position,callvehicleitdetails,oncephoto andanswer from its result; do NOT also call lookup_booking unless the customer asksETA,aboutand thebooking itselfjourney (pricepickup,paymentdrop-off,changespickup time).TheOncardhostsitwithrendersUIkeepstheupdatingresultbyrendersitself,assoanevertrackingcallcarditthatagainkeepsjustupdatingtoonrefresh.its own. GPS updates every 2 minutes with tunnel interpolation.Ask the customer forIdentityBOTHistheirthe booking referenceANDplus the email address usedaton the booking—(the same login asourthe website manage-bookinglogin. Do not callpage);thisthetoolAPIwithoutrejectsbothavalues.mismatch.
ValidateFlight details for a flight number andgetdateflightfromdetailstheincludingairline schedule: airline name, arrival airport, terminal,andscheduled arrivaltime. If thetimeresultandhasstatus. verified:false,means the flight wasNOTnot found in theairlineschedule for thatdate — tell the customer so, ask them to check the flight number and date, and do not calldate.itWorksverified.forUsefuturethisscheduledtoflights;verifyconfirms acustomer'sflightnumber before bookingandauto-detect the correctitsterminal.arrivalWorksterminalwithforfutureanscheduledairportflights.pickup.
⟨16 unchanged words⟩ "maxLength":4,"type":"string"},"destination":{"description":"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.","maxLength":200,"type":"string"},"include_on_job":{"description":"Also include drivers currently ⟨59 unchanged words⟩ "minimum":1,"type":"integer"},"passengers":{"description":"With destination: passenger count if the customer said it (marks the recommended car).","maximum":50,"minimum":1,"type":"integer"},"postcode":{"description":"UK postcode, e.g. ⟨7 unchanged words⟩ , e.g. \"SL4\".","maxLength":10,"type":"string"},"transfer_date":{"description":"With destination: travel date YYYY-MM-DD for a LATER trip. Default = today (Europe/London).","type":"string"},"transfer_time":{"description":"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, whose under-3-hours surcharge is already in the fare.","type":"string"}},"type":"object"}
⟨183 unchanged words⟩ RULE: if the customer gives only a city,townorareatown ("Windsor", "Manchester",) or just "London" / "central London"), ask for the full postcode or a precise ⟨10 unchanged words⟩ and the price and pickup point would bewrong;wrong. London neighbourhoods, landmarks, stations and uniquely identifiable hotel namesare fine.ARENeverfineguessfor a quote (Mayfair, Canary Wharf, Kings Cross, The Shard, Hilton Paddington). transfer_date is REQUIRED (the price depends on the date)or—aaskpassengerforcountit, 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).
⟨17 unchanged words⟩ 5LP\" for Windsor), full street address, a London neighbourhood/landmark/station (Mayfair, The Shard, Kings Cross), or a uniquely identifiable hotel/airport name. Do NOT pass a barecity/town/areacity/town name like \"Windsor\" or \"Manchester\" ⟨211 unchanged words⟩ HH:MM (Europe/London). Optional for a quote:,thebuttimepassofitdaywheneverdoesyounotknowchangeit:therush-hourprice,rulesbutandtransfers
⟨6 unchanged words⟩ ":{"airport_wait_minutes":{"description":"AIRPORT PICKUPSONLY:minutesREQUIRED (the tool refuses an airport pickup without it). Minutes after landing the customerneedswants the driver ready (e.g. 30, 45, 60, 90 — ~45 European, ~60 international). Pass the figure youconfirmedagreed with the customer; it sets the actual driver wait. Also set transfer_time = landing time + this many minutes.If omitted on an airport pickup the wait can default to only 15 minutes.","maximum":180,"minimum":0,"type":"numberinteger"},"car_type":{"description":"CarThe car type the customer chose from the quote (e.g. \"Saloon\", \"People Carrier\", \"Executive Saloon\").Auto-selected—ifREQUIRED.notNeverspecified.pick a car for the customer.","maxLength":50,"type":"string"} ⟨205 unchanged words⟩ "passenger_email":{"description":"Passenger email addressfor— REQUIRED: it receives the confirmation and, with the booking reference, is the customer's key to manage the booking later.","format":"email","maxLength":100,"type":"string"},"passenger_name ⟨23 unchanged words⟩ ,"type":"string"},"passengers":{"default":1,"description":"Exact number of passengerstravelling. MANDATORY for every bookingtravelling —askREQUIRED. Ask the customer explicitly even if they pre-picked the largestcar. Never default to 1 without asking;car; never assume from car_type.","maximum":50,"minimum":1,"type":"numberinteger"},"special_requests":{"description":"Any special ⟨11 unchanged words⟩ ,"type":"string"},"suitcases":{"default":1,"description":"Number ofsuitcases/largesuitcasesbags./ large bags (hand luggage does not count) — REQUIRED. Ask the customer explicitly.","maximum":50,"minimum":0,"type":"numberinteger"},"train_number":{"description":"Train number ⟨61 unchanged words⟩ :"string"},"whatsapp_opt_in":{"description":"Whether the customer agreedREQUIREDto—receivethetheircustomer'sbookingactualconfirmationanswer,driver details and pickup updates on WhatsApp at passenger_phonenever(tellassumed.themAsk: \"Airport Pickups LondonMaywillwe send yourbookingconfirmation, driver details and pickup updates to this number onWhatsApp;WhatsApp? (reply STOP any time to optout\"out)\".Defaulttruetrue.=Passyes, falseif they declined=—no (we thenkeep the record and contact them byuse email/phoneinstead.).","type":"boolean"}},"required":["origin","destination","transfer_date","transfer_time","passenger_name","passenger_phone","passenger_email","passengers","suitcases","car_type","whatsapp_opt_in"],"type":"object"}
Cancel a booking. Free cancellation 12+ hours before pickup — noadminfee,fee.full refund. Under 12 hours the booking cannot be cancelledviaonline: 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 theoffice on +44 20 8688 7744.office. Ask the customer for BOTH their booking reference ⟨22 unchanged words⟩
⟨37 unchanged words⟩ "maxLength":20,"type":"string"},"customer_confirmed":{"description":"REQUIRED — must be true. Set it only AFTER you have told the customer exactly which booking (reference, date, route) will be cancelled and that it is free (12+ hours before pickup), and they answered yes. The tool refuses without it.","type":"boolean"},"email":{"description":"Passenger email on the ⟨20 unchanged words⟩ string"}},"required":["booking_ref","email","customer_confirmed"],"type":"object"}
⟨33 unchanged words⟩ UK cruise ports (Southampton, Dover, Portsmouth). Transfers;availabletransfers to and from any UK postcodeand addressnationwide. Returnsavailableevery cartypestype withprices, passengeritscapacity,fixedandpriceluggage(GBP,capacity.perUsevehicle,bothfinal), passengercountand suitcasecount to recommend the right car.capacity,CRITICALa—photoPOSTCODE(photo_urlRULE:=Iffull-sizethelink;customerphoto_thumbgives=onlysmallainlinecity,imagetown,fororclientsareathatnamecannot(e.g.load"Windsor",external"Manchester"images),"Brighton",and"central—London")onlywithoutwhenapassengerspecificandstreetsuitcaseaddresscountsorwerefullgivenUK—postcode,whichALWAYScarsaskfitthemandforwhichtheonefullispostcoderecommended (e.g.capacity_assessed"SL4tells5LP"you)or a precise address BEFORE calling this tool. UK city names cover wide areas — pricing and pickup accuracy.dependWHATonISaINCLUDEDspecificinpostcode.everyNeverprice:guess,Meetnever&substituteGreetaindefault,theandarrivalsneverhallproceed(driver withjustacitynamename.board;HotelexceptionnamesHeathrowareTerminalacceptable4,onlywhereifthetheydriveraremeetsuniquelytheidentifiable.customerTheOUTSIDEsameatruleZoneapplies1toduring thepickupcar-parkifworks),itflightismonitoring,notwaitingantime, airportor cruise port. IMPORTANT:parkingTheandpricestolls.returnedPRICESareARE FINAL—: quote themto the customerexactly asprovided. DoreturnedNOT—applyno discounts,donoNOTrounding,calculateno "yourprice after discount", do NOT modify the price in any way.; APLdoes notoffersofferno ad-hocdiscounts via thisdiscounts.tool.POSTCODEALWAYSRULE:tellif the customer:"All prices are fixed and include MeetgivesandonlyGreetaservicecity,insidetowntheorairportareaterminal("Windsor",—"Manchester",your"centraldriverLondon")waitsask foryoutheatfullarrivalspostcodewithor anamepreciseboard."addressThisBEFOREiscallinga—keyUKfeatureplaceofnameseverycoverAPLwidebookingareas andcustomers should know it is included. RENDERING: This tool returns each car's photo as inline imagethecontentprice(attachedandautomaticallypickupalongsidepointthewouldtext).beThewrong;photosuniquelyappearidentifiableinhotelthenameschatarebyfine.themselves.NeverInguessyourareply,datejustorwriteaeachpassengercar'scount:captionif("CaryouTypedo—notNknowpassengersthem,N bagsleave—them£price")out and thecustomer will see the matching photo above the caption. DO NOT include markdown image syntax like  — that produces broken "Show Image"resultplaceholders.saysJustwhattextiscaptions.missing.
⟨119 unchanged words⟩ ,"type":"string"},"passengers":{"default":1,"description":"Number of passengers,(determinesONLYrecommendedifcarthetype)customer has told you. Do not guess or default: without it the result has capacity_assessed:false, no \"fits\" flags and no recommended car.","maximum":50,"minimum":1,"type":"numberinteger"},"suitcases":{"default":1,"description":"Number ofsuitcases/largesuitcases / large bags (helpsmediumrecommendsuitcases;thehandrightluggagecar