Swiss Transport

liveTransportTravelEurope

Search Swiss public transport stations, get connections, and view live departure boards via Transport Open Data

3tools
0msauth
free tier50 calls/day

Tools

search_stationsrequired: query

Search for Swiss public transport stations (train, bus, tram) by name query.

Parameters
NameTypeDescription
queryreqstringStation name to search for (e.g., "Zurich HB", "Bern", "Geneva").
Try it
get_connectionsrequired: from, to

Get public transport connections between two Swiss locations. Returns up to the requested number of next departures.

Parameters
NameTypeDescription
fromreqstringDeparture station name or ID.
toreqstringArrival station name or ID.
limitoptnumberMaximum number of connections to return. Defaults to 4.
Try it
get_stationboardrequired: station

Get the live departure board for a Swiss public transport station.

Parameters
NameTypeDescription
stationreqstringStation name or ID to get the departure board for.
limitoptnumberMaximum number of departures to return. Defaults to 10.
Try it

Test with curl

The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/swisstransport/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/swisstransport/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_stations","arguments":{"query": "hello"}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("search_stations", {"query":"example"});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("search swiss public transport stations, get connections, and view live departure boards via transport open data");