io.github.malkreide/swiss-transport-mcp
OJP 2.0 journey planning, SIRI-SX disruptions, occupancy, fares, train formation
Versions
0.3.3latestTools 11
transport_search_stop Search for Swiss public transport stops and stations by name. Searches across all Swiss public transport stops (train stations, tram/bus stops, boat stations). Returns stop IDs needed for transport_departures and transport_trip_plan. Returns: Matching stops with id, name, coordinates, and transport modes.
transport_nearby_stops Find public transport stops near a geographic location. Useful for finding stops near a school, address, or point of interest. Swiss coordinates only (lat 45–48.5, lon 5.5–10.8). Returns: Nearby stops with id, name, coordinates, and distance info.
transport_departures Get upcoming departures or arrivals at a Swiss public transport stop. Shows real-time information including delays when available. Like a digital departure board at a train station. Use transport_search_stop first to get the stop_id. Returns: Departures with line, destination, scheduled time, real-time time, delay, and platform.
transport_trip_plan Plan a journey between two locations in Switzerland. Works like the SBB app: enter origin and destination (stop IDs or place names), get multiple trip options with transfers, durations, and transport modes. For best results, use stop IDs from transport_search_stop. Place names (addresses) also work but may be slower. Returns: Trip options, each with legs (individual journey segments), total duration, number of transfers, and transport modes used.
transport_search_datasets Search the Swiss transport open data catalog (~90 datasets). Find datasets about timetables, real-time data, GTFS feeds, accessibility info, traffic counters, and more from opentransportdata.swiss. Returns: Matching datasets with name, description, formats, and download URLs.
transport_get_dataset Get full details of a specific transport dataset. Returns metadata, description, all available resources (files/APIs) with download URLs and formats. Use transport_search_datasets first to find the dataset ID. Returns: Full dataset metadata, resources with URLs, and format info.
get_transport_disruptions Aktuelle Störungsmeldungen im Schweizer öffentlichen Verkehr abrufen. Liefert Informationen zu Zugausfällen, Verspätungen, Gleisänderungen, Streckensperrungen und anderen Betriebsstörungen. Args: filter_text: Suchbegriff zum Filtern (z.B. "Zürich", "S-Bahn", "IC 1", "Bern-Thun"). Leer = alle Störungen. language: Sprache der Meldungen. DE (Deutsch), FR (Französisch), IT (Italienisch), EN (Englisch). max_results: Maximale Anzahl Ergebnisse (1-50). Standard: 15. Beispiele: - Alle aktuellen Störungen: get_transport_disruptions() - Störungen in Zürich: get_transport_disruptions(filter_text="Zürich") - S-Bahn Störungen: get_transport_disruptions(filter_text="S-Bahn") - Strecke prüfen: get_transport_disruptions(filter_text="Bern")
get_train_occupancy Auslastungsprognose für Schweizer Züge abrufen. Zeigt, wie voll ein bestimmter Zug voraussichtlich sein wird, aufgeteilt nach 1. und 2. Klasse pro Streckenabschnitt. Auslastungsstufen: wenig belegt, mässig belegt, nur Stehplätze. Zwei Abfragemodi: 1. Nach Zugnummer: train_number + operator angeben 2. Nach Strecke: departure_station + arrival_station angeben Args: train_number: Zugnummer (z.B. "1009", "IC 708"). Zugtyp-Präfixe werden automatisch entfernt. departure_station: Abfahrtsort für Streckensuche (z.B. "Zürich HB") arrival_station: Ankunftsort für Streckensuche (z.B. "Bern") operation_date: Betriebstag YYYY-MM-DD (Standard: heute). Prognosen sind bis 3 Monate voraus verfügbar. operator: Betreiber-Code. "11"=SBB, "33"=BLS, "65"=Thurbo, "82"=SOB. Beispiele: - Bestimmter Zug: get_train_occupancy(train_number="1009") - BLS-Zug: get_train_occupancy(train_number="2806", operator="33") - Strecke: get_train_occupancy(departure_station="Zürich HB", arrival_station="Bern")
get_ticket_price Ticketpreise für eine ÖV-Verbindung in der Schweiz abfragen. Berechnet den Fahrpreis für eine Verbindung inklusive Routeninformation. Zeigt reguläre Tarife an. Rabatte (Halbtax, GA) sind möglicherweise nicht vollständig berücksichtigt. Args: origin: Abfahrtsort (z.B. "Zürich HB", "Wädenswil", "Bern") destination: Ankunftsort (z.B. "Bern", "Luzern", "Basel SBB") departure_time: Abfahrtszeit im Format YYYY-MM-DDTHH:MM (z.B. "2026-03-01T08:00"). Standard: jetzt. travel_class: Reiseklasse. "first" = 1. Klasse, "second" = 2. Klasse. Beispiele: - Einfache Preisabfrage: get_ticket_price(origin="Zürich HB", destination="Bern") - Mit Zeitangabe: get_ticket_price(origin="Wädenswil", destination="Luzern", departure_time="2026-03-01T08:00") - 1. Klasse: get_ticket_price(origin="Basel SBB", destination="Genf", travel_class="first") Hinweis: Für verbindliche Preise immer sbb.ch oder den Schalter konsultieren.
get_train_composition Zugzusammensetzung und Wagenreihung für einen Schweizer Zug abrufen. Zeigt die Wagenreihung, Klassen, Sektoren, Ausstattung (Rollstuhlplatz, Velohaken, Speisewagen, Familienzone) und Gleisbelegung an. Args: train_number: Zugnummer (z.B. "2806", "1009", "708"). Nur die Nummer, ohne Zugtyp-Präfix. railway_company: Eisenbahnunternehmen (EVU). Erlaubt: SBBP (SBB), BLSP (BLS), RhB (Rhätische Bahn), SOB (Südostbahn), THURBO, TPF, TRN, MBC, OeBB, VDBB, ZB. operation_date: Betriebstag YYYY-MM-DD. Standard: heute. Wichtig: Stop-based nur für HEUTE verfügbar. show_details: Detailgrad. "stop_based" = kompakt (empfohlen), "vehicle_based" = pro Fahrzeug, "full" = alles. Beispiele: - SBB-Zug: get_train_composition(train_number="1009") - BLS-Zug: get_train_composition(train_number="2806", railway_company="BLSP") - Detailliert: get_train_composition(train_number="708", show_details="vehicle_based") Typische Fragen, die damit beantwortet werden können: - "Hat der IC nach Bern einen Speisewagen?" - "Wo kann ich mit dem Rollstuhl einsteigen?" - "In welchem Sektor hält die 1. Klasse?" - "Gibt es Veloplätze im Zug?"
check_transport_api_status Prüft den Verbindungsstatus aller konfigurierten Transport-APIs. Zeigt an, welche APIs verfügbar sind, ob die API-Keys gültig sind und ob die Dienste erreichbar sind.
Permissions 3
network medium filesystem low env_vars low