swisstopo-mcp — Claude Code MCP server: what it does, how to install
Connects AI assistants to Swiss federal geodata: coordinates, elevation, OEREB cadastre records, and over 500 map layers without API keys.
claude mcp add swisstopo-mcp -- uvx swisstopo-mcpWhat swisstopo-mcp does
This server connects assistants to Switzerland's public geodata infrastructure through 20 dedicated tools. It handles address geocoding, elevation profiles, STAC catalog queries, and commune BFS code lookups. None of the endpoints require authentication or paid credentials.
The server runs over stdio for local clients or streamable HTTP on port 8000 for cloud setups. It requires Python 3.11 or later and runs directly via uvx. Parameter checking in swisstopo_map_query is strict: providing arguments that belong to another operation fails immediately with an error rather than silently returning mismatched data.
What it helps with
- geocode Swiss addresses and look up coordinates
- calculate terrain elevations and cross-section profiles
- map postal codes to official BFS commune identifiers
- query features across 500+ Swisstopo map layers
Example prompts for the agent
- Find the coordinates for Bahnhofstrasse 1, Zurich.
- What is the elevation at the Uetliberg summit?
- List the communes in the Uster district with their BFS numbers.
How to install swisstopo-mcp
Platform CLI
claude mcp add swisstopo-mcp -- uvx swisstopo-mcpuvx runs the command named after the package; if the README names another one, use uvx --from swisstopo-mcp <command>
Platform CLI
codex mcp add swisstopo-mcp -- uvx swisstopo-mcpuvx runs the command named after the package; if the README names another one, use uvx --from swisstopo-mcp <command>
Config file
{
"mcpServers": {
"swisstopo-mcp": {
"command": "uvx",
"args": [
"swisstopo-mcp"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from swisstopo-mcp <command>
Config file
{
"servers": {
"swisstopo-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"swisstopo-mcp"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from swisstopo-mcp <command>
Platform CLI
gemini mcp add swisstopo-mcp uvx swisstopo-mcpuvx runs the command named after the package; if the README names another one, use uvx --from swisstopo-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about swisstopo-mcp
How to install swisstopo-mcp in Claude Code?
Run claude mcp add swisstopo-mcp -- uvx swisstopo-mcp in your terminal. You need Python 3.11+ and uvx available on your system.
Does swisstopo-mcp require an API token?
No, all integrated endpoints function without API keys. Cadastral extracts from OEREB, however, depend on whether the target canton supports the service.
What transport protocols does the server support?
It supports standard stdio communication for local tools like Claude Desktop, alongside streamable HTTP for remote deployments.