io.github.malkreide/swiss-road-mobility-mcp
GBFS shared mobility, EV charging, DATEX II traffic, Park & Rail
Versions
0.5.3latestTools 15
road_find_sharing Find shared mobility vehicles and stations near a location in Switzerland. Searches for bikes, e-bikes, e-scooters, cars, and other shared vehicles within a radius around GPS coordinates. Returns real-time availability data from sharedmobility.ch. Like checking a mobility app: "What sharing options are near me?" Data source: sharedmobility.ch (Swiss Federal Office of Energy). No API key required – completely open data! Returns: JSON with nearby vehicles/stations, grouped by type, with availability status and booking app links.
road_search_sharing Search for shared mobility stations by name or address. Full-text search across all Swiss shared mobility stations. Useful when you know the station name but not the coordinates. Example: "Find all PubliBike stations near 'Bahnhof'" Returns: JSON with matching stations, their locations, and availability.
road_sharing_providers List all shared mobility providers operating in Switzerland. Shows which companies offer shared bikes, e-scooters, cars etc., what vehicle types they have, and links to their booking apps. Like checking the "About" page of a mobility platform. Returns: JSON with all providers, their vehicle types, and app links.
road_find_charger Find EV charging stations near a location in Switzerland. Searches ich-tanke-strom.ch data for nearby charging stations with real-time availability, plug types, and charging power. Like the "nearest charger" feature in an electric car's navigation. Data source: ich-tanke-strom.ch (Swiss Federal Office of Energy). No API key required – completely open data! Returns: JSON with nearby charging stations sorted by distance, including real-time status (free/occupied), plug types, charging power (kW), and operator information.
road_charger_status Check real-time availability of EV charging stations. Can check specific stations by ID, or get overall statistics for ALL charging points in Switzerland. Use road_find_charger first to get station IDs, then use this tool to check their current status. Returns: JSON with real-time status per station, or overall statistics (how many free/occupied/out of service).
road_check_status Check the health of all road mobility data sources. Tests connectivity to sharedmobility.ch and ich-tanke-strom.ch. Useful for diagnosing connection issues. Returns: JSON with status of each API endpoint.
road_traffic_situations Get current Swiss traffic events: accidents, roadworks, congestion. Fetches real-time traffic messages from ASTRA's DATEX II platform. Data is updated live by Swiss Traffic Management Center (VMZ-CH), cantonal police, and road operation units. Complements Phase 1: While road_find_sharing shows WHERE vehicles are available, this tool shows WHY a road is currently blocked. REQUIRES: OPENTRANSPORTDATA_API_KEY environment variable. Free registration: https://api-manager.opentransportdata.swiss Data source: ASTRA VMZ-CH via opentransportdata.swiss (DATEX II v2.3). Cache TTL: 2 minutes (real-time updates). Returns: JSON with list of traffic situations, each containing: - id: Situation identifier - records: List of situation records with: - category: Event type (accident/roadwork/congestion/etc.) - validity_status: active/revoked - start_time / end_time: Validity period - severity: highest/high/medium/low/lowest - description: Human-readable text (German preferred) - creation_time: When situation was created
road_traffic_counters Get real-time vehicle counts and speeds at Swiss traffic measurement stations. Finds nearby counting stations and returns live traffic flow data: vehicles per hour (separated by light/heavy vehicles) and average speeds. Data is updated every minute by ASTRA and cantonal road authorities. This is the «digital tally counter» of Swiss roads – precise, live, distinguishing passenger cars from trucks. Use case: «How busy is the A1 near Zurich right now?» or «How much truck traffic passes through Lucerne hourly?» REQUIRES: OPENTRANSPORTDATA_API_KEY environment variable. Free registration: https://api-manager.opentransportdata.swiss Data source: ASTRA & cantonal authorities via opentransportdata.swiss (DATEX II). Cache TTL: Site table 24h (static) + measurements 1 minute (real-time). Returns: JSON with nearby counting stations and their current measurements: - site_id: Unique station identifier - name: Station name - distance_km: Distance from search center - latitude / longitude: Station coordinates - supplier: Data provider (ASTRA, Kanton ZH, etc.) - measurement_time: Timestamp of latest measurement - flow_light_vehicles_per_hour: Cars, motorcycles, buses - flow_heavy_vehicles_per_hour: Trucks, articulated lorries - flow_total_per_hour: Combined flow - avg_speed_light_kmh: Average speed of light vehicles - avg_speed_heavy_kmh: Average speed of heavy vehicles
road_counter_sites List Swiss traffic counting stations near a location (without real-time data). Returns the measurement site metadata (name, coordinates, supplier) without fetching the live measurement data. Use this to discover available stations before querying road_traffic_counters. Site table is cached for 24 hours (rarely changes). REQUIRES: OPENTRANSPORTDATA_API_KEY environment variable. Free registration: https://api-manager.opentransportdata.swiss Returns: JSON with list of nearby counting stations: - id: DATEX II station identifier (use in road_traffic_counters) - name: Human-readable station name (German) - latitude / longitude: GPS coordinates - distance_km: Distance from your search location - supplier: Data provider (ASTRA, Kanton ZH, Kanton BE, etc.)
road_park_rail Find Park & Rail parking facilities near Swiss train stations. Returns SBB-operated Park & Rail lots with capacity and location. Phase 3 tool – the link between road and rail: «Park here, then take the train.» No API key required – completely open data! Data source: Open-Data-Plattform Mobilität Schweiz (opentransportdata.swiss, Park+Rail GeoJSON). Cache TTL: 5 minutes. Returns: JSON with nearby Park & Rail facilities sorted by distance, including total spaces and capacity by category.
road_mobility_snapshot Get a complete mobility picture for any Swiss location in one call. Aggregates in parallel: - Shared vehicles nearby (bikes, e-scooters, cars) - EV charging stations - Park & Rail facilities at nearby train stations - Nearest train station (transport.opendata.ch) - Traffic situations if Phase 2 API key is configured (optional) This is the «mobility cockpit» – the control tower view. Instead of calling 5 different tools, get everything at once. Phase 3 cross-server tool: No extra API key needed beyond what Phase 2 already requires (and Phase 2 data is optional). Perfect for demos: «Show me everything mobility-related at [location].» Data sources: - sharedmobility.ch (no key) - ich-tanke-strom.ch (no key) - SBB Open Data / data.sbb.ch (no key) - transport.opendata.ch (no key) - opentransportdata.swiss DATEX II (optional, Phase 2 key) Returns: JSON with nearest_station, shared_mobility, ev_charging, park_rail, and optional traffic_situations – all for one location.
road_multimodal_plan Plan a multimodal trip: Drive → Park & Rail → Train → Destination. The «Holy Grail» of Phase 3: combines all data sources into a complete door-to-door multimodal route plan. Workflow (all in parallel where possible): 1. Find the nearest train station from your start location 2. Find Park & Rail facilities near the start (where to park your car) 3. Get public transport connections from nearest station to destination 4. Check shared mobility options at start for last-mile to station 5. Assemble everything into a step-by-step route plan Use case: «I'm in Dietikon with a car. I need to get to Bern. Where can I park? Which train should I take?» No API key required – uses: - SBB Open Data (Park & Rail) – free - transport.opendata.ch (PT connections) – free - sharedmobility.ch (sharing options) – free Data sources: - SBB Open Data Portal (data.sbb.ch) – Park & Rail - transport.opendata.ch – Journey planning - sharedmobility.ch – Sharing last mile Returns: JSON with: - nearest_station: Closest train station from start - recommended_park_rail: Best P+R option - plan_steps: Step-by-step multimodal route - all_ov_connections: All available PT connections - last_mile_sharing: Sharing options at start location
road_geocode_address Convert a Swiss address to GPS coordinates using the official federal address registry. Uses swisstopo's amtliches Gebäudeadressverzeichnis (GWR-based) – the authoritative Swiss federal building address register containing every officially registered address in Switzerland. Unlike general geocoders, this returns only verified, legally registered addresses. Every result has an EGAID (Eidgenössischer Adressidentifikator) and EGID (Gebäudeidentifikator) from the federal GWR register. Think of it as the «official digital postman»: if the address exists in Switzerland, it's here. If it's not here, it may not be officially registered. Phase 4 tool – no API key required! Data source: geo.admin.ch / swisstopo amtliches Gebäudeadressverzeichnis. Returns: JSON with matching addresses, each containing: - address: Full address string (e.g. «Bahnhofstrasse 1 8001 Zürich») - latitude / longitude: WGS84 coordinates - feature_id: ID in the federal address register - source: Layer ID (ch.swisstopo.amtliches-gebaeudeadressverzeichnis)
road_reverse_geocode Find the nearest official Swiss addresses for given GPS coordinates. Uses the federal building address register (amtliches Gebäudeadressverzeichnis) to identify the nearest registered building addresses to any point in Switzerland. Returns official GWR (Gebäude- und Wohnungsregister) data including: - EGID (Eidgenössischer Gebäudeidentifikator) – unique federal building ID - EGAID (Eidgenössischer Adressidentifikator) – unique federal address ID - Building category (residential / non-residential) - Official address status Especially useful for enriching mobility data: finding the exact legal address of a charging station, Park & Rail facility, or sharing station. Phase 4 tool – no API key required! Data source: geo.admin.ch / swisstopo amtliches Gebäudeadressverzeichnis (GWR). Returns: JSON with nearest official addresses including EGID/EGAID identifiers, municipality data, and building category.
road_classify_road Classify roads at a location using the official Swiss topographic road network (swissTLM3D). The swissTLM3D is the authoritative federal road network dataset from swisstopo. It classifies every road in Switzerland by: Road type (Objektart): 🛣️ Autobahn · 🚗 Hauptstrasse · 🏘️ Nebenstrasse · 🚶 Weg/Pfad … Functional class (Verkehrsbedeutung): Hauptverbindungsstrasse · Verbindungsstrasse · Sammelstrasse · Zufahrtstrasse Surface (Belagsart): Hartbelag (Asphalt/Beton) · Weich-/Naturbelag Ownership (Eigentümer): Bund · Kanton · Gemeinde · Privat Access restriction (Verkehrsbeschränkung): Keine Beschränkung · Einsatzkräfte · Landwirtschaft · Fussgänger und Radfahrer · Kein öffentlicher Verkehr … Use cases: - «Is this a motorway or a local road?» - «Who maintains this road – canton or municipality?» - Enriching traffic counter data with official road classification Phase 4 tool – no API key required! Data source: geo.admin.ch / swisstopo swissTLM3D Strassen. Returns: JSON with road segments at the location, each containing: - road_name: Official road name (if assigned) - road_type: {code, label_de, label_en, emoji, network_importance} - surface, functional_class, ownership, access_restriction Plus a type_summary overview.
Permissions 4
network medium filesystem low shell high env_vars low