Live barrier status and closure forecasts for ~1,600 UK level crossings. Public data, no auth.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
The ten UK level crossings with the most predicted road-closed time today. Takes no arguments. Each line gives the rank, crossing name, predicted minutes closed across the whole day, and a status URL ending .md. The ranking is computed from today's timetable once per day, shortly after UK midnight, and the build timestamp is included in the reply — it is a whole-day total, not a live reading, so use crossing_status for what a barrier is doing now. Briefly unavailable right after a restart while the first build runs.
This tool takes no arguments.
The ten UK level crossings with the most predicted road-closed time today. Takes no arguments. Each line gives the rank, crossing name, predicted minutes closed across the whole day, and a status URL ending .md. The ranking is computed from today's timetable once per day, shortly after UK midnight, and the build timestamp is included in the reply — it is a whole-day total, not a live reading, so use crossing_status for what a barrier is doing now. Briefly unavailable right after a restart while the first build runs.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Live barrier status, the next-30-minute closure timeline and approaching trains for ONE crossing, as markdown. Forecasts are rebuilt per request from the live train feeds, so the answer changes minute to minute. Informational only — never a substitute for the signals and barriers at the crossing itself. An ambiguous name returns the candidate URL words to choose between; an unknown one asks you to call list_crossings first.
| Argument | Type | Description |
|---|---|---|
| crossing* | string | The crossing's URL word as returned by list_crossings (e.g. 'thatcham'), or its name — spaces are accepted and hyphenated internally. |
{
"type": "object",
"required": [
"crossing"
],
"properties": {
"crossing": {
"type": "string",
"description": "The crossing's URL word as returned by list_crossings (e.g. 'thatcham'), or its name — spaces are accepted and hyphenated internally."
}
}
}Nearest listed level crossings to a point, closest first. Returns one line per crossing — distance in MILES, then name, type, region and a status URL ending .md. Distance is straight-line (great circle) between the point and the crossing, NOT distance by road or along the railway: it answers 'which crossings are near this place', not 'which will this train reach next'.
| Argument | Type | Description |
|---|---|---|
| lat* | number | Latitude in WGS84 decimal degrees, e.g. 51.3958. Positive is north. |
| lon* | number | Longitude in WGS84 decimal degrees, e.g. -1.2637. NEGATIVE is west, which is most of Great Britain. |
| limit | integer | How many crossings to return, nearest first; clamped to 1-25. |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude in WGS84 decimal degrees, e.g. 51.3958. Positive is north."
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude in WGS84 decimal degrees, e.g. -1.2637. NEGATIVE is west, which is most of Great Britain."
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 25,
"minimum": 1,
"description": "How many crossings to return, nearest first; clamped to 1-25."
}
}
}Search UK level crossings by name, URL word or region name (substring, case-insensitive). Returns one line per match — name, crossing type, region, and a status URL ending .md that returns that crossing's live markdown status. Reports the total match count and returns the first `limit`; there is no pagination, so narrow the query to see different matches. Names starting with the query sort first.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum matches to return; clamped to 1-50. The total match count is reported regardless. |
| query* | string | Substring of a crossing name, its URL word, or a region name, e.g. 'thatcham' or 'kent'. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Maximum matches to return; clamped to 1-50. The total match count is reported regardless."
},
"query": {
"type": "string",
"description": "Substring of a crossing name, its URL word, or a region name, e.g. 'thatcham' or 'kent'."
}
}
}