Transport for London
live DataSportsTransport for London (TfL) Unified API MCP — keyless.
Tools
line_status Current service status for London transport lines. Pass either a comma-separated list of modes (e.g. "tube,dlr") OR a specific lineId (e.g. "victoria", "central"). Returns each line with lineStatuses
No parameters required.
Try it
stop_search Search for stops/stations by name. Returns matches with a naptanId (the "id" field) used by the arrivals tool, plus modes, zone, and lat/lon.
No parameters required.
Try it
arrivals Real-time predicted arrivals at a stop. Pass the naptanId from stop_search (e.g. "940GZZLUOXC"). Results are sorted by timeToStation (seconds away), nearest first.
No parameters required.
Try it
plan_journey Plan a journey across London transport. from/to may be stop names, postcodes, or "lat,lon" coordinates. Returns journey options (legs, durations, modes). If a location is ambiguous, the API returns di
No parameters required.
Try it
bike_points Santander Cycle docking stations with live availability (bikes, empty docks, total docks in additionalProperties). Pass an optional search to filter by name/area; omit it to list all docking stations.
No parameters required.
Try it
disruptions Current disruptions for the given transport modes, with description and affected lines.
No parameters required.
Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/tfl/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' curl -X POST https://gateway.pipeworx.io/tfl/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"line_status","arguments":{}}}' Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("line_status", {}); // Or ask in plain English:
const answer = await px.ask("transport for london (tfl) unified api mcp — keyless");