# Airport Pickups London

> Quote, book, track and see live cars near UK airports. Fixed prices; no signup to start.

- name: com.airport-pickups-london/london-airport-transfers
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 69/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.airport-pickups-london%2Flondon-airport-transfers
- tools: https://api.protogrid.dev/v1/servers/com.airport-pickups-london%2Flondon-airport-transfers/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "london-airport-transfers": {
      "type": "http",
      "url": "https://mcp.airport-pickups-london.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-1d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 69/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 3 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 11 of 11 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 3 of 11 tools declare all four hints; missing: london_airport_transfer_quote (idempotentHint); validate_flight (idempotentHint); lookup_booking (idempotentHint); …
- pass `tools.token_cost`: about 5,445 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 23 tool changes in 30 days
- fail `stability.rug_pull`: 5 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 11, about 5,445 tokens to load them all
- tool set hash: 1d3d4f92b12cc8340f9cc3057a732562
- tools last changed: 2026-10-20T15:05:50.621Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.airport-pickups-london/london-airport-transfers.svg)](https://protogrid.dev/servers/com.airport-pickups-london/london-airport-transfers)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-20 `get_service_info` changed (description)
  - before: 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.
  - after: Information 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).
- 2026-10-20 `find_nearest_drivers` changed (description, inputSchema)
  - before: 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.
  - after: Live 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, so a pickup under 3 hours away already includes the 20% last-minute surcharge) 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.
- 2026-10-20 `get_driver_route` changed (description)
  - before: 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).
  - after: The 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.
- 2026-10-20 `track_driver` changed (description) **meaning changed**
  - before: 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.
  - after: Live 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.
- 2026-10-20 `cancel_booking` changed (description, inputSchema)
  - before: 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.
  - after: Cancel 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.
- 2026-10-20 `amend_booking` changed (description)
  - before: 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 info@aplcars.com from the original address, quoting the booking reference.
  - after: Modify 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 info@aplcars.com from the original address, quoting the booking reference.
- 2026-10-20 `lookup_booking` changed (description) **meaning changed**
  - before: 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.
  - after: Details 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 either the APL-xxxxxx format from the confirmation email or the numeric reservation ID; both work.
- 2026-10-20 `validate_flight` changed (description) **meaning changed**
  - before: 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.
  - after: Flight 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.
- 2026-10-20 `book_london_airport_transfer` changed (description, inputSchema) **meaning changed**
  - before: 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}" - S
  - after: Create 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 (tracking, booking details, online payment), the price, and meeting_point with the terminal or location name. booking_reference (APL-xxxxxx) is an internal tag, not the customer's reference. 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.
- 2026-10-20 `eu_transfer_quote` changed (description)
  - before: 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.
  - after: Fixed 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.

Full history: https://api.protogrid.dev/v1/servers/com.airport-pickups-london%2Flondon-airport-transfers/changes

## Remotes

- https://mcp.airport-pickups-london.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (11)

- `amend_booking`: Modify 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 info@aplcars.com from the original address, quoting the booking reference.
- `book_london_airport_transfer`: Create 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 (tracking, booking details, online payment), the price, and meeting_point with the terminal or location name. booking_reference (APL-xxxxxx) is an internal tag, not the customer's reference.

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_booking`: Cancel 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.
- `eu_transfer_quote`: Fixed 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.
- `find_nearest_drivers`: Live 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, so a pickup under 3 hours away already includes the 20% last-minute surcharge) 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.
- `get_driver_route`: The 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.
- `get_service_info`: Information 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).
- `london_airport_transfer_quote`: Fixed 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) and, for same-day pickups, on the time (rush-hour rules; 20% last-minute surcharge under 3 hours). 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.
- `lookup_booking`: Details 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 either the APL-xxxxxx format from the confirmation email or the numeric reservation ID; both work.
- `track_driver`: Live 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.
- `validate_flight`: Flight 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.
