Skip to main content
Glama
malkreide
by malkreide

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_PORTNoPort for SSE transport (default: 8001).
MCP_LOG_LEVELNoLog level: DEBUG, INFO, WARNING, ERROR (default: INFO).
MCP_TRANSPORTNoTransport mode: 'stdio' or 'sse'. Default is stdio.
MCP_AUTH_TOKENNoBearer token for SSE authentication. If set, all SSE requests must include Authorization header.
MCP_LOG_FORMATNoLog format: 'text' or 'json' (default: text).
MCP_RATE_LIMITNoMax requests per client IP per rate window (default: 60).
ALLOWED_ORIGINSNoComma-separated CORS origins (default: '*').
MCP_RATE_WINDOWNoRate window in seconds (default: 60).
MCP_TRACING_ENABLEDNoEnable OpenTelemetry tracing ('true'/'false').
OPENTRANSPORTDATA_API_KEYNoAPI key for opentransportdata.swiss to access traffic tools. Required for traffic tools; without them they return descriptive error messages.
OTEL_EXPORTER_OTLP_ENDPOINTNoOTLP collector URL for tracing.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
road_find_sharingA

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_sharingA

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_providersA

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_chargerA

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_statusA

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_statusA

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_situationsA

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_countersA

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_sitesA

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_railA

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_snapshotA

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_planA

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_addressA

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_geocodeA

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_roadA

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.

Prompts

Interactive templates invoked by user choice

NameDescription
plan_tripReusable template for a car -> Park & Rail -> train -> destination plan.

Resources

Contextual data attached and managed by the client

NameDescription
data_sources_catalogCatalogue of the upstream open-data sources this server aggregates. Read-only, stable, non-parameterised reference data — exactly what an MCP Resource is for (as opposed to the live queries handled by Tools).

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/malkreide/swiss-road-mobility-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server