{
  "markdown": "# oebb-mcp-server\n\n<!-- mcp-name: io.github.slettmayer/oebb-mcp-server -->\n\n[![PyPI](https://img.shields.io/pypi/v/oebb-mcp-server.svg)](https://pypi.org/project/oebb-mcp-server/)\n[![Python](https://img.shields.io/pypi/pyversions/oebb-mcp-server.svg)](https://pypi.org/project/oebb-mcp-server/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\nMCP server for [OeBB](https://www.oebb.at) (Austrian Federal Railways) train data. Query Austrian train stations, departures, connections, and service alerts directly from LLMs via the [Model Context Protocol](https://modelcontextprotocol.io).\n\n## Installation\n\n### Claude Desktop\n\nAdd to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"oebb\": {\n      \"command\": \"uvx\",\n      \"args\": [\"oebb-mcp-server\"]\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add oebb -- uvx oebb-mcp-server\n```\n\n### From source (development)\n\n```json\n{\n  \"mcpServers\": {\n    \"oebb\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--from\", \"/path/to/oebb-mcp-server\", \"oebb-mcp-server\"]\n    }\n  }\n}\n```\n\n## Tools\n\n### `search_station`\n\nSearch OeBB stations by name. Returns matching stations with IDs, coordinates, and types.\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `query` | string | required | Station name (e.g. \"Wien Hbf\") |\n| `max_results` | int | 10 | Maximum results |\n\n### `station_board`\n\nFetch live departures or arrivals at a station. Provide either `station_id` or `station_name`.\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `station_id` | string | — | OeBB station ID (e.g. \"1190100\") |\n| `station_name` | string | — | Station name (auto-resolved) |\n| `board_type` | string | \"DEP\" | \"DEP\" for departures, \"ARR\" for arrivals |\n| `max_journeys` | int | 10 | Maximum journeys |\n\n### `trip_search`\n\nSearch train connections between two stations. Supports time planning and direct-only filtering.\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `from_station_id` | string | — | Departure station ID |\n| `from_station_name` | string | — | Departure station name |\n| `to_station_id` | string | — | Arrival station ID |\n| `to_station_name` | string | — | Arrival station name |\n| `max_connections` | int | 5 | Maximum connections |\n| `time` | string | now | ISO 8601 time (e.g. \"2026-04-15T08:00:00\") |\n| `time_mode` | string | \"departure\" | \"departure\" or \"arrival\" |\n| `direct_only` | bool | false | Only direct connections |\n\n### `service_alerts`\n\nFetch current OeBB service alerts and disruptions.\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `max_alerts` | int | 20 | Maximum alerts |\n| `product_filter` | 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) |\n\n## Development\n\n```bash\n# Install dependencies\nuv sync\n\n# Lint & format\nruff check .\nruff format .\n\n# Run unit tests\npytest tests/ -v -m \"not integration\"\n\n# Run integration tests (hits real OeBB API)\npytest tests/ -v -m integration\n```\n\n## License\n\nMIT\n",
  "bytes": 3286,
  "sha": "9d612a6da0652b0dc6ad66af0a7205af29f01ece904fe61b7760a13aa02bd22c",
  "repo_slug": "slettmayer/oebb-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_slettmayer_oebb_mcp_server_df49cef6/readme"
}