VOOZH about

URL: https://mcp.so/server/mcp-swiss/vikramgorla

โ‡ฑ Swiss open data for AI โ€” zero config, zero API keys MCP Server


Swiss open data for AI โ€” zero config, zero API keys

@vikramgorla

Swiss open data MCP server โ€” transport, weather, geodata, companies, etc,. Zero API keys.
Overview

mcp-swiss

Swiss open data for AI โ€” zero config, zero API keys

๐Ÿ‘ npm
๐Ÿ‘ CI
๐Ÿ‘ License
๐Ÿ‘ MCP
๐Ÿ‘ Downloads
๐Ÿ‘ Stars
๐Ÿ‘ Node

Install ยท Tools ยท Demo ยท Data Sources


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.

68 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, councillors, session schedule
๐Ÿ”๏ธ 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.


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

๐Ÿ‘ Install in VS Code
๐Ÿ‘ Install in VS Code Insiders

CLI Install

# VS Code
code --add-mcp '{"name":"swiss","command":"npx","args":["-y","mcp-swiss"]}'
# VS Code Insiders
code-insiders --add-mcp '{"name":"swiss","command":"npx","args":["-y","mcp-swiss"]}'

Manual Config

Add to your VS Code User Settings (JSON) โ€” press Ctrl+Shift+P โ†’ Preferences: Open User Settings (JSON):

{
 "mcp": {
 "servers": {
 "swiss": {
 "command": "npx",
 "args": ["-y", "mcp-swiss"]
 }
 }
 }
}

Or add to .vscode/mcp.json in your workspace (shareable with your team):

{
 "servers": {
 "swiss": {
 "command": "npx",
 "args": ["-y", "mcp-swiss"]
 }
 }
}

Windsurf

Add to ~/.codeium/windsurf/model_config.json:

{
 "mcpServers": {
 "swiss": {
 "command": "npx",
 "args": ["-y", "mcp-swiss"]
 }
 }
}

Cline (VS Code)

Open VS Code settings.json and add:

{
 "cline.mcpServers": {
 "swiss": {
 "command": "npx",
 "args": ["-y", "mcp-swiss"]
 }
 }
}

Any MCP Client

mcp-swiss uses stdio transport and requires no environment variables. The universal config:

{
 "command": "npx",
 "args": ["-y", "mcp-swiss"]
}

This works with any MCP-compatible client โ€” just plug it in.


Demo Prompts

Once connected, try asking your AI:

PromptWhat it uses
"Next 5 trains from Zรผrich HB to Geneva"get_connections
"Is the Aare in Bern warm enough to swim?"get_water_level
"Weather in Lugano vs Zรผrich today"get_weather
"Find blockchain companies registered in Zug"search_companies
"Solar potential of Bundesplatz 3, Bern"geocode + get_solar_potential
"Live departures from Bern HB"get_departures
"What rivers are near Thun?"list_hydro_stations + get_water_level
"Plan my Saturday: train to Interlaken, check weather"Multiple tools chained
"Is next Monday a holiday in Zรผrich?"get_public_holidays
"What did the Swiss parliament vote on recently?"get_latest_votes
"What's the avalanche danger level in the Bernese Alps?"get_avalanche_bulletin
"What's the postcode for Zermatt?"search_postcode
"Track my Swiss Post parcel 99.12.345678.12345678"track_parcel
"How much does electricity cost in Zรผrich vs Basel?"search_municipality_energy + compare_electricity_tariffs
"What's the population of canton Zug?"get_population

Tools

68 tools across 20 modules. Full specifications: docs/tool-specs.md ยท Machine-readable: docs/tools.schema.json

๐Ÿš† Transport (5 tools)

ToolDescription
search_stationsFind stations/stops by name or location
get_connectionsJourney planner between any two points
get_departuresLive departures from a station
get_arrivalsLive arrivals at a station
get_nearby_stationsStations near coordinates

๐ŸŒค๏ธ Weather & Hydrology (6 tools)

ToolDescription
get_weatherCurrent conditions at a MeteoSwiss station
list_weather_stationsAll ~160 MeteoSwiss stations with metadata
get_weather_historyHistorical weather data (up to 32 days)
get_water_levelRiver/lake level + temperature (BAFU)
list_hydro_stationsAll 400+ hydrological monitoring stations
get_water_historyHistorical hydrology data

๐Ÿ—บ๏ธ Geodata / swisstopo (6 tools)

ToolDescription
geocodeSwiss address โ†’ coordinates
reverse_geocodeCoordinates โ†’ Swiss address
search_placesSwiss place names, mountains, lakes, features
get_solar_potentialRooftop solar irradiation at a location
identify_locationAll geographic data layers at a point
get_municipalityMunicipality info by name

๐Ÿข Companies / ZEFIX (5 tools)

ToolDescription
search_companiesSearch by name, canton, legal form
get_companyFull company details by ZEFIX ehraid
search_companies_by_addressCompanies registered at an address
list_cantonsAll 26 Swiss cantons
list_legal_formsAG, GmbH, and all Swiss legal forms

๐ŸŽ„ Holidays (3 tools)

ToolDescription
get_public_holidaysSwiss public holidays by year, optionally filtered by canton
get_school_holidaysSchool holiday periods by year and canton
is_holiday_todayQuick check if today is a public holiday

๐Ÿ›๏ธ Parliament (4 tools)

ToolDescription
search_parliament_businessSearch bills, motions, interpellations
get_latest_votesRecent parliamentary vote results
search_councillorsFind members of the National/States Council
get_sessionsParliamentary session schedule

๐Ÿ”๏ธ Avalanche (2 tools)

ToolDescription
get_avalanche_bulletinCurrent avalanche bulletin with danger levels and PDF links
list_avalanche_regionsAll 22 Swiss avalanche warning regions

๐Ÿ’จ Air Quality (2 tools)

ToolDescription
list_air_quality_stationsAll 14 NABEL monitoring stations
get_air_qualityStation info, Swiss legal limits (LRV), and BAFU data links

๐Ÿ“ฎ Swiss Post (4 tools)

ToolDescription
lookup_postcodePLZ โ†’ locality, canton, coordinates
search_postcodeCity name โ†’ matching postcodes
list_postcodes_in_cantonAll postcodes in a canton
track_parcelGenerate Swiss Post tracking URL for a parcel

โšก Energy Prices (3 tools)

ToolDescription
get_electricity_tariffElectricity tariff by municipality with component breakdown
compare_electricity_tariffsCompare electricity prices across municipalities
search_municipality_energyFind municipality ID for tariff lookup

๐Ÿ“Š Statistics / BFS (3 tools)

ToolDescription
get_populationPopulation by canton or municipality from BFS STATPOP
search_statisticsSearch BFS datasets on opendata.swiss
get_statisticFetch detailed dataset information

๐Ÿฆ SNB Exchange Rates (3 tools)

ToolDescription
list_currenciesList all currencies available from the Swiss National Bank (SNB)
get_exchange_rateGet the current CHF exchange rate for any currency
get_exchange_rate_historyGet historical monthly CHF exchange rates with date filtering

โ™ป๏ธ Recycling / Waste Collection (3 tools)

ToolDescription
get_waste_collectionNext waste collection dates by Zurich ZIP code and waste type
list_waste_typesList all supported waste types with descriptions
get_waste_calendarFull waste collection calendar for a ZIP code (upcoming dates)

๐Ÿ“ฐ Swiss News (2 tools)

ToolDescription
get_swiss_newsLatest Swiss headlines from SRF by category (Switzerland/international/economy)
search_swiss_newsSearch SRF news by keyword across all categories

๐Ÿ—ณ๏ธ Voting (3 tools)

ToolDescription
get_voting_resultsSwiss popular vote results from Basel-Stadt open data
search_votesSearch popular votes by keyword (German/French/Italian)
get_vote_detailsDetailed per-district breakdown of a specific vote

๐ŸŒŠ Dams & Reservoirs (3 tools)

ToolDescription
search_damsSearch Swiss federal dams by name or keyword
get_dams_by_cantonList all federal dams in a canton
get_dam_detailsDetailed info on a specific dam (height, volume, purpose)

๐Ÿฅพ Hiking / Trail Closures (2 tools)

ToolDescription
get_trail_closuresSwiss trail closures and hiking alerts from swisstopo
get_trail_closures_nearbyTrail closures near given coordinates

๐Ÿ  Real Estate (3 tools)

ToolDescription
get_property_price_indexSwiss property price index (BFS Immo-Monitoring)
search_real_estate_dataSearch BFS real estate datasets on opendata.swiss
get_rent_indexSwiss rent index and housing cost data from BFS

๐Ÿš— Traffic / ASTRA (3 tools)

ToolDescription
get_traffic_countTraffic counting station data (ASTRA) โ€” daily volumes and heavy traffic share
get_traffic_by_cantonList ASTRA traffic counting stations filtered by canton
get_traffic_nearbyFind traffic counting stations near given coordinates

๐ŸŒ Earthquakes / SED (3 tools)

ToolDescription
get_recent_earthquakesRecent seismic events in/around Switzerland from the Swiss Seismological Service (SED) at ETH Zรผrich
get_earthquake_detailsFull details for a specific seismic event by SED event ID
search_earthquakes_by_locationEarthquakes near given coordinates with configurable radius, time range, and limit

Data Sources

All official Swiss open data โ€” no API keys required:

SourceDataDocs
transport.opendata.chSBB, PostBus, tramsAPI docs
api.existenz.chMeteoSwiss weather + BAFU hydrologyAPI docs
api3.geo.admin.chswisstopo federal geodataAPI docs
zefix.admin.chFederal company registrySwagger
openholidaysapi.orgSwiss public & school holidaysAPI docs
ws.parlament.chSwiss Parliament OData (bills, votes, councillors)OData docs
whiterisk.ch / aws.slf.chSLF/WSL avalanche bulletinsSLF
geo.admin.ch โ€” BAFU/NABELSwiss air quality monitoring stationsBAFU NABEL
geo.admin.ch โ€” swisstopoSwiss postcodes (Amtliches Ortschaftenverzeichnis)geo.admin.ch
strompreis.elcom.admin.chElCom electricity tariffs by municipalityElCom
pxweb.bfs.admin.ch + opendata.swissBFS population statistics (STATPOP) + datasetsBFS
data.snb.chSwiss National Bank CHF exchange ratesSNB data portal
openerz.metaodi.chZurich waste collection calendar (OpenERZ)OpenERZ
srf.chSRF Swiss news headlinesSRF
data.bs.chBasel-Stadt popular vote resultsOpen Data BS
geo.admin.ch โ€” SFOESwiss federal dam registrySFOE
geo.admin.ch โ€” swisstopoSwiss trail closures and hiking alertsswisstopo
pxweb.bfs.admin.chBFS property prices + rent indexBFS housing
geo.admin.ch โ€” ASTRATraffic counting stations + daily volumesASTRA
arclink.ethz.chSwiss Seismological Service earthquakes (SED/ETH)SED

Development

# Clone
git clone https://github.com/vikramgorla/mcp-swiss.git
cd mcp-swiss
# Install deps
npm install
# Build
npm run build
# Run in dev mode
npm run dev
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js

Testing

npm test

Contributing

We welcome contributions! mcp-swiss follows a strict PR-based workflow to keep the codebase clean and CI always green.

Quick links

  • CONTRIBUTING.md โ€” full contributor guide:

    • Development setup (clone, install, build, test)
    • Branch model (develop / main / feature branches)
    • Hard workflow rules (no direct pushes, always PRs, regular merge only)
    • Adding a new module (step-by-step with code templates)
    • Integration checklist (all files to update)
    • Code standards (TypeScript, no any, 50K response limit, zero API keys)
  • RELEASING.md โ€” release process for maintainers:

    • Step-by-step release workflow
    • Pre-release checklist
    • Version strategy (minor for features, patch for fixes)
    • Post-release verification
    • CI/CD workflow reference (ci.yml, release.yml, beta.yml, mcp-registry.yml)

Requirements

  • Node.js 20+
  • No API keys or accounts needed

License

MIT โ€” see LICENSE

Server Config

{
 "mcpServers": {
 "swiss": {
 "command": "npx",
 "args": [
 "-y",
 "mcp-swiss"
 ]
 }
 }
}
ยฉ 2025 MCP.so. All rights reserved.

Build with ShipAny.