About Swiss Public Transport
Swiss Public Transport is an MCP server for planning journeys across Switzerland’s public transport network. It helps travelers find connections and live departures, resolve ambiguous stop names, and obtain SBB ticket links, using transport.opendata.ch without an API key.
Key features
- 01Search stations, stops, and points of interest
- 02Plan journeys with route filters
- 03View live departures and arrivals
- 04Generate SBB booking links
- 05Disambiguate matching locations
Use cases
- 01Plan a trip between Swiss locations
- 02Check departures from a station
- 03Find the correct stop among similar names
- 04Open an SBB ticket link for a journey
MCP support
Exposes four transport tools to MCP clients: location search, journey planning, stationboards, and SBB booking links. It uses transport.opendata.ch and requires no API key.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEswiss-public-transport-mcp
MCP server for Swiss public transport — connections, stationboards, real-time delays, and direct booking links for SBB.
Wraps transport.opendata.ch — free, no API key, no signup. Covers the full Swiss network (SBB, Postauto, regional, trams, buses, ships, cableways).
Why this server
- Zero config. Install and go — no account, no token, no env vars.
- Booking links. Returns deep links into SBB.ch so the user can buy a ticket in one click.
- Disambiguation built in. Ambiguous station names return candidates instead of failing silently.
- Compact, model-friendly output. Formatted text designed for LLM context windows, not raw JSON dumps.
Tools
| Tool | Purpose |
|---|---|
search_locations | Resolve a station/stop/POI by name or coordinates |
plan_journey | Plan A → B with via, transport-type filters, arrival-time mode |
get_stationboard | Live departures or arrivals from any stop |
get_booking_link | Build an SBB.ch URL for a journey so the user can buy a ticket |
Install
No install needed — run directly with uvx:
uvx swiss-public-transport-mcp
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"swiss-public-transport": {
"command": "uvx",
"args": ["swiss-public-transport-mcp"]
}
}
}
Config file location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Development
git clone https://github.com/tpjnorton/swiss-public-transport-mcp.git
cd swiss-public-transport-mcp
uv sync
uv run swiss-public-transport-mcp
Related project
If you need official opentransportdata.swiss data — SIRI-SX disruption alerts, occupancy forecasts, OJP Fare ticket prices, train formation — see malkreide/swiss-transport-mcp. It exposes ~11 tools across the official OJP 2.0 / SIRI / CKAN APIs and requires a (free) API key from the opentransportdata.swiss API Manager.
| this server | malkreide/swiss-transport-mcp | |
|---|---|---|
| Data source | transport.opendata.ch | opentransportdata.swiss (official) |
| API key | none | required (free signup) |
| Tools | 4 (journey planning + booking links) | 11 (planning + disruptions + occupancy + fares + formation) |
| Setup | one command | per-API key configuration |
| Best for | quick journey planning, fast LLM responses, ticket purchase flow | rich operational data, official feeds |
The two servers cover overlapping but distinct use cases — you can install both side by side.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.