TransitRadar — UK trains and buses
Live UK rail departures, trains, unit numbers, station lifts, disruptions and daily punctuality.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"transitradar": {
"url": "https://transitradar.co.uk/mcp"
}
}
}Remote endpoints
https://transitradar.co.uk/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢disruptions(operatorName, text, limit)
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.
Input Schema
{
"type": "object",
"properties": {
"operatorName": {
"description": "Operator name or code, e.g. 'Northern' or 'NT'.",
"type": [
"string",
"null"
],
"default": null
},
"text": {
"description": "Text to match in the notice, e.g. 'Whitehaven', 'signalling'.",
"type": [
"string",
"null"
],
"default": null
},
"limit": {
"description": "Maximum notices to return, 1-30.",
"type": "integer",
"default": 15
}
}
}🟢get_train(planningId, date)
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.
Input Schema
{
"type": "object",
"properties": {
"planningId": {
"description": "Planning ID / UID, e.g. 'C04207'. Get one from find_train or station_departures.",
"type": "string"
},
"date": {
"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).",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"planningId"
]
}🟢bus_stop_departures(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.
Input Schema
{
"type": "object",
"properties": {
"stop": {
"description": "Stop name with town, optionally a stop letter, or a stop code: e.g. 'Trafalgar Square London stop X', '490015196OF'.",
"type": "string"
}
},
"required": [
"stop"
]
}🟢station_info(station)
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.
Input Schema
{
"type": "object",
"properties": {
"station": {
"description": "Station name, CRS code (KGX) or TIPLOC.",
"type": "string"
}
},
"required": [
"station"
]
}🟢station_departures(station, type, rows, includeNonPassenger)
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.
Input Schema
{
"type": "object",
"properties": {
"station": {
"description": "Station name, CRS code (KGX) or TIPLOC.",
"type": "string"
},
"type": {
"description": "'departures' (default) or 'arrivals'.",
"type": "string",
"default": "departures"
},
"rows": {
"description": "How many trains to return, 1-30.",
"type": "integer",
"default": 10
},
"includeNonPassenger": {
"description": "Include empty stock, freight and staff trains.",
"type": "boolean",
"default": false
}
},
"required": [
"station"
]
}🟢daily_performance(date, operators)
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.
Input Schema
{
"type": "object",
"properties": {
"date": {
"description": "Completed date, yyyy-MM-dd, e.g. '2026-09-26'.",
"type": "string"
},
"operators": {
"description": "How many operators to include, largest first, 1-40.",
"type": "integer",
"default": 12
}
},
"required": [
"date"
]
}🟢find_train(query, date)
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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "Search text, e.g. 'GWR 1A20', '09:45 from Bath Spa', 'York to Leeds'.",
"type": "string"
},
"date": {
"description": "Date to search, yyyy-MM-dd. Defaults to today (UK time).",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"query"
]
}🟢find_unit(number, date)
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.
Input Schema
{
"type": "object",
"properties": {
"number": {
"description": "Five- or six-digit unit or vehicle number, e.g. '360107'.",
"type": "string"
},
"date": {
"description": "Date, yyyy-MM-dd. Defaults to today (UK time).",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"number"
]
}🟢search_stations(query, includeJunctions)
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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "Station name or code, e.g. 'kings cross', 'Leeds', 'MAN'.",
"type": "string"
},
"includeJunctions": {
"description": "Also return junctions, yards and other non-station timing points.",
"type": "boolean",
"default": false
}
},
"required": [
"query"
]
}Community
Evidence