transcapi-mcp
OfficialYou can query live public transport data for Great Britain and Ireland via read-only MCP tools.
Search for towns, postcodes, bus/tram/rail stops, and rail stations by name or proximity.
Get live bus and rail departures/arrivals, including expected times, platforms, delays, cancellations, and disruption reasons.
Inspect every stop or station on a specific bus or train service, with live status and vehicle position where available.
Find live buses near a location, optionally filtered by line or operator.
Check planned works, incidents, and line status by area, mode, operator, line, or journey route.
Plan public transport journeys with walking, fares, and live bus positions, currently for South/West Yorkshire and West Sussex.
All tools are read-only and require a TransCAPI API key.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@transcapi-mcp When's the next train from Leeds to York, and is it on time?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TransCAPI MCP server
Lets AI assistants such as Claude answer questions about public transport in Great Britain and Ireland with live data: "When's the next train from Leeds to York, and is it on time?", "Where's the 52 bus?", "Is anything disrupting my route home?"
It connects an assistant to TransCAPI, which covers England, Scotland, Wales and the island of Ireland (plus the Netherlands and Belgium): stops and places, bus and rail departures with live running, live bus positions, journey planning with rail fares, disruptions matched to a route, and measured bus punctuality.
Setup
Get a free API key at https://www.transcapi.com/signup (200 requests a day, every endpoint).
Add the server to your MCP client. For Claude Desktop, in
claude_desktop_config.json:{ "mcpServers": { "transcapi": { "command": "uvx", "args": ["transcapi-mcp"], "env": { "TRANSCAPI_API_KEY": "your-key" } } } }For Claude Code:
claude mcp add transcapi --env TRANSCAPI_API_KEY=your-key -- uvx transcapi-mcpOr install it yourself with
pip install transcapi-mcpand runtranscapi-mcp.
Related MCP server: mcp-tfl-journey
Tools
Tool | What it answers |
| Find a town, village, postcode or stop by name |
| Bus, tram and rail stops near a point, with which way the buses go |
| Rail stations near a point |
| What's leaving (or arriving at) a bus stop, with live times for tracked buses |
| Live trains at a station: expected times, platforms, cancellations, delay reasons |
| Every station one train calls at, live for today |
| Every stop one bus journey calls at, and where the bus is now |
| Buses on the road near a point, with delays where tracked |
| Planned works, incidents and line status, by area, line or a journey's route |
| Public transport journeys between two points (South and West Yorkshire and West Sussex for now) |
All tools are read-only.
Configuration
Variable | |
| Required. Your TransCAPI key. |
| Optional. Defaults to |
Attribution
TransCAPI is built on official open data. If you show its data to other people, credit the sources as described at https://www.transcapi.com/docs/data-sources.
Licence
MIT.
Available Tools
10 toolsbus_departuresBRead-onlyIdempotent
What is leaving (or, with board="arrivals" or "both", arriving at) a bus
stop. Tracked buses have an expected time and delay_seconds; others show
the timetabled time with source gtfs_scheduled.
Inputs: atcocode (required), board, limit, minutes_ahead. Returns: result
bus_serviceARead-onlyIdempotent
Every stop one bus journey calls at, the days it runs, and where the bus is
now if it is running. Take trip_id from bus_departures or live_buses.
Inputs: trip_id (required). Returns: result
disruptionsARead-onlyIdempotent
Planned works, incidents and line status: bus and tram across Great Britain,
plus Tube, DLR, Overground, Elizabeth line and London Trams. Filter by area
(lat/lon/radius), mode, operator or line. To ask what affects a particular
journey, pass its route as path (an encoded polyline, e.g. a leg's
leg_geometry from plan_journey): line numbers repeat across towns, so this
is more reliable than line.
Inputs: lat, lon, line, mode, +5 more. Returns: result
live_busesARead-onlyIdempotent
Buses on the road within radius metres (up to 10000) of a point, nearest
first, each linked to the journey it is working (trip_id) and with
delay_seconds where tracked. Filter by line (e.g. "52") or operator.
Inputs: lat (required), lon (required), line, radius, +1 more. Returns: result
nearby_stationsARead-onlyIdempotent
Rail stations within radius metres of a point, with their CRS codes for
rail_departures.
Inputs: lat (required), lon (required), limit, radius. Returns: result
nearby_stopsBRead-onlyIdempotent
Bus, tram and rail stops within radius metres of a point, nearest first.
Each has an atcocode for bus_departures and towards saying which way its
buses go.
Inputs: lat (required), lon (required), limit, radius. Returns: result
plan_journeyARead-onlyIdempotent
Public transport journeys between two points, with walking, fares and live
positions of buses already running. datetime is ISO 8601 (default now);
arrive_by treats it as the latest arrival. Currently covers South and West
Yorkshire and West Sussex: elsewhere it returns 422 outside_coverage, which
means not covered rather than no route.
Inputs: to_lat (required), to_lon (required), from_lat (required), from_lon (required), +4 more. Returns: result
rail_departuresARead-onlyIdempotent
Live trains leaving (or arriving at, with board="arrivals" or "both") a
station: expected times, platforms, cancellations and delay reasons from
National Rail, plus station messages. crs_code is the 3-letter code,
e.g. LDS for Leeds.
Inputs: crs_code (required), board, limit, minutes_ahead. Returns: result
search_placesARead-onlyIdempotent
Find towns, villages, postcodes (full or partial, e.g. "S1") and stops by name. Places sharing a name are ranked by size. Give lat/lon to sort by distance from there.
Inputs: query (required), lat, lon, limit. Returns: result
train_serviceARead-onlyIdempotent
Every station one train calls at. For a train running today, each call has
live status, expected and actual times, and the platform at its next
station. Take trip_id from rail_departures.
Inputs: trip_id (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool targets a clearly distinct query type: place search, nearby stops/stations, mode-specific departures, live buses, disruptions, journey/service details, and journey planning. The only potential overlaps (nearby_stops vs nearby_stations, bus_departures vs live_buses) are resolved by explicit output identifiers and descriptions.
All names use snake_case and are readable, with mostly noun-based resource names. Two tools use verb-led names (search_places, plan_journey), which is a minor deviation from the dominant noun-phrase pattern.
Ten tools is well-scoped for a public transport API, covering distinct query categories without redundancy. Each tool has a clear purpose and earns its place.
The surface covers search, nearby stops/stations, departures, live vehicles, disruptions, service details, and journey planning. Minor gaps exist, such as direct lookup by stop/station identifier and dedicated tram live departures, but most workflows are supported.
Maintenance
Related MCP Connectors
Read-only public transit departures, stop search, and city coverage for bus and train users.
Get date-specific quotes and book private UK airport and cruise-port transfers through your AI assistant. Compare vehicle options, validate flights, retrieve bookings, amend details and cancel with customer confirmation. No registration required to start, subject to service limits; optional API-key and OAuth access for registered integrations. Transfer fares are payable separately and cancellation conditions apply. Live demo and connection instructions: https://ai.airport-pickups-london.com/ Technical documentation: https://mcp.airport-pickups-london.com/docs
Cached UK train departures and qualified platforms, powered by National Rail Enquiries.
41Live UK rail boards, journey planning, train history, units, lifts, disruptions, punctuality.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to access real-time Transport for London data, including tube/bus arrivals, line status, journey planning, and disruptions.1-
- AlicenseBqualityDmaintenanceProvides real-time Transport for London journey data, including routes, alerts, and disruptions, allowing AI assistants to search journeys and get station information.17 npm4ISC
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to query live Transport for London data, including service status, arrivals, journey planning, bike points, crowding, and fares.1MIT
- AlicenseAqualityBmaintenanceEnables LLM clients to search stops, plan journeys, check live departures, service alerts, nearby locations, and vehicle positions using Transport for NSW open data, with per-request API key authentication.101MIT