Swisstopo MCP
Swiss federal geodata: geocoding, height, STAC, WMTS, OEREB and more
Connector by malkreide · GitHub account verified by the MCP Registry
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.
About
Reviews
Write a reviewNo 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_coordinatesswisstopo_find_communeswisstopo_geocodeswisstopo_get_collectionswisstopo_get_egridswisstopo_get_heightswisstopo_get_oereb_extractswisstopo_list_available_layersswisstopo_lookup_postal_codeswisstopo_map_queryswisstopo_query_geodataswisstopo_query_osm_features
Show 3 more tools
swisstopo_reverse_geocodeswisstopo_search_addressswisstopo_search_geodata
Not yet classified 5 · We could not tell from the name and description.
swisstopo_elevation_profileswisstopo_map_urlswisstopo_municipality_atswisstopo_oereb_atswisstopo_zoning_at
Network hosts it talks to 19
::1· found in codea.ch· found in codeapi3.geo.admin.ch· found in codeapp.example.ch· found in codeb.ch· found in codedata.geo.admin.ch· found in codeerrors.pydantic.dev· found in codegeodesy.geo.admin.ch· found in codegeodienste.ch· found in codegithub.com· found in codemap.geo.admin.ch· found in codemaps.zh.ch· found in codeoereb.cadastre.ch· found in codeoereb2.apps.be.ch· found in codeopengis.net· found in codeopenplzapi.org· found in codeotel-collector.observability· found in codeoverpass.osm.ch· found in codewmts.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 berechnenBerechnet 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 geocodierenWandelt 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 abrufenRuft 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) ermittelnErmittelt 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 abfragenGibt 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 abrufenRuft ö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 auflistenDiscovery-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ösenLö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 FeaturesFragt 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 generierenGeneriert 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 KoordinateGibt 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 KoordinateGibt 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:<topic>:<KANTON>' (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 AdresseFindet 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 suchenVolltextsuche ü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 suchenDurchsucht 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 KoordinateGibt 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
- Repository
- github.com/malkreide/swisstopo-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from malkreide
- 0.647score
Fedlex MCP
malkreide
Swiss federal law, consultations (Fedlex) & TERMDAT terminology (LINDAS) via SPARQL
ConnectorAFreshness: ALocal★ 7↓ 312/wkClaude Code +5 - 0.632score
Zurich Opendata MCP
malkreide
City of Zurich weather, air quality, parking, geodata, Gemeinderat, tourism
ConnectorAFreshness: ALocal★ 8↓ 76/wkClaude Code +5 - 0.621score
Swiss Transport MCP
malkreide
OJP 2.0 journey planning, SIRI-SX disruptions, occupancy, fares, train formation
ConnectorAFreshness: ALocalRead-only★ 8↓ 45/wkClaude Code +5 - 0.610score
Parlament MCP
malkreide
Swiss Federal Parliament Curia Vista OData API
ConnectorAFreshness: ALocalRead-only★ 2↓ 60/wkClaude Code +5 - 0.607score
Swiss Democracy MCP
malkreide
Swiss popular votes and elections: Swissvotes 1848+, BFS opendata.swiss, SRGSSR Polis 1900+
ConnectorAFreshness: ALocalRead-only★ 2↓ 46/wkClaude Code +5 - 0.606score
Swiss Road Mobility MCP
malkreide
GBFS shared mobility, EV charging, DATEX II traffic, Park & Rail
ConnectorAFreshness: ALocalRead-only★ 1↓ 59/wkClaude Code +5
Cite this page
Swisstopo MCP. Agent Mart. https://agentmart.dev/connectors/malkreide-swisstopo-mcp (last updated 2026-10-24)