MCP Server

TransitRadar — UK trains and buses

uk.co.transitradar/transitradar
Travel & Hospitality Public & reachable MCP 2025-11-25

What this MCP does

Provides live and scheduled UK rail and bus information, including departures, train running details, disruptions, station data, accessibility, and unit allocations.

bus_stop_departures
Next buses from a stop
Next buses from a bus stop anywhere in Great Britain. Takes a stop name with its town or area; many stops share a name across the country, so 'Trafalgar Square' alone can land in Greater Manchester while 'Trafalgar Square London' finds Charing Cross. A stop letter can follow, e.g. 'Trafalgar Square London stop X'. A stop's ATCO/NaPTAN code also works. Live predictions in London (TfL); elsewhere the timetable, so a 'scheduled' time is not a live estimate. Other matching stops are returned alongside.
Read only
Input schema
{'type': 'object', 'required': ['stop'], 'properties': {'stop': {'type': 'string', 'description': "Stop name with town, optionally a stop letter, or a stop code: e.g. 'Trafalgar Square London stop X', '490015196OF'."}}}
daily_performance
How the railway did on a day
TransitRadar's own record of one completed day on GB passenger rail: how many trains ran, how many were cancelled, the share of recorded arrivals within five minutes at their destination, the same share counting each cancellation as a failure, per-operator figures, and the commonest delay and cancellation reasons. Measured at the destination, so it is stricter than, and not comparable with, the industry's published PPM. Available from 2026-08-06 up to yesterday; where fewer than half of arrivals were recorded, no punctuality figure is given.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['date'], 'properties': {'date': {'type': 'string', 'description': "Completed date, yyyy-MM-dd, e.g. '2026-09-26'."}, 'operators': {'type': 'integer', 'default': 12, 'description': 'How many operators to include, largest first, 1-40.'}}}
disruptions
Rail disruptions
Current GB rail incidents and planned engineering work from National Rail's KnowledgeBase: what is affected, the operators, the dates and a link to National Rail's notice. Optionally filter by operator (name or two-letter code) or by any text, such as a station, line or reason.
Read only
Input schema
{'type': 'object', 'properties': {'text': {'type': ['string', 'null'], 'default': None, 'description': "Text to match in the notice, e.g. 'Whitehaven', 'signalling'."}, 'limit': {'type': 'integer', 'default': 15, 'description': 'Maximum notices to return, 1-30.'}, 'operatorName': {'type': ['string', 'null'], 'default': None, 'description': "Operator name or code, e.g. 'Northern' or 'NT'."}}}
find_train
Find a train
Search the GB rail timetable for specific trains. The query combines terms: an operator and a headcode ('LNER 1S09', 'EMR 1H26'), a time and a station ('12:19 from Corby' — matched within about ten minutes either side), two stations ('Corby to St Pancras', which also finds trains calling at both), or a planning ID / UID ('C12345', or its first few characters). A headcode alone is not unique: the same four characters run in several parts of the country at once, so results for one headcode can be different trains, told apart by origin and destination. Returns planning IDs to pass to get_train.
Read only
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'date': {'type': ['string', 'null'], 'default': None, 'description': 'Date to search, yyyy-MM-dd. Defaults to today (UK time).'}, 'query': {'type': 'string', 'description': "Search text, e.g. 'GWR 1A20', '09:45 from Bath Spa', 'York to Leeds'."}}}
find_unit
Where is a train unit
Look up a GB passenger train unit or carriage by the five- or six-digit number painted on it (e.g. '360107'): which service it is working now, the other services it is booked to work today, and the last calling point it was reported at. This comes from the operator's rolling-stock allocation, which is a plan and may be wrong during disruption. The position is the last calling point reported, not a live GPS fix — the train is somewhere beyond it.
Read only
Input schema
{'type': 'object', 'required': ['number'], 'properties': {'date': {'type': ['string', 'null'], 'default': None, 'description': 'Date, yyyy-MM-dd. Defaults to today (UK time).'}, 'number': {'type': 'string', 'description': "Five- or six-digit unit or vehicle number, e.g. '360107'."}}}
get_train
Train details and live running
Full details of one train by its planning ID (UID, e.g. 'C04207'): every public calling point with booked, expected and actual times, platforms and per-stop cancellations, plus — for today's trains — where it was last reported and how late. A cancellation can apply to only some stops. 'lastReport' is the last place signalling or movement data placed the train, not a GPS position. Reasons are National Rail's own words.
Read only
Input schema
{'type': 'object', 'required': ['planningId'], 'properties': {'date': {'type': ['string', 'null'], 'default': None, 'description': 'Date the train runs, yyyy-MM-dd. Defaults to today (UK time). Past dates return recorded times where the archive holds them (about 14 days of per-stop detail).'}, 'planningId': {'type': 'string', 'description': "Planning ID / UID, e.g. 'C04207'. Get one from find_train or station_departures."}}}
search_stations
Search stations
Find GB railway stations by name or code. Returns each station's three-letter CRS code (e.g. KGX), its TIPLOC and whether it has step-free access. The CRS code is what the other station tools accept.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': "Station name or code, e.g. 'kings cross', 'Leeds', 'MAN'."}, 'includeJunctions': {'type': 'boolean', 'default': False, 'description': 'Also return junctions, yards and other non-station timing points.'}}}
station_departures
Live departures or arrivals
Live departure or arrival board for a GB railway station, from National Rail's Darwin feed: booked time, expected time, actual time once reported, platform, operator and any delay or cancellation reason. An expected time equal to the booked one means no revision has been published, which usually means running to plan. A missing expected time is not a statement that the train is on time. Reasons are National Rail's own wording.
Read only
Input schema
{'type': 'object', 'required': ['station'], 'properties': {'rows': {'type': 'integer', 'default': 10, 'description': 'How many trains to return, 1-30.'}, 'type': {'type': 'string', 'default': 'departures', 'description': "'departures' (default) or 'arrivals'."}, 'station': {'type': 'string', 'description': 'Station name, CRS code (KGX) or TIPLOC.'}, 'includeNonPassenger': {'type': 'boolean', 'default': False, 'description': 'Include empty stock, freight and staff trains.'}}}
station_info
Station details and lift status
Details of a GB railway station: address, managing operator, facilities, step-free access, industry codes (CRS, TIPLOC, STANOX, NLC) and, where Network Rail publishes it, the live status of each public lift. Lift status is 'In service', 'Out of service' or 'Data not available'; the last means the status is not known, and Network Rail's wording for it advises checking before travel. A station with no lifts listed is not necessarily a station without lifts; it may not report live status yet.
Read only
Input schema
{'type': 'object', 'required': ['station'], 'properties': {'station': {'type': 'string', 'description': 'Station name, CRS code (KGX) or TIPLOC.'}}}
Changed
search_stations
Sept. 30, 2026, 2:40 a.m.
Changed
find_unit
Sept. 30, 2026, 2:40 a.m.
Changed
find_train
Sept. 30, 2026, 2:40 a.m.
Changed
daily_performance
Sept. 30, 2026, 2:40 a.m.
Changed
station_departures
Sept. 30, 2026, 2:40 a.m.
Changed
station_info
Sept. 30, 2026, 2:40 a.m.
Changed
bus_stop_departures
Sept. 30, 2026, 2:40 a.m.
Added
search_stations
Sept. 28, 2026, 2:40 a.m.
Added
find_unit
Sept. 28, 2026, 2:40 a.m.
Added
find_train
Sept. 28, 2026, 2:40 a.m.
Added
daily_performance
Sept. 28, 2026, 2:40 a.m.
Added
station_departures
Sept. 28, 2026, 2:40 a.m.
Added
station_info
Sept. 28, 2026, 2:40 a.m.
Added
bus_stop_departures
Sept. 28, 2026, 2:40 a.m.
Added
get_train
Sept. 28, 2026, 2:40 a.m.
Added
disruptions
Sept. 28, 2026, 2:40 a.m.