Skip to main content
Glama
mfy-apl

Airport Pickups London MCP Server

Airport Pickups London — MCP Server & A2A Agent

A production MCP server and A2A agent for London airport transfer bookings. Implements the Model Context Protocol (MCP) for AI tool use and the Agent-to-Agent (A2A) protocol for inter-agent communication.

Live at mcp.airport-pickups-london.com

Architecture

┌─────────────────────────────────────────────────────┐
│                   Express Server                     │
│                                                      │
│  ┌──────────┐  ┌──────────┐  ┌───────────────────┐  │
│  │ MCP SDK  │  │   A2A    │  │    REST API       │  │
│  │ /mcp     │  │ /a2a     │  │ /api/quote        │  │
│  │          │  │          │  │ /api/book          │  │
│  └────┬─────┘  └────┬─────┘  └────────┬──────────┘  │
│       │              │                 │             │
│       └──────────────┼─────────────────┘             │
│                      │                               │
│              ┌───────┴───────┐                       │
│              │  Tools Layer  │                       │
│              │  - getQuote   │                       │
│              │  - createBook │                       │
│              └───────┬───────┘                       │
│                      │                               │
│     ┌────────────────┼────────────────┐              │
│     │                │                │              │
│  ┌──┴───┐    ┌───────┴──────┐  ┌─────┴────┐        │
│  │ MySQL│    │ London Tech  │  │ Google   │        │
│  │  DB  │    │ Dispatch API │  │ Maps API │        │
│  └──────┘    └──────────────┘  └──────────┘        │
└─────────────────────────────────────────────────────┘

MCP Tools

Tool

Description

london_airport_transfer_quote

Get fixed prices for airport/cruise transfers to any UK address

book_london_airport_transfer

Create a real booking with passenger details, flight info

validate_flight

Validate flight numbers and auto-detect terminals

MCP Configuration

Add to your MCP client (Claude Desktop, Cursor, etc.):

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

A2A Protocol

Agent card served at /.well-known/agent.json — discoverable by any A2A-compatible agent (Google Gemini Enterprise, Azure AI, etc.).

Skills

  • get_quote — Fixed-price quotes for all London airports (LHR, LGW, STN, LTN, LCY), Edinburgh (EDI), and UK cruise ports

  • create_booking — End-to-end booking with flight validation, meet & greet, child seats

  • validate_flight — Real-time flight status with terminal auto-detection via FlightStats

Self-Registration

External AI agents can register for API access:

curl -X POST https://mcp.airport-pickups-london.com/a2a/register \
  -H "Content-Type: application/json" \
  -d '{"name": "My Agent", "email": "agent@example.com"}'

Returns an API key for authenticated access to all endpoints.

REST API

For direct integration without MCP or A2A:

# Get a quote
curl -X POST https://mcp.airport-pickups-london.com/api/quote \
  -H "x-api-key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from": "Heathrow Terminal 5", "to": "W1K 1BE"}'

# Create a booking
curl -X POST https://mcp.airport-pickups-london.com/api/book \
  -H "x-api-key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Heathrow Terminal 5",
    "to": "W1K 1BE",
    "date": "2026-04-15",
    "time": "14:00",
    "passengers": 2,
    "carType": "Standard Saloon",
    "passengerName": "John Smith",
    "passengerPhone": "+447700900000",
    "passengerEmail": "john@example.com",
    "flightNumber": "BA123"
  }'

ChatGPT Action

OpenAPI spec at /public/openapi.json — can be imported as a ChatGPT custom action.

Setup (Self-Hosting)

git clone https://github.com/mfy-apl/apl-mcp-server.git
cd apl-mcp-server
npm install
cp .env.example .env
# Fill in your credentials in .env
node server.js

Requires:

  • Node.js 18+

  • MySQL database with pricing tables

  • London Tech dispatch API account (for bookings)

  • Google Maps API key (for distance calculations)

Tech Stack

  • Runtime: Node.js + Express

  • MCP: @modelcontextprotocol/sdk with Streamable HTTP transport

  • A2A: Custom JSON-RPC implementation (v0.2.5)

  • Auth: OAuth 2.1 (PKCE), API key, Bearer token

  • Database: MySQL (mysql2)

  • Payments: Stripe (optional, for partner bookings)

  • LLM: Gemini or Claude (optional, for natural language chat)

  • Flight Data: FlightStats API

Coverage

  • Airports: Heathrow (all terminals), Gatwick (N/S), Stansted, Luton, London City, Edinburgh

  • Cruise Ports: Southampton, Dover, Portsmouth, Tilbury, Harwich

  • Destinations: Any UK address or postcode

  • Car Types: Saloon, Estate, MPV, 8-Seater, Executive, VIP

License

MIT

-
license - not tested
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mfy-apl/apl-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server