Remote MCP server for rail travel: resolves stations, lists departures, and re-plans a delayed journey with onward connections and one recommendation.
What you can do
Resolve station or city names to a stop_id, with a resolution object naming the rule used and rejected alternatives
List upcoming departures at a stop, including trip_id, line, scheduled and actual times, and current delay
Re-plan a journey for a traveller already on a delayed train, with per-stop transfer buffers, onward connections and arrival times, and one safe recommendation
When to use it
Useful when a traveller is already on a delayed train and needs onward connections, transfer buffers and a single safe recommendation, or when an assistant needs station IDs and live departure delays for a rail journey.
Requirements
Remote streamable HTTP endpoint; no authentication, environment variables or headers declared. The paid tool requires an x402 payment payload (EVM, Base) passed in params._meta; a wallet capable of paying 1 USDC-cent per call is needed.
Before you install
plan_transfer is paid: 1 USDC-cent per call via x402 on Base, so calls spend real funds and require a payment payload. The first unpaid call returns a PaymentRequired object. Station and departure lookups are free and read-only.
Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.citizen01-sid%2Fbahn-transfer/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.
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.
Parametersqrequiredlimit
departures
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.
Parameterslimitstationrequired
plan_transfer
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'].
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Reached in the last 30 daysRequired25 pts
Auth declaredRequired10 pts
Tools listedRequired15 pts
DescriptionRequired15 pts
Logo10 pts
Documentation15 pts
Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.
LicenseNot applicable
A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.