Re-plan a delayed rail journey: onward options, transfer buffers, one recommendation
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.
Free. Upcoming departures at a stop_id, with trip_id, line, scheduled/actual time and current delay. Use trip_id as 'trip_id' in plan_transfer for the train the traveller is already on.
stop_id from search_stations.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http bahn-transfer https://bahn.1f916.de/mcp
Free. Upcoming departures at a stop_id, with trip_id, line, scheduled/actual time and current delay. Use trip_id as 'trip_id' in plan_transfer for the train the traveller is already on.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| station* | string | stop_id from search_stations. |
{
"type": "object",
"required": [
"station"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 30,
"minimum": 1
},
"station": {
"type": "string",
"description": "stop_id from search_stations."
}
}
}PAID (x402 exact/EVM, 1 USDC-cent per call). Re-plan a journey for a traveller already on a delayed train: per-stop transfer buffer, onward connections with arrival times, and one safe recommendation. Call it without payment to receive the PaymentRequired object; retry with the payment payload in params._meta['x402/payment'].
| Argument | Type | Description |
|---|---|---|
| to* | string | Destination stop_id from search_stations. |
| trip_id* | string | trip_id from departures. |
| min_buffer | integer | Minimum transfer buffer in minutes. |
| manual_delay | integer | Known delay in minutes, if the feed has none. |
{
"type": "object",
"required": [
"trip_id",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "Destination stop_id from search_stations."
},
"trip_id": {
"type": "string",
"description": "trip_id from departures."
},
"min_buffer": {
"type": "integer",
"default": 8,
"minimum": 0,
"description": "Minimum transfer buffer in minutes."
},
"manual_delay": {
"type": "integer",
"description": "Known delay in minutes, if the feed has none."
}
}
}Free. Resolve a station or city name to a stop_id. A bare city name resolves to that city's main rail hub only when exactly one candidate exists; the answer then carries a 'resolution' object naming the rule, the chosen station and the rejected alternatives. Use the returned stop_id as 'to' in plan_transfer.
| Argument | Type | Description |
|---|---|---|
| q* | string | Station or city name, e.g. 'Leipzig Hbf'. |
| limit | integer |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Station or city name, e.g. 'Leipzig Hbf'."
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 6, 2026.