swiss-apis-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| swiss_check_setupA | Check which optional API keys are configured. Call this first to know which Swiss API tools are fully operational and which need a free API key. |
| swiss_set_api_keyA | Store an optional API key so Swiss API tools that require it become fully operational. Keys are saved in ~/.swiss-apis-mcp/keys and take effect immediately — no server restart needed. Ask the user for the value before calling this tool. |
| swiss_transport_stationboardC | Get next departures from a Swiss public transport station. No API key needed. |
| swiss_transport_connectionsB | Find train/bus connections between two Swiss locations. No API key needed. |
| swiss_transport_station_searchB | Search for Swiss public transport stations by name or coordinates. |
| swiss_transport_gtfs_realtimeC | Get real-time GTFS data from opentransportdata.swiss. Requires OTD_API_KEY env variable. |
| swiss_geo_search_locationB | Search for any Swiss location: cities, addresses, communes, postal codes, points of interest. |
| swiss_geo_get_elevationA | Get elevation (altitude in meters) for WGS84 coordinates anywhere in Switzerland using the official swisstopo REFRAME service. |
| swiss_geo_identify_cantonC | Identify which Swiss canton a coordinate belongs to. |
| swiss_geo_identify_municipalityB | Identify which Swiss municipality (commune) a coordinate belongs to. |
| swiss_geo_convert_coordinatesA | Convert coordinates between Swiss LV95 (CH1903+), LV03 (CH1903) and WGS84 using official swisstopo REFRAME service. |
| swiss_geo_get_wmts_tile_urlB | Generate a swisstopo WMTS tile URL for map display (official Swiss national map). |
| swiss_geo_find_layer_featuresB | Search features in a swisstopo map layer by text (streets, buildings, stations, etc.). |
| swiss_health_search_datasetsB | Search BAG (Federal Office of Public Health) datasets on opendata.swiss. Covers infectious diseases, hospitalizations, mortality, vaccination rates, etc. |
| swiss_health_get_datasetB | Get direct download URLs and metadata for a specific BAG health dataset by its slug. |
| swiss_health_get_versorgungsatlasB | Get Swiss Health Atlas (Versorgungsatlas) data — 100+ health indicators by canton. Powered by BAG + Swiss Health Observatory. |
| swiss_parliament_searchA | Search Swiss parliamentary business (motions, postulates, votes) across 74+ cantonal and national parliaments via OpenParlData API. |
| swiss_parliament_personsC | Get Swiss parliament members (councillors, deputies) with their parliamentary activity. |
| swiss_federal_law_searchB | Search Swiss federal legislation via Fedlex (official federal law publication platform). |
| swiss_company_searchA | Search Swiss companies in ZEFIX (official commercial register). Requires ZEFIX_USER and ZEFIX_PASS env vars (free account at zefix.admin.ch). |
| swiss_company_by_uidA | Get full details of a Swiss company by its UID (e.g. CHE-123.456.789). Requires ZEFIX credentials. |
| swiss_company_publicationsB | Get Swiss Official Gazette (SOGC) publications for a company. Shows registration history, mergers, etc. |
| swiss_opendata_search_datasetsA | Search the opendata.swiss catalog — 14,000+ official Swiss government datasets. No auth required. |
| swiss_energy_search_datasetsC | Search Swiss energy data from SFOE (Swiss Federal Office of Energy) — electricity production, renewables, consumption, EV charging stations. |
| swiss_grid_energy_dataC | Get Swiss energy grid data from Swissgrid — actual electricity consumption, production mix, cross-border flows. |
| swiss_weather_search_meteoswissC | Search MeteoSwiss (official Swiss meteorology) open datasets. MeteoSwiss opened its OGD since May 2025. Individual API queries planned for Q2 2026. |
| swiss_avalanche_dataA | Get avalanche warning and snow data from SLF (Institute for Snow and Avalanche Research). |
| swiss_hydro_dataB | Get hydrological data — river levels, flow rates, flood forecasts from BAFU (Swiss Federal Office for the Environment). |
| swiss_food_search_productsB | Search Swiss food products in FoodRepo (EPFL open database of barcoded Swiss food products). Requires FOODREPO_API_KEY. |
| swiss_food_nutrition_databaseB | Search the Swiss Food Composition Database (FSVO) — official nutritional values of foods available in Switzerland. |
| swiss_statistics_searchC | Search the Swiss Federal Statistical Office (BFS/OFS) datasets — population, economy, education, society. |
| swiss_snb_financial_dataC | Get Swiss National Bank (SNB) financial and monetary data — exchange rates, interest rates, balance sheets. |
| swiss_postal_dataB | Get Swiss postal codes, street names, and administrative divisions via OpenPLZ API. Free, no auth. |
| swiss_migration_statisticsC | Get Swiss migration and population data from SEM (State Secretariat for Migration). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 34 tools
Most tools have distinct domains (transport, geo, health, company, parliament) which make them easy to distinguish. However, there is meaningful overlap between swiss_health_search_datasets, swiss_opendata_search_datasets, and swiss_statistics_search — all search government open data catalogs and could confuse an agent about which to pick for a data search, though domain prefixes help. Similarly swiss_energy_search_datasets versus swiss_grid_energy_data have related but distinct purposes.
The naming pattern is consistent with the swiss_ prefix and mostly follows verb_noun (search_x, get_x, identify_x) conventions. Minor deviations include swiss_postal_data, swiss_migration_statistics, and swiss_avalanche_data which drop a verb, and swiss_grid_energy_data which lacks a verb. Overall the pattern is readable and predictable enough for an agent.
34 tools is on the heavy side, exceeding the typical 3-15 well-scoped range. However, the server deliberately aggregates many distinct Swiss APIs (transport, geo, health, parliament, law, company, energy, weather, food, statistics), each domain having a legitimate subset of tools, so the count is defensible but borders on overwhelming.
The surface is broad, covering many Swiss data domains, but individual domains are inconsistently deep — transport has search/stationboard/connections/gtfs (deep), while weather only has a search tool with actual queries 'planned for Q2 2026' (a dead end), and avalanche/hydro have single tools. Within domains there's no clear operation lifecycle (create/update/delete) since these are mostly read-only, which fits the data-sourcing purpose, but several tools (weather, grid) note future/limited data access.