Swiss open data for AI — zero config, zero API keys
About
Swiss open data MCP server — transport, weather, geodata, companies, etc,. Zero API keys.
Details
- Author
- vikramgorla
- GitHub stars
- 19
- Downloads
- 428
- Categories
- Other, Developer Tools
Jump to
- Zero configuration, no API keys or accounts needed
- 76 tools across 21 modules of Swiss open data
- Supports transport, weather, hydrology, geodata, companies, holidays, parliament, avalanche, air quality, Swiss Post, energy, statistics, SNB rates, recycling, news, voting, dams, hiking, real estate, traffic, and earthquakes
- One-click install via .mcpb bundles
- Module filtering and presets for token efficiency
- Docker image available on Docker Hub and GitHub Container Registry
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Swiss open data for AI — zero config, zero API keysCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Does it require any API keys or registration?
No, it requires zero API keys, no registration, and no .env files. Just run npx mcp-swiss.
What runtime is needed?
Node.js is required; the server runs via npx. The package is available on npm and also as a Docker image.
How many tools does it provide and can I load only a subset?
It provides 76 tools across 21 modules. You can load specific modules using --modules (e.g., transport,weather) or use built-in presets like commuter, outdoor, business, citizen, or minimal.
What transport protocol does it use?
mcp-swiss uses stdio transport. It works with any MCP-compatible client by adding the command npx -y mcp-swiss to the client's MCP server configuration.
Where does the data come from?
Data is sourced from Swiss open data authorities including SBB, MeteoSwiss, BAFU, swisstopo, ZEFIX federal registry, OpenParlData.ch, SLF, NABEL, Swiss Post, ElCom, BFS, SNB, OpenERZ, SRF, Basel-Stadt open data, SFOE, and the Swiss Seismological Service.
search_stations
Search for Swiss public transport stations/stops by name or coordinates
get_connections
Get train/bus connections between two Swiss locations
get_departures
Get live departures from a Swiss transport station
get_arrivals
Get live arrivals at a Swiss transport station
get_nearby_stations
Find Swiss public transport stations near given coordinates
get_weather
Get current weather conditions at a Swiss MeteoSwiss station (e.g. BER=Bern, ZUE=Zürich, LUG=Lugano)
list_weather_stations
List all available MeteoSwiss weather stations in Switzerland
get_weather_history
Get historical weather data for a Swiss station
get_water_level
Get current river or lake water level and temperature at a Swiss hydrological station
list_hydro_stations
List all available BAFU hydrological monitoring stations (rivers and lakes) in Switzerland
get_water_history
Get historical river/lake water level data for a Swiss hydrological station
geocode
Convert a Swiss address or place name to coordinates (swisstopo)
reverse_geocode
Convert coordinates to a Swiss address (swisstopo)
search_places
Search Swiss place names, localities, mountains, and geographic features
get_solar_potential
Get rooftop solar energy potential for a location in Switzerland
identify_location
Identify geographic features and data layers at a specific Swiss location
get_municipality
Get information about a Swiss municipality by name
search_companies
Search Swiss company registry (ZEFIX) by name, canton, or legal form
get_company
Get full details of a Swiss company by its ZEFIX internal ID (ehraid). Use search_companies first to find the ehraid — it is returned in company search results.
search_companies_by_address
Search Swiss companies registered at a specific address or locality
list_cantons
List all Swiss cantons with their codes
list_legal_forms
List all Swiss company legal forms (AG, GmbH, etc.)
get_public_holidays
Get Swiss public holidays for a given year, optionally filtered by canton (e.g. ZH, BE, GE). Returns national and canton-specific holidays.
get_school_holidays
Get Swiss school holidays for a given year, optionally filtered by canton. Returns holiday periods (start/end dates) by canton.
is_holiday_today
Check whether today is a Swiss public holiday, optionally for a specific canton. Returns the holiday name if it is one.
search_parliament_business
Search Swiss Parliament political affairs — bills, motions, interpellations, postulates, questions, and initiatives. Uses OpenParlData.ch full-text search across the Federal Assembly (Bundesversammlung).
get_parliament_members
List current or past Swiss Parliament members (National Council and Council of States). Filter by canton or party.
get_parliament_votes
Get voting results for a specific parliamentary affair (Geschäft). Returns all recorded votes for the given affair ID from OpenParlData.
get_session_schedule
Get upcoming and recent Swiss parliament sessions (Sessionen). Shows session names, dates and types.
search_parliament_speeches
Get debate speeches and contributions for a specific parliamentary affair. Returns speaker info and speech details.
get_politician_interests
Get declared interests and mandates of a Swiss parliament member — board memberships, consulting roles, organizations.
search_cantonal_affairs
Search political affairs across Swiss cantonal parliaments (Kantonsräte). Covers all 26 cantons via OpenParlData.
get_parliamentary_documents
Get official documents for a parliamentary affair — reports, committee opinions, federal council statements.
get_committee_meetings
Get Swiss parliament committee/commission meeting schedule. Optionally filter by committee group ID.
get_avalanche_bulletin
Get the current Swiss avalanche danger bulletin from SLF (WSL Institute for Snow and Avalanche Research). Returns current bulletin URLs, danger level descriptions, and links to the interactive map. The bulletin is published daily at ~08:00 and updated at ~17:00 Swiss time (October–May).
list_avalanche_regions
List all Swiss avalanche warning regions as defined by SLF/EAWS. Returns region IDs, names, cantons, and typical elevations. Use region IDs with get_avalanche_bulletin.
list_air_quality_stations
List all official Swiss NABEL (Nationales Beobachtungsnetz für Luftfremdstoffe) air quality monitoring stations operated by BAFU/EMPA. Returns station codes, names, cantons, coordinates, and environment types.
get_air_quality
Get information about a Swiss NABEL air quality monitoring station, including location, environment type, Swiss legal limits (LRV), and a direct link to the BAFU live data portal. Use station codes from list_air_quality_stations (e.g. BER=Bern, ZUE=Zürich, LUG=Lugano).
lookup_postcode
Look up a Swiss postcode (PLZ) to get locality name, canton, and coordinates. Source: Swiss federal geodata (swisstopo).
search_postcode
Search Swiss postcodes by city or locality name. Returns all PLZ entries matching the name. Source: Swiss federal geodata (swisstopo).
list_postcodes_in_canton
List all Swiss postcodes (PLZ) in a given canton. Accepts 2-letter canton codes (ZH, BE, GR…) or full names. Source: Swiss federal geodata (swisstopo).
track_parcel
Generate a Swiss Post parcel tracking URL for a given tracking number. Swiss Post does not provide a public tracking API, so this returns the official tracking page URL to open in a browser.
get_electricity_tariff
Get Swiss electricity tariff (price in Rappen/kWh) for a municipality from ElCom (Swiss Federal Electricity Commission). Returns total price and price breakdown by component (energy, grid, taxes). Valid years: 2011–2026.
compare_electricity_tariffs
Compare Swiss electricity tariffs across multiple municipalities side-by-side. Returns prices sorted from cheapest to most expensive. Useful for relocation decisions or cost analysis.
search_municipality_energy
Search for Swiss municipality IDs needed for electricity tariff lookup. Returns BFS municipality numbers for use with get_electricity_tariff and compare_electricity_tariffs.
get_population
Get Swiss population data from the Federal Statistical Office (FSO/BFS). Returns population figures for Switzerland, a canton, or all cantons. Data source: BFS STATPOP (permanent resident population).
search_statistics
Search Swiss Federal Statistical Office (BFS/OFS/UST) datasets on opendata.swiss. Returns matching dataset titles, IDs, and descriptions.
get_statistic
Fetch details and resource links for a specific BFS/OFS dataset by its opendata.swiss identifier. Use search_statistics first to find dataset IDs.
list_currencies
List all currencies available from the Swiss National Bank (SNB) for CHF exchange rate data. Returns currency codes, names, and regions.
get_exchange_rate
Get the current CHF exchange rate for a currency from the Swiss National Bank (SNB). Returns the latest monthly average rate and currency details.
get_exchange_rate_history
Get historical CHF exchange rates for a currency from the Swiss National Bank (SNB). Returns monthly average rates with optional date filtering. Without date range, returns the most recent 90 months.
get_waste_collection
Get upcoming waste collection dates for a Zurich city ZIP code. Returns the next scheduled pickups sorted by date. Currently covers Zurich city only (ZIP codes 8001–8099). Powered by OpenERZ (openerz.metaodi.ch).
list_waste_types
List all supported waste collection types for Zurich city. Returns each type with its description and local name. Currently covers Zurich city only (ZIP codes 8001–8099). Powered by OpenERZ (openerz.metaodi.ch).
get_waste_calendar
Get a full monthly waste collection calendar for a Zurich city ZIP code. Returns all collection events grouped by date for the given month. Currently covers Zurich city only (ZIP codes 8001–8099). Powered by OpenERZ (openerz.metaodi.ch).
get_swiss_news
Get the latest Swiss news headlines from SRF (Schweizer Radio und Fernsehen). Returns top news articles with title, description, link, and publication date.
search_swiss_news
Search Swiss news headlines from SRF by keyword. Searches across all available news categories and returns matching articles.
get_voting_results
Get results of Swiss popular votes (Volksabstimmungen) from Basel-Stadt open data. Returns vote title, date, yes/no counts, yes percentage, and eligible voters. Covers national and cantonal votes since 2021.
search_votes
Search Swiss popular votes by keyword in the vote title (e.g. 'Initiative', 'Klimaschutz', 'CO2', 'AHV'). Returns matching votes with yes/no results.
get_vote_details
Get detailed breakdown of a specific Swiss popular vote, including per-district results for Basel-Stadt (Basel city, Riehen, Bettingen, and overseas voters).
search_dams
Search Swiss dams and reservoirs under federal supervision by name. Searches both dam names and reservoir names. Returns dam type, height, crest length, reservoir volume, purpose, canton, and year built. Data source: Swiss Federal Office of Energy (SFOE) via swisstopo BGDI.
get_dams_by_canton
List all Swiss dams under federal supervision in a given canton. Returns up to 20 dams with basic details. Data source: Swiss Federal Office of Energy (SFOE) via swisstopo BGDI.
get_dam_details
Get full technical details of a specific Swiss dam by name. Returns all available fields: dam type, height, crest length, crest level, reservoir name, impoundment volume, storage level, purpose, operation dates, federal supervision start, and canton. Data source: Swiss Federal Office of Energy (SFOE) via swisstopo BGDI.
get_trail_closures
Get current Swiss hiking trail closures and detours from the official ASTRA/Schweizer Wanderwege dataset. Filter by closure reason (e.g. Steinschlag, Bauarbeiten, Hangrutsch) or type (closure, detour). If no parameters are given, returns all active closures. Data source: swisstopo ch.astra.wanderland-sperrungen_umleitungen.
get_trail_closures_nearby
Find Swiss hiking trail closures and detours near a given GPS coordinate. Converts WGS84 coordinates to Swiss LV95 and queries the swisstopo identify endpoint. Returns closures within the specified radius.
get_property_price_index
Get the Swiss Residential Property Price Index (SWRPI) — official BFS data. Baseline Q4 2019 = 100. Returns quarterly index values tracking Swiss property prices since 2009. Covers all properties, single-family houses, and apartments separately.
search_real_estate_data
Search opendata.swiss for Swiss real estate and housing datasets. Finds datasets about property prices, rents, housing construction, vacancy rates, and more. Returns dataset names, descriptions, and resource download URLs.
get_rent_index
Get the Swiss Consumer Price Index (CPI/LIK), which tracks cost of living including residential rents. Baseline December 1982 = 100. Published monthly by BFS. For property purchase prices, use get_property_price_index instead.
get_traffic_count
Get traffic volume at an ASTRA counting station in Switzerland by location name (e.g. 'Gotthard', 'Zürich', 'Genf'). Returns daily and weekday traffic counts, heavy vehicle percentage, and measurement year.
get_traffic_by_canton
List ASTRA traffic counting stations in a Swiss canton. Returns up to 20 stations with traffic data.
get_traffic_nearby
Find ASTRA traffic counting stations near a geographic coordinate in Switzerland. Returns nearby stations with traffic volume data.
get_recent_earthquakes
Get recent seismic events in and around Switzerland from the Swiss Seismological Service (SED) at ETH Zürich. Returns earthquakes and optionally quarry blasts, sorted by most recent first.
get_earthquake_details
Get full details for a specific seismic event by its SED (Swiss Seismological Service) event ID. Use event IDs returned by get_recent_earthquakes or search_earthquakes_by_location.
search_earthquakes_by_location
Search for earthquakes near a geographic location using the Swiss Seismological Service (SED) FDSN API. Useful for finding seismic activity near a Swiss city, landmark, or custom coordinates.
get_snow_conditions
Get current snow conditions across Switzerland from SLF (WSL Institute for Snow and Avalanche Research). Returns snow depth and new snow (24h) for IMIS stations, sorted by snow depth. Filter by canton or minimum altitude. Data updated daily.
list_snow_stations
List all SLF snow measurement stations in Switzerland (IMIS automatic stations and manual study plots). Returns station code, name, altitude, canton, and type. Sorted by elevation descending.
get_snow_measurements
Get detailed snow and weather measurements for a specific SLF station. IMIS stations return 30-min data (snow depth, temperature, humidity, wind, radiation). Study plots return daily data (snow depth, new snow, water equivalent). Use list_snow_stations to find station codes.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"swiss open data for ai \u2014 zero config, zero api keys": {
"swiss": {
"command": "npx",
"args": [
"-y",
"mcp-swiss"
]
}
}
}
}
McpServers
{
"swiss": {
"command": "npx",
"args": [
"-y",
"mcp-swiss"
]
}
}
mcp-swiss
Swiss open data for AI — zero config, zero API keys
Install · Tools · Demo · Data Sources
</div>
---
mcp-swiss is a Model Context Protocol server that gives any AI assistant direct access to Swiss open data — trains, weather, rivers, maps, and companies.
76 tools. No API keys. No registration. No server to run. Just npx mcp-swiss.
🚆 Transport — SBB, PostBus, trams, live departures, journey planning
🌤️ Weather — MeteoSwiss live conditions + historical data
🌊 Hydrology — BAFU river & lake levels (great for Aare swimming!)
🗺️ Geodata — swisstopo geocoding, solar potential, geographic layers
🏢 Companies — ZEFIX federal registry, all 700K+ Swiss companies
🎄 Holidays — Swiss public & school holidays by canton
🏛️ Parliament — Bills, votes, members, speeches, cantonal affairs (OpenParlData.ch)
🏔️ Avalanche — SLF danger bulletins and warning regions
💨 Air Quality — NABEL stations, Swiss legal limits (LRV)
📮 Swiss Post — Postcode lookup and parcel tracking
⚡ Energy — Electricity tariffs by municipality (ElCom)
📊 Statistics — Population, demographics, BFS datasets
🏦 SNB Rates — Swiss National Bank CHF exchange rates, historical data
♻️ Recycling — Zurich city waste collection calendar (OpenERZ)
📰 Swiss News — SRF news headlines and keyword search
🗳️ Voting — Swiss popular vote results (Basel-Stadt open data)
🌊 Dams — Swiss federal dam registry (SFOE/swisstopo)
🥾 Hiking — Swiss trail closures and hiking alerts (swisstopo)
🏠 Real Estate — Swiss property prices, rent index, housing data (BFS)
🚗 Traffic — ASTRA counting stations, daily volumes
🌍 Earthquakes — Swiss Seismological Service (SED/ETH Zürich), FDSN API
---
Installation
Quick Start
npx mcp-swiss
That's it. No API keys, no .env files, no accounts. Pick your client below and paste the config.
---
One-Click Install (.mcpb)
.mcpb bundles work with Claude Desktop and any MCP Bundle-compatible app.
Open the downloaded file — your app handles the rest. No config editing, no terminal, no API keys.
---
Claude Desktop
Edit your config file:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%\Claude\claude_desktop_config.json
- Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"swiss": {
"command": "npx",
"args": ["-y", "mcp-swiss"]
}
}
}
Restart Claude Desktop after saving.
---
Claude Code (CLI)
claude mcp add swiss -- npx -y mcp-swiss
That's it — Claude Code will use it in your next session.
---
Cursor
> Requires Cursor 0.45.6+
Option A: Project config — create .cursor/mcp.json in your project root:
{
"mcpServers": {
"swiss": {
"command": "npx",
"args": ["-y", "mcp-swiss"]
}
}
}
Option B: Global config — create ~/.cursor/mcp.json:
{
"mcpServers": {
"swiss": {
"command": "npx",
"args": ["-y", "mcp-swiss"]
}
}
}
Option C: Via Cursor Settings UI
1. Open Cursor Settings
2. Go to Features → MCP Servers
3. Click + Add new global MCP server
4. Paste the JSON config above
---
VS Code (GitHub Copilot)
One-click Install
CLI Install
```bash
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





