db-timetables-mcp
Integrates with the official DB Timetables API to provide live station boards for German stations: station lookup (name to EVA/DS100 code), departures and arrivals with planned and expected times, delays, platform changes, cancellations, disruption messages, and train routes, merged from the planned timetable and live changes feed.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@db-timetables-mcp When does the next train leave Dresden Hbf?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
db-timetables-mcp
MCP server for live Deutsche Bahn station boards. Ask Claude (or any MCP client) things like:
"When does the next train leave Dresden Hbf?"
"Is the ICE to Berlin from Leipzig delayed?"
"Any platform changes or cancellations at Köln Hbf in the next 2 hours?"
It uses the official DB Timetables API and merges the planned timetable with the live changes feed. It is read-only.
Tools
Tool | What it returns |
| Station name → EVA number and DS100 code |
| Departure board: planned and expected time, delay, platform (and if it changed), cancellations, disruption messages, route |
| Same data for arrivals, with the origin of each train |
departures and arrivals accept a station name or an EVA number, an optional start time (local Berlin time in ISO format, default now), hours (1–6) and limit.
Related MCP server: irail-mcp
Setup
Create a free account at developers.deutschebahn.com, create an application and subscribe it to the Timetables API (the free plan allows 60 calls/min).
Copy your Client ID and Client Secret (API Key).
Add the server to your MCP client.
Claude Code
git clone https://github.com/kukshaus/db-timetables-mcp.git
claude mcp add db-timetables -s user \
-e DB_CLIENT_ID=your-client-id -e DB_API_KEY=your-api-key \
-- uv --directory /path/to/db-timetables-mcp run db-timetables-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"db-timetables": {
"command": "uv",
"args": ["--directory", "/path/to/db-timetables-mcp", "run", "db-timetables-mcp"],
"env": { "DB_CLIENT_ID": "your-client-id", "DB_API_KEY": "your-api-key" }
}
}
}On macOS you can keep the keys out of config files and store them in the Keychain instead. The server reads them when the env vars are missing:
security add-generic-password -s db-api-client-id -a "$USER" -w 'your-client-id'
security add-generic-password -s db-api-key -a "$USER" -w 'your-api-key'Example output
22:12 RE 50 → Leipzig Hbf platform 9
22:18 S 2 → Dresden Flughafen platform 14
22:22 TLX 76537 → Görlitz platform 14Development
uv sync
uv run pytestLimits
Covers stations operated by DB Station&Service (all major German stations).
No journey planning (A → B with transfers). The Timetables API is per station.
The free plan allows 60 requests/min. One board for 1 hour costs 2 requests.
License
MIT. Not affiliated with Deutsche Bahn AG. Data © DB Station&Service AG via the DB API Marketplace.
Available Tools
3 toolsarrivalsArrivalsBRead-only
Arrival board with live delays, platform changes, cancellations and messages.
Inputs: station (required), hours, limit, start. Returns: object
departuresDeparturesARead-only
Departure board with live delays, platform changes, cancellations and messages.
Inputs: station (required), hours, limit, start. Returns: object
find_stationFind StationBRead-only
Find German railway stations by name. Returns name, EVA number and DS100 code.
Inputs: query (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: one resolves station names to identifiers, one returns outbound departures, one returns inbound arrivals. There is no plausible way an agent would misselect among them.
find_station follows a verb_noun pattern while departures and arrivals are bare plural nouns, so the convention is mixed. The names are still unambiguous and readable, but there is no single predictable pattern an agent can rely on.
Three tools is on the thin side, but for a narrow live-board service each tool earns its place, and the station lookup is a necessary prerequisite for the two board tools. It is slightly minimal rather than bloated.
Station lookup plus live departure and arrival boards cover the core lookup flow, but the surface has notable gaps for a 'timetables' domain: no journey/connection planning, no scheduled timetable for a specific train, and no way to query a board by station ID without re-searching. Agents needing trip planning will hit a dead end.
Maintenance
Related MCP Connectors
Cached UK train departures and qualified platforms, powered by National Rail Enquiries.
41Live UK rail boards, journey planning, train history, units, lifts, disruptions, punctuality.
Journeys, departures, line courses, disruptions in Germany; nearby sharing as currently reported.
Live Polish rail data: boards for every station, delays, PLK disruptions, train punctuality.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides unified access to Deutsche Bahn APIs for real-time railway data, station information, timetables, disruptions, parking, and accessibility services.23-
- AlicenseAqualityDmaintenanceProvides Belgian railway travel information via the iRail API, including station search, live departures/arrivals, route planning, and network disturbances.5MIT
- FlicenseNot gradedqualityDmaintenanceEnables querying Swiss public transport (trains, buses, trams, boats) for stations, connections, and station boards via the opendata.ch API.-
- AlicenseAqualityDmaintenanceProvides access to Deutsche Bahn's timetable data through MCP, enabling real-time train schedules, station search, and change tracking for German railway stations.4259 npmMIT