Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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
swisstopo_geocodeA

Wandelt eine Adresse, einen Ortsnamen oder eine PLZ in Koordinaten um (Geocoding).

Startpunkt für ortsbezogene Abfragen: Adresse → Koordinaten, die danach an swisstopo_get_height, swisstopo_map_query (operation='features_at_point') oder swisstopo_get_egrid übergeben werden.

swisstopo_reverse_geocodeA

Findet die nächstgelegene Adresse zu gegebenen WGS84-Koordinaten (Reverse Geocoding).

Koordinaten aus Karte oder GPS in eine lesbare Adresse auflösen.

swisstopo_map_queryA

Fragt den nationalen Swisstopo-Kartenkatalog ab (500+ Layer): Layer finden, Felder ansehen, Features abfragen.

Der übliche Ablauf ist eine Kette: operation='search_layers' liefert Layer-IDs, operation='layer_info' zeigt deren abfragbare Felder, danach operation='features_at_point' (räumlich) oder 'features_by_attribute' (nach Attributwert), und operation='feature_by_id' holt ein einzelnes Feature vollständig. Genau eine operation pro Aufruf. Felder, die zu einer anderen operation gehören, werden abgelehnt statt ignoriert — die Fehlermeldung nennt die zulässigen. Für Bauzone bzw. Gemeinde gibt es direkte Tools (swisstopo_zoning_at, swisstopo_municipality_at). 'features_at_point' nur nutzen, wenn zusätzliche Rohattribute gebraucht werden oder ein anderer Layer gefragt ist. Das ist der nationale Katalog von api3.geo.admin.ch. Für interkantonale und kantonale Quellen ist swisstopo_list_available_layers → swisstopo_query_geodata zuständig, für herunterladbare Datensätze swisstopo_search_geodata.

swisstopo_search_geodataA

Durchsucht den STAC-Katalog nach herunterladbaren Geodaten.

Findet Orthophotos, Höhenmodelle (swissALTI3D), 3D-Gebäude und historische Karten zum Download. Liefert Collections/Metadaten; Download-Links via swisstopo_get_collection.

swisstopo_get_collectionA

Ruft Detailinformationen und Download-Links einer STAC-Collection ab.

Zweiter Schritt nach swisstopo_search_geodata, um Assets/Download-URLs einer Collection zu erhalten.

swisstopo_map_urlA

Generiert eine teilbare map.geo.admin.ch-URL zum Öffnen im Browser.

Einen Kartenausschnitt mit optionalen Layern als Link bereitstellen (kein Datenabruf).

swisstopo_get_heightA

Gibt die Höhe über Meer (m ü. M.) an einer Koordinate zurück.

Punkthöhe für eine Adresse/Koordinate; für Linien siehe swisstopo_elevation_profile. Koordinaten entweder als lat/lon (WGS84) ODER als easting/northing (LV95) angeben — nicht beides.

swisstopo_elevation_profileA

Berechnet ein Höhenprofil entlang einer Linie aus mehreren Koordinatenpaaren.

Höhenverlauf z.B. für Wander-/Schulweg-Analysen. Benötigt ≥2 Koordinatenpaare. Standard ist WGS84 ('lat1,lon1;lat2,lon2;…'); für LV95 coordinate_system='lv95' setzen und die Paare als 'easting,northing' übergeben.

swisstopo_zoning_atA

Gibt die harmonisierte Bauzone an einer Koordinate zurück (ch.are.bauzonen, ARE).

«Welche Bauzone gilt hier?» in einem Aufruf — ohne vorher die Layer-ID via swisstopo_map_query erst suchen zu müssen. Der harmonisierte ARE-Layer ist eine Synthese für die schweizweite Vergleichbarkeit und NICHT rechtsverbindlich — verbindlich ist allein die kantonale/kommunale Nutzungsplanung. Der Hinweis steht in jedem Resultat. Koordinaten als lat/lon (WGS84) oder easting/northing (LV95).

swisstopo_municipality_atA

Gibt Gemeinde, BFS-Nummer und Kanton an einer Koordinate zurück (swissBOUNDARIES3D).

Koordinate → amtliche BFS-Gemeindenummer, der Join-Key zu swiss-statistics-mcp und zurich-opendata-mcp. Der Layer führt eine Fläche pro historischem Jahrgang; es wird der aktuelle Stand zurückgegeben. Auf einer Gemeindegrenze oder ausserhalb der Schweiz bleibt das Resultat leer.

swisstopo_convert_coordinatesA

Rechnet Koordinaten amtlich zwischen WGS84 und LV95 um (swisstopo REFRAME).

Wenn Koordinaten in LV95 (EPSG:2056) vorliegen und für die übrigen Tools nach WGS84 gebracht werden müssen — oder umgekehrt für den Katasterbezug, wo Zentimeter zählen. Achsenreihenfolge beachten: REFRAME benennt beide Eingaben easting/northing. Bei wgs84_to_lv95 ist easting der LÄNGENgrad und northing der BREITENgrad — umgekehrt zur lat/lon-Reihenfolge der übrigen Tools. Vertauschte Achsen werden abgewiesen, nicht stillschweigend umgerechnet.

swisstopo_get_egridA

Ermittelt die EGRID (Grundstück-ID) aus Koordinaten für einen bestimmten Kanton.

Grundstück-ID (EGRID) zu einer Koordinate, wenn die ID selbst gebraucht wird. Für die Beschränkungen direkt swisstopo_oereb_at nutzen — das löst den EGRID intern auf. Erfordert einen unterstützten Kanton (z.B. ZH, BE).

swisstopo_get_oereb_extractA

Ruft öffentlich-rechtliche Eigentumsbeschränkungen (ÖREB) für ein Grundstück (EGRID) ab.

ÖREB-Auszug zu einem bereits bekannten EGRID. Wer von einer Koordinate ausgeht, nimmt swisstopo_oereb_at — das erledigt beide Schritte in einem Aufruf. Erfordert einen unterstützten Kanton.

swisstopo_oereb_atA

Gibt die ÖREB-Eigentumsbeschränkungen an einer Koordinate zurück (ein Aufruf).

«Welche Beschränkungen gelten auf diesem Grundstück?» — löst den EGRID intern auf. Das ist der normale Weg; swisstopo_get_egrid braucht es nur, wer die Parzellen-ID selbst benötigt. Nur für Kantone mit angebundenem ÖREB-Dienst (siehe SWISSTOPO_OEREB_CANTONS). Koordinaten als lat/lon (WGS84) oder easting/northing (LV95).

swisstopo_list_available_layersA

Discovery-Tool: listet die Layer-Kennungen, die swisstopo_query_geodata akzeptiert.

Erster Schritt vor swisstopo_query_geodata: herausfinden, welche Datensätze (Strassenverzeichnis, ÖREB-Verfügbarkeit, interkantonale geodienste.ch-Topics) verfügbar und ohne Vertrag frei nutzbar sind. Für konkrete geodienste-Kennungen einen Kanton angeben (z.B. canton='ZH').

swisstopo_query_geodataA

Einheitliche Fassade über mehrere Geodaten-Quellen anhand einer Layer-Kennung.

Ein Tool für drei Quellen: 'strassenverzeichnis' (Strassen um einen Punkt), 'oereb-verfuegbarkeit' (ÖREB-Status/Zuständigkeit an einem Punkt) und 'geodienste:<topic>:<KANTON>' (interkantonale Basisgeodaten via OGC API Features). Genau eine Ortsangabe (point | bbox | commune) übergeben. Gültige Layer-Kennungen via swisstopo_list_available_layers. geodienste-Layer erfordern bbox oder point (mit radius_m).

swisstopo_query_osm_featuresA

Findet OpenStreetMap-POIs (Schulen, Spielplätze, Apotheken …) im Umkreis.

Beantwortet «Welche Schulhäuser/Spielplätze liegen im Umkreis von R Metern um diesen Punkt/diese Adresse?». Ergänzt die amtlichen swisstopo-Daten um Points-of-Interest aus OpenStreetMap. Quelle OpenStreetMap (ODbL, © OpenStreetMap contributors), nicht swisstopo. Overpass hat Rate-Limits/Timeouts — kleiner Radius bevorzugt; bei Überlastung kommt eine sprechende Fehlermeldung statt Daten.

swisstopo_lookup_postal_codeA

Löst eine Schweizer PLZ in Ort, Gemeinde, Bezirk und Kanton auf (OpenPLZ, amtlich).

Beantwortet «Zu welcher Gemeinde/welchem Kanton gehört PLZ 8001?» und liefert die BFS-Gemeindenummer (bfs_commune_number). bfs_commune_number ist der amtliche Join-Schlüssel zu BFS-Statistikdaten (swiss-statistics-mcp) und zu zurich-opendata-mcp. Quelle OpenPLZ (BFS/swisstopo OGD), nicht die swisstopo-Geodaten. Eine unbekannte PLZ liefert eine leere Trefferliste mit erklärendem Hinweis.

swisstopo_find_communeA

Löst Gemeinden auf: Name→BFS-Nummer, BFS-Nummer→Name, oder alle Gemeinden eines Kantons/Bezirks.

Vier Modi (genau einen Parameter angeben): name (Name → BFS-Nummer), bfs_number (BFS-Nummer → Gemeinde), canton (alle Gemeinden eines Kantons) oder district (alle Gemeinden eines Bezirks). Beantwortet z.B. «Welche Gemeinden liegen im Bezirk Uster und wie lauten ihre BFS-Nummern?». bfs_commune_number ist der amtliche Join-Schlüssel zu BFS-Statistikdaten (swiss-statistics-mcp). canton akzeptiert Kürzel ('ZH') oder BFS-Nummer ('1') — die Kürzel→Schlüssel-Auflösung erfolgt serverseitig, weil der Pfad sonst still eine leere Liste liefert. Gemeindelisten sind vollständig (interne Pagination), nicht auf 10 Einträge gekürzt.

swisstopo_search_addressA

Volltextsuche über Schweizer Strassen und Ortschaften (OpenPLZ FullTextSearch).

Findet Strassen und Orte zu einem freien Suchbegriff und liefert je Treffer Gemeinde und BFS-Nummer, wenn vorhanden. Quelle OpenPLZ (BFS/swisstopo OGD). Ergebnisse sind paginiert (max. 50/Abfrage); die Gesamttrefferzahl wird ausgewiesen. Für die exakte PLZ→Gemeinde-Auflösung ist swisstopo_lookup_postal_code präziser.

Prompts

Interactive templates invoked by user choice

NameDescription
swisstopo_feature_lookupFührt durch die Layer-Suche zur Feature-Abfrage und nennt dabei die Präzedenzregel: für Bauzone und Gemeinde gibt es direkte Tools.
swisstopo_geodata_downloadFührt von der STAC-Suche zu den Download-Links einer Collection.

Resources

Contextual data attached and managed by the client

NameDescription
swisstopo_layer_catalogueDer vollständige Katalog der Layer, die swisstopo_query_geodata akzeptiert: die statischen Fassaden-Layer plus die geodienste.ch-Themen mit der Zahl der Kantone, die sie frei anbieten. Entspricht swisstopo_list_available_layers ohne Filter.

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/swisstopo-mcp'

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