Swisstopo MCP

🇩🇪 Deutsche Version swisstopo-mcp gives AI assistants access to Switzerland's official geodata infrastructure through 20 tools, all without authentication. Its 19 documented tools cover swisstopo, map, geocode, geodata. It runs locally over stdio via the published package.

People connecting maps & location tools to Claude, Cursor, VS Code, or another MCP client. The project is written in Python.

VERIFIED ACTIVE

LAST COMMIT 2026-08-24 · ★ 8 · #17 OF 56 MAINTAINED MAPS & LOCATION · VERIFIED 2026-08-25

MIT · Python servers · how we verify → /methodology

01 · Install Swisstopo MCP

before you install - you'll need

The README does not document required environment variables for a basic install.

Claude Code

claude mcp add malkreide-swisstopo-mcp -- uvx swisstopo-mcp

Claude Desktop / Cursor / VS Code - add to config

{
  "mcpServers": {
    "malkreide-swisstopo-mcp": {
      "command": "uvx",
      "args": [
        "swisstopo-mcp"
      ]
    }
  }
}

Same JSON for Cursor. For VS Code, rename the top-level key from `mcpServers` to `servers`.

Using another client? Same JSON, different key

Claude Desktop · mcpServers

Cursor · mcpServers

VS Code · servers

Windsurf · mcpServers

Zed · context_servers

Cline · mcpServers

Roo Code · mcpServers

Continue · mcpServers

LibreChat · mcpServers

Gemini CLI · mcpServers

Codex CLI · mcp_servers

Full setup guides: every client.

02 · Evidence

Security posture

What to check before giving this server access to your agent - from the registry, GitHub, and our own probes. We don't score safety; we show what's verifiable.

runs as local process (stdio) - runs on your machine with your user's permissions

license MIT - declared in the repository

pypi package swisstopo-mcp - check the name against the project README before installing (PyPI has no namespace ownership)

registry namespace io.github.malkreide is GitHub-verified and matches the repo owner

03 · What Swisstopo MCP can do

Prose above is summarized from the project's README and registry record - no invented capabilities.

What you can build

With this server connected, an agent can find the nearest address for given coordinates, get elevation above sea level (m a.s.l.) at a coordinate, search the STAC catalog for downloadable geodatasets, and get details and download links for a STAC collection.

The 19 tools it gives your agent

Extracted from the project's README - what swisstopo-mcp lets an agent do.

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_geocode
- Convert Swiss addresses, place names, or postal codes to coordinates
swisstopo_reverse_geocode
- Find the nearest address for given coordinates
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
swisstopo_search_geodata
- Search the STAC catalog for downloadable geodatasets
swisstopo_get_collection
- Get details and download links for a STAC collection
swisstopo_map_url
- Generate a map.geo.admin.ch URL for browser display
swisstopo_get_egrid
- Resolve a cadastral property ID (EGRID) from coordinates
show all 19 tools
swisstopo_get_oereb_extract
- Retrieve public-law land-use restrictions (OEREB) for a parcel
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)
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 happe
swisstopo_search_address
- Full-text search over Swiss streets and localities, returning commune + BFS number per hit

Latest releases

v0.4.1 · 2026-08-02

[0.4.1] - 2026-08-02 · Fixed · structlog carried no upper bound, and the index already serves a major past · the floor. The declared range was structlog>=24.1.0; PyPI has been serving · 26.1.0. The artefact does not…

v0.4.0 · 2026-07-31

Changed · Migrated to the mcp 2.x server API. Pin >=1.28.1,<2 → >=2.0.0,<3; · FastMCP → MCPServer (mcp.server.mcpserver). The floor is hard: 2.0.0 · removed mcp.server.fastmcp with no compatibility shim, so this code…

v0.2.0 · 2026-07-20

[0.2.0] - 2026-07-20 · Added · OpenPLZ extension - 3 new tools for the administrative address level (16 → 19 tools, one under the 20-tool budget). This adds the layer swisstopo geodata does not cover - the amtliche…

04 · Who maintains Swisstopo MCP

swisstopo-mcp is maintained by malkreide. We track 43 MCP servers from malkreide - 42 actively maintained, 36 combined GitHub stars, oldest repo from Feb 2026. Full record: all servers from malkreide.

  1. zurich-opendata-mcp City of Zurich weather, air quality, parking, geodata, Gemeinderat, tourism ★ 8
  2. swiss-statistics-mcp BFS STAT-TAB PxWeb API for official Swiss statistics ★ 2
  3. fedlex-mcp Swiss federal law, consultations (Fedlex) & TERMDAT terminology (LINDAS) via SPARQL ★ 3
  4. swiss-transport-mcp OJP 2.0 journey planning, SIRI-SX disruptions, occupancy, fares, train formation ★ 4
  5. swiss-democracy-mcp Parliament OData, Swissvotes, referendums, voting results ★ 2

05 · Facts

category
maps & location - ranked #17 of 56 actively-maintained maps & location servers as of 2026-08-25.
release cadence
3 releases in the last 90 days (latest 2026-08-02)
registry
io.github.malkreide/swisstopo-mcp (active, first published 2026-06-07 · 3 versions)
packages
pypi:swisstopo-mcp

06 · Swisstopo MCP FAQ

Is Swisstopo MCP still maintained?

Yes - as of 2026-08-25, its last commit was 2026-08-24 and it shipped 3 releases in the last 90 days. We re-verify nightly.

What can Swisstopo MCP do?

With this server connected, an agent can find the nearest address for given coordinates, get elevation above sea level (m a.s.l.) at a coordinate, search the STAC catalog for downloadable geodatasets, and get details and download links for a STAC collection.

How do I install Swisstopo MCP?

Run `uvx swisstopo-mcp`. The README does not document required environment variables for a basic install. You can also paste the ready-made client config above.

Does Swisstopo MCP run locally?

Yes - it's a stdio server: it runs on your machine (via uvx) with your user's permissions. Your data stays local unless the server itself calls external APIs.

07 · Alternatives to Swisstopo MCP