Skip to content
Agentmart
Submit a tool

Swisstopo MCP

Swiss federal geodata: geocoding, height, STAC, WMTS, OEREB and more

Connector by malkreide · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 11
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/malkreide-swisstopo-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Swiss federal geodata: geocoding, height, STAC, WMTS, OEREB and more

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
15 read · 0 write · 0 delete · 5 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Tools by what they do 20

Read from the source code; the running server may list different tools.

Read 15 · Look things up without changing anything.

  • swisstopo_convert_coordinates
  • swisstopo_find_commune
  • swisstopo_geocode
  • swisstopo_get_collection
  • swisstopo_get_egrid
  • swisstopo_get_height
  • swisstopo_get_oereb_extract
  • swisstopo_list_available_layers
  • swisstopo_lookup_postal_code
  • swisstopo_map_query
  • swisstopo_query_geodata
  • swisstopo_query_osm_features
Show 3 more tools
  • swisstopo_reverse_geocode
  • swisstopo_search_address
  • swisstopo_search_geodata

Not yet classified 5 · We could not tell from the name and description.

  • swisstopo_elevation_profile
  • swisstopo_map_url
  • swisstopo_municipality_at
  • swisstopo_oereb_at
  • swisstopo_zoning_at

Network hosts it talks to 19

  • ::1 · found in code
  • a.ch · found in code
  • api3.geo.admin.ch · found in code
  • app.example.ch · found in code
  • b.ch · found in code
  • data.geo.admin.ch · found in code
  • errors.pydantic.dev · found in code
  • geodesy.geo.admin.ch · found in code
  • geodienste.ch · found in code
  • github.com · found in code
  • map.geo.admin.ch · found in code
  • maps.zh.ch · found in code
  • oereb.cadastre.ch · found in code
  • oereb2.apps.be.ch · found in code
  • opengis.net · found in code
  • openplzapi.org · found in code
  • otel-collector.observability · found in code
  • overpass.osm.ch · found in code
  • wmts.geo.admin.ch · found in code

Files it touches

  • /root/.claude/skills/mcp-audit/checks
  • /home/user/swisstopo-mcp/audits/2026-05-29T034026-Z-swisstopo-mcp
  • /home/user/swisstopo-mcp/audits/2026-05-29T050007-Z-swisstopo-mcp
  • /home/user/swisstopo-mcp/audits/2026-05-29T051418-Z-swisstopo-mcp
  • /home/user/swisstopo-mcp/audits/2026-07-27T125314-Z-swisstopo-mcp
  • /home/user/swisstopo-mcp/audits/2026-07-27T162602-Z-swisstopo-mcp
  • /opt/osm/db/overpass_db
  • /tmp/mcp-audit-skill/checks

Tools (20)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • swisstopo_convert_coordinatesKoordinaten umrechnen (REFRAME)

    Rechnet Koordinaten amtlich zwischen WGS84 und LV95 um (swisstopo REFRAME). <use_case>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.</use_case> <important_notes>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.</important_notes>

  • swisstopo_elevation_profileHöhenprofil berechnen

    Berechnet ein Höhenprofil entlang einer Linie aus mehreren Koordinatenpaaren. <use_case>Höhenverlauf z.B. für Wander-/Schulweg-Analysen.</use_case> <important_notes>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.</important_notes>

  • swisstopo_find_communeGemeinde auflösen (Name ↔ BFS-Nummer, Kanton/Bezirk)

    Löst Gemeinden auf: Name→BFS-Nummer, BFS-Nummer→Name, oder alle Gemeinden eines Kantons/Bezirks. <use_case>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?».</use_case> <important_notes>`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üs…

  • swisstopo_geocodeAdresse geocodieren

    Wandelt eine Adresse, einen Ortsnamen oder eine PLZ in Koordinaten um (Geocoding). <use_case>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.</use_case>

  • swisstopo_get_collectionGeodaten-Details abrufen

    Ruft Detailinformationen und Download-Links einer STAC-Collection ab. <use_case>Zweiter Schritt nach swisstopo_search_geodata, um Assets/Download-URLs einer Collection zu erhalten.</use_case>

  • swisstopo_get_egridGrundstück-ID (EGRID) ermitteln

    Ermittelt die EGRID (Grundstück-ID) aus Koordinaten für einen bestimmten Kanton. <use_case>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.</use_case> <important_notes>Erfordert einen unterstützten Kanton (z.B. ZH, BE).</important_notes>

  • swisstopo_get_heightHöhe abfragen

    Gibt die Höhe über Meer (m ü. M.) an einer Koordinate zurück. <use_case>Punkthöhe für eine Adresse/Koordinate; für Linien siehe swisstopo_elevation_profile.</use_case> <important_notes>Koordinaten entweder als lat/lon (WGS84) ODER als easting/northing (LV95) angeben — nicht beides.</important_notes>

  • swisstopo_get_oereb_extractÖREB-Auszug abrufen

    Ruft öffentlich-rechtliche Eigentumsbeschränkungen (ÖREB) für ein Grundstück (EGRID) ab. <use_case>ÖREB-Auszug zu einem bereits bekannten EGRID. Wer von einer Koordinate ausgeht, nimmt swisstopo_oereb_at — das erledigt beide Schritte in einem Aufruf.</use_case> <important_notes>Erfordert einen unterstützten Kanton.</important_notes>

  • swisstopo_list_available_layersVerfügbare Geodaten-Layer auflisten

    Discovery-Tool: listet die Layer-Kennungen, die swisstopo_query_geodata akzeptiert. <use_case>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').</use_case>

  • swisstopo_lookup_postal_codePLZ zu Gemeinde/BFS-Nummer auflösen

    Löst eine Schweizer PLZ in Ort, Gemeinde, Bezirk und Kanton auf (OpenPLZ, amtlich). <use_case>Beantwortet «Zu welcher Gemeinde/welchem Kanton gehört PLZ 8001?» und liefert die BFS-Gemeindenummer (`bfs_commune_number`).</use_case> <important_notes>`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.</important_notes>

  • swisstopo_map_queryNationaler Kartenkatalog: Layer und Features

    Fragt den nationalen Swisstopo-Kartenkatalog ab (500+ Layer): Layer finden, Felder ansehen, Features abfragen. <use_case>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.</use_case> <important_notes>Genau eine operation pro Aufruf. Felder, die zu einer anderen operation gehören, werden abgelehnt statt ignoriert — die Fehlermeldung nennt die zulä…

  • swisstopo_map_urlKarten-URL generieren

    Generiert eine teilbare map.geo.admin.ch-URL zum Öffnen im Browser. <use_case>Einen Kartenausschnitt mit optionalen Layern als Link bereitstellen (kein Datenabruf).</use_case>

  • swisstopo_municipality_atGemeinde an Koordinate

    Gibt Gemeinde, BFS-Nummer und Kanton an einer Koordinate zurück (swissBOUNDARIES3D). <use_case>Koordinate → amtliche BFS-Gemeindenummer, der Join-Key zu swiss-statistics-mcp und zurich-opendata-mcp.</use_case> <important_notes>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.</important_notes>

  • swisstopo_oereb_atÖREB-Auszug an Koordinate

    Gibt die ÖREB-Eigentumsbeschränkungen an einer Koordinate zurück (ein Aufruf). <use_case>«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.</use_case> <important_notes>Nur für Kantone mit angebundenem ÖREB-Dienst (siehe SWISSTOPO_OEREB_CANTONS). Koordinaten als lat/lon (WGS84) oder easting/northing (LV95).</important_notes>

  • swisstopo_query_geodataGeodaten abfragen (Fassade)

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

Show 5 more tools
  • swisstopo_query_osm_featuresOpenStreetMap-POIs abfragen (Overpass)

    Findet OpenStreetMap-POIs (Schulen, Spielplätze, Apotheken …) im Umkreis. <use_case>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.</use_case> <important_notes>Quelle OpenStreetMap (ODbL, © OpenStreetMap contributors), nicht swisstopo. Overpass hat Rate-Limits/Timeouts — kleiner Radius bevorzugt; bei Überlastung kommt eine sprechende Fehlermeldung statt Daten.</important_notes>

  • swisstopo_reverse_geocodeKoordinaten zu Adresse

    Findet die nächstgelegene Adresse zu gegebenen WGS84-Koordinaten (Reverse Geocoding). <use_case>Koordinaten aus Karte oder GPS in eine lesbare Adresse auflösen.</use_case>

  • swisstopo_search_addressAdressen/Orte per Volltext suchen

    Volltextsuche über Schweizer Strassen und Ortschaften (OpenPLZ FullTextSearch). <use_case>Findet Strassen und Orte zu einem freien Suchbegriff und liefert je Treffer Gemeinde und BFS-Nummer, wenn vorhanden.</use_case> <important_notes>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.</important_notes>

  • swisstopo_search_geodataGeodaten suchen

    Durchsucht den STAC-Katalog nach herunterladbaren Geodaten. <use_case>Findet Orthophotos, Höhenmodelle (swissALTI3D), 3D-Gebäude und historische Karten zum Download.</use_case> <important_notes>Liefert Collections/Metadaten; Download-Links via swisstopo_get_collection.</important_notes>

  • swisstopo_zoning_atBauzone an Koordinate

    Gibt die harmonisierte Bauzone an einer Koordinate zurück (ch.are.bauzonen, ARE). <use_case>«Welche Bauzone gilt hier?» in einem Aufruf — ohne vorher die Layer-ID via swisstopo_map_query erst suchen zu müssen.</use_case> <important_notes>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).</important_notes>

Compare and alternatives

    Featured in

    Signals

    Stars
    11
    Forks
    1
    Open issues
    3
    Weekly downloads
    65
    Last commit
    Sep 26, 2026 (1 month ago)
    Last release
    Sep 26, 2026 (1 month ago)
    Last package publish
    Sep 26, 2026 (1 month ago)

    From GitHub (fetched Oct 24, 2026) and the package registry.

    Details

    Registry name
    io.github.malkreide/swisstopo-mcp
    Version
    0.5.0
    Auth
    No auth
    Packages
    pypi swisstopo-mcp
    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026

    More from malkreide

    Cite this page

    Swisstopo MCP. Agent Mart. https://agentmart.dev/connectors/malkreide-swisstopo-mcp (last updated 2026-10-24)