Bahn Transfer
Server Details
Re-plan a delayed rail journey: onward options, transfer buffers, one recommendation
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool has a clearly distinct role in the workflow: search_stations resolves names to stop_ids, departures retrieves upcoming trains at a stop, and plan_transfer replans a journey for a delayed train. The descriptions explicitly link outputs to inputs, reducing misselection risk.
All names use snake_case and are readable, but conventions are slightly mixed: departures is a bare noun while plan_transfer and search_stations follow a verb_noun pattern. This is a minor inconsistency rather than a confusing one.
Three tools is a tight, well-scoped set for a narrow transfer-replanning purpose. It is slightly thin but each tool earns its place; no obvious redundancy.
The set covers the core lifecycle: resolve a station, inspect departures, and replan a transfer for a delayed trip. Minor gaps exist, such as no generic point-to-point journey planning or station metadata, but the stated workflow is complete.
Available Tools
3 toolsdeparturesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| station | Yes | stop_id from search_stations. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered; the description adds genuinely new context beyond that: it is free of cost/quota concerns, the delay value is live/current, and results are 'upcoming' (forward-looking ordering). It does not discuss pagination or what happens when limit is exhausted, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the 'Free.' qualifier and the payload contents, then the chaining hint. No filler and nothing redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters and no output schema, the description usefully takes on the burden of describing the return fields and the cost model. The only remaining gap is behavior of the limit parameter, which is minor for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'station' is documented as a stop_id from search_stations, but 'limit' (default 10, max 30) has no schema description and the tool description never explains it either. The description clarifies that results are upcoming departures, which implies ordering, but the truncation parameter remains unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (upcoming departures) and enumerates exactly what comes back: trip_id, line, scheduled/actual time, and current delay. It is clearly distinct from plan_transfer and search_stations, though the noun-phrase phrasing lacks an explicit verb and uses 'stop_id' while the parameter is named 'station'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete downstream rule of thumb: take trip_id and feed it to plan_transfer for the train the traveller is already on, which tells the agent how this fits into a larger itinerary flow. It does not state when to prefer search_stations first or any exclusions, but the schema's 'stop_id from search_stations' covers the prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_transferAInspect
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'].
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination stop_id from search_stations. | |
| trip_id | Yes | trip_id from departures. | |
| min_buffer | No | Minimum transfer buffer in minutes. | |
| manual_delay | No | Known delay in minutes, if the feed has none. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior the single readOnlyHint=false annotation cannot convey: the tool is paid, priced at 1 USDC-cent per call, settled via x402 exact/EVM, and requires a documented unpaid-then-retry handshake with the payment payload in params._meta['x402/payment']. An agent cannot invoke this correctly without that information, and it is disclosed precisely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with no filler, and the payment/cost fact is front-loaded so the agent learns the price before anything else. The parenthetical 'x402 exact/EVM' is dense jargon but is genuinely load-bearing for the payment protocol.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of describing the return contents (buffers, connections with arrival times, one recommendation) and the payment failure path. It leaves error cases such as an unknown trip_id or insufficient payment uncovered, which is a minor residual gap for a 4-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces semantics by framing min_buffer as a 'per-stop transfer buffer' and manual_delay as the fallback when 'the feed has none', but it adds no formats, units, or constraints beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Re-plan a journey') plus the exact scenario ('a traveller already on a delayed train') and the output shape (per-stop transfer buffer, onward connections with arrival times, one safe recommendation). It is distinguishable from departures/search_stations, which the schema names as the sources of trip_id and stop_id, though it never explicitly contrasts itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering condition — the traveller is already en route and the train is delayed — and spells out the two-step invocation protocol (call unpaid to get the PaymentRequired object, then retry with the payload). It stops short of naming when to prefer departures instead, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stationsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Station or city name, e.g. 'Leipzig Hbf'. | |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint; the description adds real behavioral context — that the service is free, and the precise rule under which a bare city name collapses to a single rail hub, including that a 'resolution' object exposes the rule and rejected alternatives. Doesn't describe rate limits or result ordering, but the disambiguation semantics are unusually well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the cost note and the core verb, then builds to the resolution rule and the downstream usage hint. Three tight sentences with no filler; the leading 'Free.' is terse but earns its place as a cost signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of describing the return shape (stop_id plus a 'resolution' object) and the conditional resolution behavior. It leaves the ambiguity case implicit — what happens when multiple candidates exist — and says nothing about how 'limit' truncates results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The 'q' parameter is already documented in the schema, and the description adds genuine meaning by explaining how a bare city name resolves. However, 'limit' (default 5, max 20) is never mentioned, leaving half the parameters undocumented in both schema and description, so it does not compensate for the 50% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource: 'Resolve a station or city name to a stop_id.' The output artifact (stop_id) is named, and the tool is clearly distinguishable from siblings departures and plan_transfer, which consume rather than produce IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent how to use the result: 'Use the returned stop_id as \'to\' in plan_transfer,' which establishes the chaining pattern. It does not state when not to use it or how it relates to departures, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
departures - First observed
plan_transfer - First observed
search_stations
Related MCP Connectors
Live UK rail boards, journey planning, train history, units, lifts, disruptions, punctuality.
Check UK Delay Repay, UK261 flights and TfL refunds. Save claims and check commutes on request.
Belgian trains for AI agents: live journeys, departures, delays, disruptions. Free, no key.
GB (National Rail) train times: live departures, platforms, timetables and journey planning.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceLets an AI assistant plan public transport journeys across Germany and other countries, with legs, platforms, delays and alerts, plus stop departures, full trip details, place search, and live DB station boards. Tickets and prices are not included.AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceA Claude skill + MCP server that tells you how Deutsche Bahn delays will affect your trip — not just whether your train is late.MIT
- AlicenseAqualityBmaintenanceLets Claude answer questions about GB National Rail trains, including live departures and arrivals, platforms, timetables, service details, and journey planning with live delay overlay.9MIT
- FlicenseNot gradedqualityBmaintenanceEvaluates airport layover time budgets of 3–8 hours, factoring immigration clearance buffers and round-trip metro/taxi latencies into a net usable exploration window. Curates timed sightseeing and culinary micro-tours with safety advice and zero connection risk.7-
Glama MCP Gateway
Add one secure layer between your agents and this server.