malkreide avatar

Swisstopo Mcp

malkreide/swisstopo-mcp

Connects Claude to Switzerland's official geodata infrastructure through 13 tools spanning Swisstopo's REST API, geocoding service, height queries, STAC catalog, WMTS map builder, and OEREB cadastre. You can geocode Swiss addresses, query elevations and profiles, identify map features across 500+ layers, search for downloadable datasets like orthophotos and 3D building models, generate shareable map links, and retrieve cadastral extracts with public law restrictions. Eleven of thirteen tools need no authentication. Built for queries like "What land use restrictions apply to this Zurich address?" or "Show me elevation along this route." Supports both stdio for Claude Desktop and SSE transport for browser deployment on Render or similar platforms.

GitHub stars
12
tools
19
transport
STDIO
last updated
Oct 31, 2026

Tools

19 tools

Public tool metadata for what this MCP can expose to an agent.

swisstopo_map_queryThe national map catalogue (api3.geo.admin.ch). One operation per call.

The national map catalogue (api3.geo.admin.ch). One operation per call.

No parameter schema in public metadata yet.

swisstopo_zoning_atHarmonised building zone at a coordinate — one call, no layer lookup (not legally binding)

Harmonised building zone at a coordinate — one call, no layer lookup (not legally binding)

No parameter schema in public metadata yet.

swisstopo_municipality_atMunicipality, canton and official BFS number at a coordinate

Municipality, canton and official BFS number at a coordinate

No parameter schema in public metadata yet.

swisstopo_geocodeConvert Swiss addresses, place names, or postal codes to coordinates

Convert Swiss addresses, place names, or postal codes to coordinates

No parameter schema in public metadata yet.

swisstopo_reverse_geocodeFind the nearest address for given coordinates

Find the nearest address for given coordinates

No parameter schema in public metadata yet.

swisstopo_get_heightGet elevation above sea level (m a.s.l.) at a coordinate

Get elevation above sea level (m a.s.l.) at a coordinate

No parameter schema in public metadata yet.

swisstopo_elevation_profileCompute an elevation profile along a line

Compute an elevation profile along a line

No parameter schema in public metadata yet.

swisstopo_convert_coordinatesOfficial WGS84 ↔ LV95 conversion via the swisstopo REFRAME service

Official WGS84 ↔ LV95 conversion via the swisstopo REFRAME service

No parameter schema in public metadata yet.

swisstopo_search_geodataSearch the STAC catalog for downloadable geodatasets

Search the STAC catalog for downloadable geodatasets

No parameter schema in public metadata yet.

swisstopo_get_collectionGet details and download links for a STAC collection

Get details and download links for a STAC collection

No parameter schema in public metadata yet.

swisstopo_map_urlGenerate a map.geo.admin.ch URL for browser display

Generate a map.geo.admin.ch URL for browser display

No parameter schema in public metadata yet.

swisstopo_get_egridResolve a cadastral property ID (EGRID) from coordinates

Resolve a cadastral property ID (EGRID) from coordinates

No parameter schema in public metadata yet.

swisstopo_get_oereb_extractRetrieve public-law land-use restrictions (OEREB) for a parcel

Retrieve public-law land-use restrictions (OEREB) for a parcel

No parameter schema in public metadata yet.

swisstopo_list_available_layersDiscover layer keys for swisstopo_query_geodata; filters to contract-free geodienste datasets

Discover layer keys for swisstopo_query_geodata; filters to contract-free geodienste datasets

No parameter schema in public metadata yet.

swisstopo_query_geodataQuery a chosen layer by point / bbox / commune — amtliches Strassenverzeichnis, interkantonale geodienste.ch data, or ÖREB availability

Query a chosen layer by point / bbox / commune — amtliches Strassenverzeichnis, interkantonale geodienste.ch data, or ÖREB availability

No parameter schema in public metadata yet.

swisstopo_query_osm_featuresOpenStreetMap POIs around a point via Overpass — separate source, ODbL

OpenStreetMap POIs around a point via Overpass — separate source, ODbL

No parameter schema in public metadata yet.

swisstopo_lookup_postal_codeResolve a Swiss postal code → locality, commune (+BFS number), district, canton

Resolve a Swiss postal code → locality, commune (+BFS number), district, canton

No parameter schema in public metadata yet.

swisstopo_find_communeResolve a commune both directions (name ↔ bfs_number) or list all communes of a canton / district

Resolve a commune both directions (name ↔ bfs_number) or list all communes of a canton / district

No parameter schema in public metadata yet.

swisstopo_search_addressFull-text search over Swiss streets and localities, returning commune + BFS number per hit

Full-text search over Swiss streets and localities, returning commune + BFS number per hit

No parameter schema in public metadata yet.

Sponsors

Readme

🇨🇭 Part of the Swiss Public Data MCP Portfolio

swisstopo-mcp

Version License: MIT Python 3.11+ MCP No Auth Required CI

MCP server for Swiss federal geodata -- maps, elevation, geocoding, cadastral extracts, and downloadable datasets via Swisstopo APIs

🇩🇪 Deutsche Version


Overview

swisstopo-mcp gives AI assistants access to Switzerland's official geodata infrastructure through 20 tools, all without authentication:


View the full README on GitHub

Details

Repository
github.com/malkreide/swisstopo-mcp
Website
github.com/malkreide/swisstopo-mcp
Package
swisstopo-mcp
Transport
STDIO
Registry
MCP registry, active

More from malkreide