Swiss Public Transport

io.github.tpjnortonPublished by GitHub account tpjnortonv0.1.10Updated Oct 24, 2026

Swiss public transport — journey planning, live stationboards, delays, and SBB ticket links.

Overview

AI-generated overview

Local MCP server for Swiss public transport: plan journeys, check live stationboards and delays, and get SBB ticket links.

What you can do
Resolve stations, stops and points of interest by name or coordinates, with candidate lists for ambiguous names. Plan A-to-B journeys with via points, transport-type filters and arrival-time mode. Read live departures or arrivals from any stop. Build SBB.ch booking links for a planned journey so a ticket can be bought in one click.
When to use it
Useful when an assistant should answer Swiss travel questions: connections between places, next departures, real-time delays, or a link to buy a ticket. A lightweight, zero-configuration option for quick journey planning rather than official operational feeds.
Requirements
Runs locally over stdio, launched with uvx from the PyPI package, so a Python/uv runtime is needed. No account, API key or environment variables; it queries the free transport.opendata.ch service, so network access is required. Desktop client only.
Before you install
Journey and stationboard data come from the third-party transport.opendata.ch service, not official SBB feeds, so accuracy and availability depend on it. Booking links only open SBB.ch; the server does not buy tickets or handle payment. It is read-only and asks for no credentials.

Installation

In SourceWeft

  1. Open Swiss Public Transport in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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:

bash
uvx swiss-public-transport-mcp

Claude Desktop

Add to claude_desktop_config.json:

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

bash
git clone https://github.com/tpjnorton/swiss-public-transport-mcp.gitcd swiss-public-transport-mcpuv syncuv 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 servermalkreide/swiss-transport-mcp
Data sourcetransport.opendata.chopentransportdata.swiss (official)
API keynonerequired (free signup)
Tools4 (journey planning + booking links)11 (planning + disruptions + occupancy + fares + formation)
Setupone commandper-API key configuration
Best forquick journey planning, fast LLM responses, ticket purchase flowrich operational data, official feeds

The two servers cover overlapping but distinct use cases — you can install both side by side.

Source: README.md at commit d356107

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.10LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts