oebb-mcp-server
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., "@oebb-mcp-server Find train connections from Wien Hbf to Salzburg Hbf leaving tomorrow at 9 AM"
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.
oebb-mcp-server
MCP server for OeBB (Austrian Federal Railways) train data. Query Austrian train stations, departures, connections, and service alerts directly from LLMs via the Model Context Protocol.
Installation
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"oebb": {
"command": "uvx",
"args": ["oebb-mcp-server"]
}
}
}Claude Code
claude mcp add oebb -- uvx oebb-mcp-serverFrom source (development)
{
"mcpServers": {
"oebb": {
"command": "uvx",
"args": ["--from", "/path/to/oebb-mcp-server", "oebb-mcp-server"]
}
}
}Related MCP server: swiss-public-transport-mcp
Tools
search_station
Search OeBB stations by name. Returns matching stations with IDs, coordinates, and types.
Parameter | Type | Default | Description |
| string | required | Station name (e.g. "Wien Hbf") |
| int | 10 | Maximum results |
station_board
Fetch live departures or arrivals at a station. Provide either station_id or station_name.
Parameter | Type | Default | Description |
| string | — | OeBB station ID (e.g. "1190100") |
| string | — | Station name (auto-resolved) |
| string | "DEP" | "DEP" for departures, "ARR" for arrivals |
| int | 10 | Maximum journeys |
trip_search
Search train connections between two stations. Supports time planning and direct-only filtering.
Parameter | Type | Default | Description |
| string | — | Departure station ID |
| string | — | Departure station name |
| string | — | Arrival station ID |
| string | — | Arrival station name |
| int | 5 | Maximum connections |
| string | now | ISO 8601 time (e.g. "2026-04-15T08:00:00") |
| string | "departure" | "departure" or "arrival" |
| bool | false | Only direct connections |
service_alerts
Fetch current OeBB service alerts and disruptions.
Parameter | Type | Default | Description |
| int | 20 | Maximum alerts |
| int | 65535 | Product bitmask (1=ICE/RJX, 2=IC/EC, 4=NJ, 8=D/EN, 16=REX/R, 32=S-Bahn, 64=Bus, 128=Ferry, 256=U-Bahn, 512=Tram, 4096=private operators like Westbahn/RegioJet, 65535=all) |
Development
# Install dependencies
uv sync
# Lint & format
ruff check .
ruff format .
# Run unit tests
pytest tests/ -v -m "not integration"
# Run integration tests (hits real OeBB API)
pytest tests/ -v -m integrationLicense
MIT
Available Tools
4 toolssearch_stationA
Search OeBB stations by name.
Use this to find station IDs needed for other tools.
Returns matching stations with IDs, coordinates, and types.
Args:
query: Station name to search for (e.g. "Wien Hbf", "Salzburg")
max_results: Maximum number of results to return (default 10)
Inputs: query (required), max_results. Returns: result
service_alertsA
Fetch current OeBB service alerts and disruptions.
Returns active alerts with headlines, descriptions, affected stations,
and date ranges.
Args:
max_alerts: Maximum number of alerts to return (default 20)
product_filter: Product bitmask — 1=ICE/RJX, 2=IC/EC, 4=NJ,
8=D/EN, 16=REX/R, 32=S-Bahn, 64=Bus,
4096=private operators (Westbahn/RegioJet), 65535=all
Inputs: max_alerts, product_filter. Returns: result
station_boardA
Fetch live departures or arrivals at an OeBB station.
Provide either station_id or station_name (name is auto-resolved).
Returns train products, directions, planned/real times, and platforms.
Args:
station_id: OeBB station ID (e.g. "1190100" for Wien Hbf)
station_name: Station name to search for (e.g. "Wien Hbf")
board_type: "DEP" for departures (default), "ARR" for arrivals
max_journeys: Maximum number of journeys to return (default 10)
Inputs: board_type, station_id, max_journeys, station_name. Returns: result
trip_searchA
Search train connections between two OeBB stations.
Provide station IDs or names for departure and arrival stations.
Supports future trip planning via time/time_mode parameters.
Returns connections with departure/arrival times, duration, changes, and legs.
Args:
from_station_id: Departure station ID (e.g. "1190100")
from_station_name: Departure station name (e.g. "Wien Hbf")
to_station_id: Arrival station ID (e.g. "8100002")
to_station_name: Arrival station name (e.g. "Salzburg Hbf")
max_connections: Maximum connections to return (default 5)
time: ISO 8601 time (e.g. "2026-04-15T08:00:00"), defaults to now
time_mode: "departure" (default) or "arrival"
direct_only: Only show direct connections without changes (default false)
Inputs: time, time_mode, direct_only, to_station_id, +4 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool targets a distinct domain action: searching stations, retrieving station boards, planning trips, and fetching service alerts. There is no functional overlap between them.
Names use snake_case consistently but mix word orders: 'search_station' is verb_noun, 'station_board' is noun_noun, 'trip_search' is noun_verb, and 'service_alerts' is noun_noun. This makes the pattern less predictable, though still readable.
With only 4 tools, the server is tightly scoped to the core use cases of a railway information service: station lookup, live board, journey planning, and alerts. Each tool earns its place.
The surface covers the essential needs: finding stations, viewing live departures/arrivals, planning trips with advanced options, and checking disruptions. No obvious dead ends or missing operations for its stated purpose.
Maintenance
Related MCP Connectors
MCP server for China Railway 12306 ticket availability: schedules and seats by Chinese station name.
MCP server for China Railway 12306 ticket availability: schedules and seats by Chinese station name.
Swiss Transport MCP — wraps Transport Open Data API (free, no auth)
DB Rail MCP — German + European rail and public transport, keyless.
Related MCP Servers
- AlicenseAqualityDmaintenanceA zero-authentication MCP server for Swiss public transport, enabling users to query train connections, disruptions, station facilities, and plan journeys using natural language.121MIT
- AlicenseAqualityCmaintenanceMCP server for Swiss public transport — connections, stationboards, real-time delays, and direct booking links for SBB.426 PyPI1MIT
- FlicenseAqualityDmaintenanceMCP server for querying German public transport information, including station search, live departures/arrivals, and journey planning.51-
- AlicenseNot gradedqualityDmaintenanceMCP server for real-time German public transport data (HAFAS/VBN network). Enables querying departures, arrivals, journeys, and nearby stops using natural language.ISC