tpjnorton avatar

Swiss Public Transport

tpjnorton/swiss-public-transport-mcp

Wraps the free transport.opendata.ch API to plan journeys, check live departures, and generate SBB ticket booking links across Switzerland's entire public transport network. No API key or signup required. Four tools cover location search, A to B routing with via points and transport filters, stationboard queries, and direct deep links into SBB.ch for ticket purchase. Output is formatted as compact text rather than raw JSON to keep LLM context usage low. Station name disambiguation is built in. If you need official opentransportdata.swiss feeds for disruption alerts, occupancy forecasts, or train formation data, the related malkreide server covers those with an API key.

GitHub stars
1
tools
4
transport
STDIO
last updated
May 15, 2026

Tools

4 tools

Public tool metadata for what this MCP can expose to an agent.

search_locationsResolve a station/stop/POI by name or coordinates

Resolve a station/stop/POI by name or coordinates

No parameter schema in public metadata yet.

plan_journeyPlan A → B with via, transport-type filters, arrival-time mode

Plan A → B with via, transport-type filters, arrival-time mode

No parameter schema in public metadata yet.

get_stationboardLive departures or arrivals from any stop

Live departures or arrivals from any stop

No parameter schema in public metadata yet.

get_booking_linkBuild an SBB.ch URL for a journey so the user can buy a ticket

Build an SBB.ch URL for a journey so the user can buy a ticket

No parameter schema in public metadata yet.

Sponsors

Readme

swiss-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

ToolPurpose
search_locationsResolve a station/stop/POI by name or coordinates
plan_journeyPlan A → B with via, transport-type filters, arrival-time mode
get_stationboardLive departures or arrivals from any stop
get_booking_linkBuild an SBB.ch URL for a journey so the user can buy a ticket

Install

No install needed — run directly with uvx:


View the full README on GitHub

Details

Repository
github.com/tpjnorton/swiss-public-transport-mcp
Package
swiss-public-transport-mcp
Transport
STDIO
Registry
MCP registry, active