Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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