Matryoshka Mind Map
Read and write your Matryoshka Mind Map (nested mind map / TODO app) from AI agents.
Beschreibung vom Entwickler (englisches Original)
Swiss federal geodata: geocoding, height, STAC, WMTS, OEREB and more
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"swisstopo": {
"command": "uvx",
"args": [
"swisstopo-mcp"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add swisstopo -- uvx swisstopo-mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"swisstopo": {
"command": "uvx",
"args": [
"swisstopo-mcp"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"swisstopo": {
"type": "stdio",
"command": "uvx",
"args": [
"swisstopo-mcp"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto malkreide bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.5.1) kam vor 8 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Matryoshka Mind Map, topo^alpin, BusCalc Business Calculators
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Read and write your Matryoshka Mind Map (nested mind map / TODO app) from AI agents.
Avalanche bulletins, mountain weather, stations, huts, ski and snowshoe tours in the Alps.
40 tools: business math, U.S. map lookups, truck trip screening and public data references.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
🇨🇭 Part of the [Swiss Public Data MCP Portfolio](https://github.com/malkreide)
MCP server for Swiss federal geodata -- maps, elevation, geocoding, cadastral extracts, and downloadable datasets via Swisstopo APIs
🇩🇪 Deutsche Version
swisstopo-mcp gives AI assistants access to Switzerland's official geodata infrastructure through 20 tools, all without authentication:
| Source | Data | API |
|---|---|---|
| Swisstopo REST API | 500+ geodata layers (buildings, boundaries, land use) | REST/JSON |
| Geocoding | Official addresses, place names, postal codes | REST/JSON |
| Height Service | Elevation above sea level, elevation profiles | REST/JSON |
| STAC Catalog | Orthophotos, elevation models, 3D buildings | STAC 0.9 |
| WMTS | National maps, aerial images, zoning maps | URL builder |
| OEREB Cadastre | Public-law restrictions, parcels | REST/JSON (cantonal) |
| geodienste.ch | Interkantonale Basisgeodaten (cadastral survey, contaminated sites, hazard maps, …) | OGC API Features / WMS / WFS |
| OpenStreetMap | Points of interest (schools, playgrounds, pharmacies, …) | Overpass API (ODbL) |
| OpenPLZ API | Administrative address level: postal codes → commune (BFS number) → district → canton | REST/JSON (BFS + swisstopo OGD) |
Anchor demo query: *"Which communes are in the Uster district, and what are their BFS numbers for joining with BFS statistics data?"* (The BFS commune number is the official join key to swiss-statistics-mcp and zurich-opendata-mcp — this is what turns a geodata wrapper into a semantic connector at the commune level.) → More use cases by audience →
# Clone the repository
git clone https://github.com/malkreide/swisstopo-mcp.git cd swisstopo-mcp
pip install -e .
uv pip install -e .
Or with uvx (no permanent installation):
uvx swisstopo-mcp
# stdio (for Claude Desktop)
python -m swisstopo_mcp.server
python -m swisstopo_mcp.server --http --port 8000
Try it immediately in Claude Desktop:
*"Where is Bahnhofstrasse 1, Zurich? Give me the coordinates."*
*"What is the elevation at the Uetliberg summit?"*
*"What buildings are at coordinates 2683500, 1247500 (LV95)?"*
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "swisstopo": { "command": "python", "args": ["-m", "swisstopo_mcp.server"] } } }
Or with uvx:
{
"mcpServers": { "swisstopo": { "command": "uvx", "args": ["swisstopo-mcp"] } } }
Config file locations:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonFor use via claude.ai in the browser (e.g. on managed workstations without local software):
Render.com (recommended):
python -m swisstopo_mcp.server --http --port 8000https://your-app.onrender.com/sse| Tool | Description |
|---|---|
swisstopo_map_query | The national map catalogue (api3.geo.admin.ch). One operation per call — see the five below |
swisstopo_zoning_at | Harmonised building zone at a coordinate — one call, no layer lookup (not legally binding) |
swisstopo_municipality_at | Municipality, canton and official BFS number at a coordinate |
swisstopo_map_query operationsoperation | Answers | Required arguments |
|---|---|---|
search_layers | Which layers exist for a keyword? (500+ catalogue) | query |
layer_info | What fields can I query on this layer, and what is its legend? | layer |
features_at_point | What is at this coordinate? | layers + a point (lat/lon or easting/northing) |
features_by_attribute | Which features carry this value? (e.g. buildings by EGID) | layer, search_field, search_text |
feature_by_id | Give me this one feature in full, with geometry | layer, feature_id |
Arguments belonging to a different operation are rejected, not ignored — the error names the ones the chosen operation accepts. Silently dropping a misplaced search_field would return a plausible answer to a question nobody asked, which is the failure mode the whole envelope design is against.
| Tool | Description |
|---|---|
swisstopo_geocode | Convert Swiss addresses, place names, or postal codes to coordinates |
swisstopo_reverse_geocode | Find the nearest address for given coordinates |
| Tool | Description |
|---|---|
swisstopo_get_height | Get elevation above sea level (m a.s.l.) at a coordinate |
swisstopo_elevation_profile | Compute an elevation profile along a line |
swisstopo_convert_coordinates | Official WGS84 ↔ LV95 conversion via the swisstopo REFRAME service |
| Tool | Description |
|---|---|
swisstopo_search_geodata | Search the STAC catalog for downloadable geodatasets |
swisstopo_get_collection | Get details and download links for a STAC collection |
| Tool | Description |
|---|---|
swisstopo_map_url | Generate a map.geo.admin.ch URL for browser display |
| Tool | Description |
|---|---|
swisstopo_get_egrid | Resolve a cadastral property ID (EGRID) from coordinates |
swisstopo_get_oereb_extract | Retrieve public-law land-use restrictions (OEREB) for a parcel |
One façade over several map/layer sources, kept under the 25-tool budget (see docs/geodaten-erweiterung-phase1.md):
| Tool | Description |
|---|---|
swisstopo_list_available_layers | Discover layer keys for swisstopo_query_geodata (strassenverzeichnis, oereb-verfuegbarkeit, geodienste: : ); filters to contract-free geodienste datasets |
swisstopo_query_geodata | Query a chosen layer by point / bbox / commune — amtliches Strassenverzeichnis, interkantonale geodienste.ch data (OGC API Features), or ÖREB availability |
swisstopo_query_osm_features | OpenStreetMap POIs (schools, playgrounds, pharmacies, …) around a point via Overpass — separate source, ODbL (© OpenStreetMap contributors) |
The amtliche address hierarchy PLZ → commune → district → canton, served by the OpenPLZ API (data: BFS municipal directory + swisstopo street directory, Swiss OGD — a separate source and licence from the swisstopo geodata above). Every commune-bearing response exposes bfs_commune_number as a named top-level field: the official join key to BFS statistics (swiss-statistics-mcp) and zurich-opendata-mcp.
| Tool | Description |
|---|---|
swisstopo_lookup_postal_code | Resolve a Swiss postal code → locality, commune (+BFS number), district, canton |
swisstopo_find_commune | Resolve a commune both directions (name ↔ bfs_number) or list all communes of a canton / district. Accepts canton abbreviation (ZH) or key (1); resolution happens server-side |
swisstopo_search_address | Full-text search over Swiss streets and localities, returning commune + BFS number per hit |
| Query | Tool |
|---|---|
| *"Where is Bahnhofstrasse 1, Zurich?"* | swisstopo_geocode |
| *"What is the elevation at the Uetliberg summit?"* | swisstopo_get_height |
| *"What buildings are at coordinates 2683500, 1247500?"* | swisstopo_map_query (operation='features_at_point') |
| *"Find orthophoto datasets for download"* | swisstopo_search_geodata |
| *"Show me a map of Bern at zoom level 10"* | swisstopo_map_url |
| *"What restrictions apply to parcel at Musterstrasse 5?"* | swisstopo_oereb_at |
| *"Which schools are within 500 m of Bederstrasse 109, 8002 Zürich, and which streets lead there?"* | swisstopo_query_osm_features + swisstopo_query_geodata (strassenverzeichnis) |
| *"Which contaminated-sites data is free for canton ZH?"* | swisstopo_list_available_layers + swisstopo_query_geodata (geodienste:kataster_belasteter_standorte:ZH) |
| *"Which communes are in the Uster district and what are their BFS numbers?"* | swisstopo_find_commune (district=109) |
| *"Which commune and canton does postal code 8001 belong to?"* | swisstopo_lookup_postal_code |
| *"What is the BFS number of Winterthur (to join with BFS statistics)?"* | swisstopo_find_commune (name=Winterthur) |
┌─────────────────┐ ┌──────────────────────────────┐ ┌──────────────────────────┐
│ Claude / AI │────▶│ swisstopo-mcp │────▶│ Swisstopo REST API │ │ (MCP Host) │◀────│ (MCP Server) │◀────│ api3.geo.admin.ch │ └─────────────────┘ │ │ ├──────────────────────────┤ │ 20 Tools │────▶│ Geocoding │ │ Stdio | Streamable HTTP │◀────│ api3.geo.admin.ch │ │ │ ├──────────────────────────┤ │ No authentication required │────▶│ STAC Catalog │ │ (all tools; OEREB canton opt) │◀────│ data.geo.admin.ch │ │ │ ├──────────────────────────┤ │ │────▶│ OEREB Cadastre │ │ │◀────│ (cantonal endpoints) │ │
Nur der Anfang wird gezeigt; den Rest findest du im Repo