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
| 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.
Metadata
Release files for swiss-public-transport-mcp 0.1.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| swiss_public_transport_mcp-0.1.10.tar.gz | 30.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| swiss_public_transport_mcp-0.1.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.6 kB
Release files / swiss_public_transport_mcp-0.1.10.tar.gz
| Download URL | swiss_public_transport_mcp-0.1.10.tar.gz |
|---|---|
| Size | 30.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8e271f41c5a54e6354b62fba893b9b8252feee51aaa5a5b5e719cce86d2e05cd
|
|
BLAKE2b-256 checksum How to use checksums |
f192a5417deeb1e507d279e2584e060e3b869811f336203b89e3217a95c1aa45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 15, 2026.
Transparency logRelease files / swiss_public_transport_mcp-0.1.10-py3-none-any.whl
| Download URL | swiss_public_transport_mcp-0.1.10-py3-none-any.whl |
|---|---|
| Size | 16.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f355a404ac96b7666a3ef5f985a7f16b9951502b0642a441ff285befefe90dc
|
|
BLAKE2b-256 checksum How to use checksums |
16562233b1a43b6174f0dca98fb4f969efc05298ccce80eb14904f7b442dee14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 15, 2026.
Transparency log