Switzerland MCP 🇨🇭
NPM · MCP-SWISS
Swiss open data MCP server. 94 tools, zero API keys. Transport, weather, geodata, catalogue.
Available components
Last scanned (6 hours ago)
Scores higher than 97% of npm servers
Category Maps and Location
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to vikramgorla/mcp-swiss). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 2 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability71
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 6624 tokens (~70/item across 94 items; 94 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management98
- Stability check failed: the tool surface changed between 0.7.1 and 0.9.0: 1 tool removals, 1 breaking changes, 19 additions. See how to fix → Fail
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 94% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 94 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 94 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 95 to 98.
- 3 Nov 26 −3
- Stability: pass → fail ▼ security
- Tool coverage: 100% → 94% ▼ functional
- Schema quality: 89 → 70 ▲ functional
- Schema quality: excellent → good functional
- Package version: 0.8.2 → 0.9.0 functional
- 2 Nov 26 +47
- Injection markers: unverified → pass ▲ security
- Stability: unverified → pass ▲ security
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Package version: 0.8.0 → 0.8.2 functional
- 1 Nov 26 −32
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 0.7.1 → 0.8.2 functional
- 31 Oct 26 −5
- Malware scan: pass → unverified ▼ security
- Provenance: fail → pass ▲ security
- The attested source repository moved: vikramgorla/mcp-swiss security
- Package version: 0.7.1 → 0.8.0 functional
- 28 Oct 26 0
- Stability: 0.97 → pass security
- 27 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Oct 26 −1
- Stability: pass → 0.93 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/mcp-swiss@0.9.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | vikramgorla/mcp-swiss |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/vikramgorla/mcp-swiss/.github/workflows/release.yml@refs/heads/main |
| Rekor log index | 3657811132 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:bf4c2ee13905c79d2bc3c963a4eb7d6cb5705fce5df24ef81594cd0f519740a39b31ab909af53dafc6468f20a21f87e1783eeae8095b6f707035d6f60 |
Background: How many MCP packages publish verified provenance →
Dependencies 92 packages
| Packages resolved | 92 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
buildings_near ~73
GWR buildings nearest a WGS84 point (small radius), with EGIDs
| Name | Type | Req | Description |
|---|---|---|---|
| lat | number | yes | Latitude (WGS84) |
| limit | number | – | max 50 |
| lon | number | yes | Longitude (WGS84) |
| radius | number | – | Metres, max 250 |
No output schema declared.
No examples provided.
compare_electricity_tariffs ~63
Compare electricity tariffs across 2–20 municipalities
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| municipalities | array | yes | BFS numbers, e.g. ["261", "351"] |
| year | string | – | 2011 onward, default: current year |
No output schema declared.
No examples provided.
find_map_features ~182
Find geo.admin features on one ech MapServer layer by an attribute value. Identify a point first if you need the attribute names. Example: layer ch.swisstopo.swissboundaries3d-gemeinde-flaeche.fill, search_field gemname, search_text Bern.
| Name | Type | Req | Description |
|---|---|---|---|
| contains | boolean | – | When true (default), match values that contain the text. When false, match the whole value. |
| include_historical | boolean | – | Keep historical versions when a layer has an is_current_jahr attribute (default false). |
| layer | string | yes | Layer id from search_map_layers. |
| limit | number | – | Maximum features (default 10, max 25). |
| search_field | string | yes | Attribute name to search (e.g. gemname, name, label). |
| search_text | string | yes | Value to search for. |
No output schema declared.
No examples provided.
geocode ~30
Address or place name to WGS84 coordinates (swisstopo)
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
No output schema declared.
No examples provided.
get_air_quality ~63
NABEL station info: location, environment type, legal limits (LRV) and a link to BAFU live data (no measurements returned)
| Name | Type | Req | Description |
|---|---|---|---|
| station | string | yes | Station code, e.g. BER, ZUE, LUG, BAS, DAV |
No output schema declared.
No examples provided.
get_arrivals ~53
Live arrivals at a station
| Name | Type | Req | Description |
|---|---|---|---|
| datetime | string | – | YYYY-MM-DDTHH:MM, default: now |
| limit | number | – | default: 10 |
| station | string | yes | Station name |
No output schema declared.
No examples provided.
get_avalanche_bulletin ~155
Live SLF avalanche bulletin: danger level (1-5), avalanche problems with aspect and elevation, validity and advice text, for one warning region, a coordinate, or all of Switzerland. Outside the winter season it reports that no bulletin is in force
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | YYYY-MM-DD or ISO timestamp for an archived bulletin; omit for the current one |
| language | string | – | – |
| lat | number | – | WGS84 latitude, with lon; alternative to region |
| lon | number | – | WGS84 longitude, with lat |
| region | string | – | EAWS region id (e.g. CH-7114) or name, see list_avalanche_regions |
No output schema declared.
No examples provided.
get_building ~82
Full GWR record of one building by EGID: construction, floors, areas, heating/hot-water system and energy source, parcel (EGRID), entrances, dwellings
| Name | Type | Req | Description |
|---|---|---|---|
| egid | number | yes | EGID, e.g. 2119257 |
| max_dwellings | number | – | max 500; 0 = summary only |
No output schema declared.
No examples provided.
get_committee_meetings ~43
Federal parliament committee meeting schedule
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | number | – | Committee group ID (omit for all) |
| limit | number | – | max 20 |
No output schema declared.
No examples provided.
get_company ~37
Full company details by ZEFIX ehraid (from search_companies)
| Name | Type | Req | Description |
|---|---|---|---|
| ehraid | number | yes | e.g. 119283 |
No output schema declared.
No examples provided.
get_connections ~94
Train/bus connections between two locations
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | YYYY-MM-DD, default: today |
| from | string | yes | Station or address |
| isArrivalTime | boolean | – | Treat time as arrival time |
| limit | number | – | 1-16, default: 4 |
| time | string | – | HH:MM, default: now |
| to | string | yes | Station or address |
No output schema declared.
No examples provided.
get_dam_details ~37
Full technical details of one dam by name
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | e.g. Grande Dixence (see search_dams) |
No output schema declared.
No examples provided.
get_dams_by_canton ~49
Federally supervised dams in a canton
| Name | Type | Req | Description |
|---|---|---|---|
| canton | string | yes | Canton code, e.g. VS |
| limit | number | – | Dams to return (1-100) |
No output schema declared.
No examples provided.
get_departures ~53
Live departures from a station
| Name | Type | Req | Description |
|---|---|---|---|
| datetime | string | – | YYYY-MM-DDTHH:MM, default: now |
| limit | number | – | default: 10 |
| station | string | yes | Station name |
No output schema declared.
No examples provided.
get_earthquake_details ~58
Full details of one seismic event by SED event ID
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string | yes | From the other earthquake tools, e.g. smi:ch.ethz.sed/sc25a/Event/2026errxzt |
No output schema declared.
No examples provided.
get_electricity_tariff ~109
ElCom electricity tariff (Rp./kWh) for a municipality, with component breakdown
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | H1–H8 household (H4 ≈ 4500 kWh/yr), C1–C7 commercial |
| municipality | string | yes | BFS number, e.g. 261 (Zürich), 351 (Bern); see search_municipality_energy |
| year | string | – | 2011 onward, default: current year |
No output schema declared.
No examples provided.
get_exchange_rate ~38
Latest SNB monthly-average CHF exchange rate for a currency
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | yes | ISO 4217 code, e.g. EUR |
No output schema declared.
No examples provided.
get_exchange_rate_history ~61
Historical SNB monthly-average CHF exchange rates (default: last 90 months)
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | yes | ISO 4217 code, e.g. EUR |
| from | string | – | YYYY-MM |
| to | string | – | YYYY-MM |
No output schema declared.
No examples provided.
get_municipality ~22
Municipality info by name
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
No output schema declared.
No examples provided.
get_nearby_stations ~60
Stations near coordinates
| Name | Type | Req | Description |
|---|---|---|---|
| distance | number | – | Max distance (m) |
| limit | number | – | Max results |
| x | number | yes | Latitude (WGS84) |
| y | number | yes | Longitude (WGS84) |
No output schema declared.
No examples provided.
get_ogd_history ~259
Get historical MeteoSwiss OGD measurements for one station and date range by parsing the STAC CSV assets. Daily data defaults to the smaller recent/historical files. Hourly history is limited to 14 days because decade files are large. Times are Swiss local time (no offset).
| Name | Type | Req | Description |
|---|---|---|---|
| collection | string | – | OGD collection alias (default smn). Aliases: smn, smn-precip, smn-tower, nime, nbcn, nbcn-precip, obs, phenology, tot. A full STAC id such as ch.meteoschweiz.ogd-smn is also accepted. |
| end_date | string | yes | Last day YYYY-MM-DD (inclusive). |
| granularity | string | – | Resolution: t, h, d (daily, default), m, or y. |
| limit | number | – | Maximum rows (default 31, max 100). When truncated, the latest rows in the range are kept. |
| parameters | string | – | Comma-separated parameter codes, or omit for the common meteorological columns. |
| start_date | string | yes | First day YYYY-MM-DD (inclusive). |
| station | string | yes | Station abbreviation (e.g. BER). |
No output schema declared.
No examples provided.
get_ogd_recent ~275
Get the latest MeteoSwiss OGD measurements for one station by reading the STAC CSV asset (10-minute/hourly 'now' file when available, otherwise the recent file). Times are Swiss local time. Use list_ogd_stations for codes such as BER, SMA, LUG.
| Name | Type | Req | Description |
|---|---|---|---|
| collection | string | – | OGD collection alias (default smn). Aliases: smn, smn-precip, smn-tower, nime, nbcn, nbcn-precip, obs, phenology, tot. A full STAC id such as ch.meteoschweiz.ogd-smn is also accepted. |
| granularity | string | – | Resolution: t (10-minute), h (hourly, default), d (daily), m (monthly), y (yearly). |
| limit | number | – | Number of most recent rows (default 24, max 168). |
| parameters | string | – | Comma-separated parameter codes (e.g. tre200h0,rre150h0). Omit for the common temperature, humidity, precipitation, wind, pressure, sunshine, and radiation columns. Use 'all' for the first data colum… |
| station | string | yes | Station abbreviation (e.g. BER, SMA, LUG, BAS). |
No output schema declared.
No examples provided.
get_opendata_dataset ~75
Get metadata for one opendata.swiss dataset by its catalogue name or UUID. Includes the publisher, description, keywords, and a short resource summary. Use list_opendata_resources for the full download list.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset_id | string | yes | Dataset name or id (e.g. weather-station-klosters). |
No output schema declared.
No examples provided.
get_parliament_members ~98
Federal parliament members (National Council, Council of States), filterable by canton/party
| Name | Type | Req | Description |
|---|---|---|---|
| active | boolean | – | Only currently seated members |
| canton | string | – | Canton name in German, e.g. Zürich, Genf, Waadt |
| limit | number | – | max 50 |
| party | string | – | Party name/abbreviation, e.g. SVP, SP, FDP, Grüne, Mitte |
No output schema declared.
No examples provided.
get_parliament_votes ~40
Recorded votes on a parliamentary affair (Geschäft)
| Name | Type | Req | Description |
|---|---|---|---|
| affair_id | number | yes | OpenParlData affair ID (from search_parliament_business) |
No output schema declared.
No examples provided.
get_parliamentary_documents ~58
Official documents (reports, committee opinions, Federal Council statements) for a parliamentary affair
| Name | Type | Req | Description |
|---|---|---|---|
| affair_id | number | yes | OpenParlData affair ID (from search_parliament_business) |
| limit | number | – | max 20 |
No output schema declared.
No examples provided.
get_politician_interests ~49
Declared interests and mandates (boards, consulting roles) of a federal parliament member
| Name | Type | Req | Description |
|---|---|---|---|
| person_id | number | yes | OpenParlData person ID (from get_parliament_members) |
No output schema declared.
No examples provided.
get_pollen_current ~60
Latest hourly pollen concentrations (alder, birch, hazel, beech, ash, oak, grasses) at a MeteoSwiss station
| Name | Type | Req | Description |
|---|---|---|---|
| station | string | yes | e.g. PZH Zürich, PBE Bern, PBS Basel |
No output schema declared.
No examples provided.
get_pollen_daily ~51
Daily average pollen concentrations at a MeteoSwiss station
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | Recent days, max 90 |
| station | string | yes | e.g. PZH Zürich, PBE Bern |
No output schema declared.
No examples provided.
get_population ~79
Permanent resident population (BFS STATPOP) for Switzerland, a canton or all cantons
| Name | Type | Req | Description |
|---|---|---|---|
| canton | string | – | Canton code or name (e.g. ZH, Geneva); 'all' for every canton; omit for national total |
| year | number | – | STATPOP year, from 2010; default is the latest published |
No output schema declared.
No examples provided.
get_property_price_index ~93
BFS residential property price index (IMPI), quarterly since 2017Q1, Q4 2019 = 100
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | – | Inclusive, e.g. 2020Q1 or 2020 (default: earliest) |
| to | string | – | Inclusive, e.g. 2024Q4 or 2024 (default: latest) |
| type | string | – | – |
No output schema declared.
No examples provided.
get_public_holidays ~53
Public holidays for a year, national and cantonal
| Name | Type | Req | Description |
|---|---|---|---|
| canton | string | – | Canton code, e.g. ZH (omit for all) |
| year | number | yes | e.g. 2026 |
No output schema declared.
No examples provided.
get_recent_earthquakes ~69
Recent earthquakes in and around Switzerland (SED, ETH Zürich)
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | Past days, max 365 |
| include_blasts | boolean | – | Include quarry blasts |
| limit | number | – | max 100 |
| min_magnitude | number | – | – |
No output schema declared.
No examples provided.
get_rent_index ~84
BFS consumer price index (CPI/LIK, incl. rents), monthly, Dec 1982 = 100. Not a dedicated rent index; for purchase prices use get_property_price_index
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Recent months, 1–60; ignored if year set |
| year | number | – | 1982 onward (omit for recent months) |
No output schema declared.
No examples provided.
get_school_holidays ~52
School holiday periods for a year, by canton
| Name | Type | Req | Description |
|---|---|---|---|
| canton | string | – | Canton code, e.g. ZH (omit for all) |
| year | number | yes | e.g. 2026 |
No output schema declared.
No examples provided.
get_session_schedule ~26
Upcoming and recent federal parliament sessions
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | max 20 |
No output schema declared.
No examples provided.
get_snow_conditions ~64
Current snow depth and 24h new snow at SLF IMIS stations, deepest first
| Name | Type | Req | Description |
|---|---|---|---|
| canton | string | – | Canton code, e.g. GR |
| limit | number | – | max 100 |
| min_altitude | number | – | Metres |
No output schema declared.
No examples provided.
get_snow_measurements ~71
Measurements for one SLF station: IMIS 30-min snow/weather data, or study-plot daily snow data
| Name | Type | Req | Description |
|---|---|---|---|
| station_code | string | yes | e.g. DAV2, WFJ2, 4AO0 (see list_snow_stations) |
| type | string | – | – |
No output schema declared.
No examples provided.
get_solar_potential ~44
Rooftop solar potential at a location
| Name | Type | Req | Description |
|---|---|---|---|
| lat | number | yes | Latitude (WGS84) |
| lng | number | yes | Longitude (WGS84) |
No output schema declared.
No examples provided.
get_station_accessibility ~109
Platform accessibility for an SBB station: platform number, length, type, and whether access is rail-free (step-free). Source: data.sbb.ch platform dataset.
| Name | Type | Req | Description |
|---|---|---|---|
| contains | boolean | – | When true, match station names that contain the text. Default false matches the whole name. |
| limit | number | – | Maximum platforms (default 30, max 80). |
| station | string | yes | Station name as published by SBB (e.g. Bern, Zürich HB, Genève). |
No output schema declared.
No examples provided.
get_station_passengers ~142
Passenger counts for an SBB station from the data.sbb.ch frequency dataset. Returns average daily, weekday, and weekend boardings and alightings (Ein- und Aussteigende). Newest year first.
| Name | Type | Req | Description |
|---|---|---|---|
| contains | boolean | – | When true, match station names that contain the text. Default false matches the whole name. |
| limit | number | – | Maximum rows (default 10, max 30). |
| station | string | yes | Station name as published by SBB (e.g. Bern, Zürich HB, Genève). |
| year | number | – | Optional year (e.g. 2024). Omit to return the newest years. |
No output schema declared.
No examples provided.
get_station_punctuality ~171
Punctuality for an SBB stop on the previous operating day (ist-daten-sbb target vs actual times). Returns stop counts, arrival and departure delay counts, cancellations, and a short sample of delayed arrivals. A stop is delayed when SBB flags it, which is generally a delay of about three minutes or more.
| Name | Type | Req | Description |
|---|---|---|---|
| contains | boolean | – | When true, match station names that contain the text. Default false matches the whole name. |
| limit | number | – | Delayed-arrival samples to include (default 5, max 15). |
| line | string | – | Optional line filter (e.g. IC1, IR15, S7). |
| station | string | yes | Station name as published by SBB (e.g. Bern, Zürich HB, Genève). |
No output schema declared.
No examples provided.
get_statistic ~48
Details and resource links for a BFS dataset by opendata.swiss ID (from search_statistics)
| Name | Type | Req | Description |
|---|---|---|---|
| dataset_id | string | yes | e.g. bevolkerungsstatistik-einwohner |
No output schema declared.
No examples provided.
get_swiss_news ~33
Latest SRF news headlines
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| limit | number | – | max 50 |
No output schema declared.
No examples provided.
get_traffic_by_canton ~40
ASTRA traffic counting stations in a canton (max 20)
| Name | Type | Req | Description |
|---|---|---|---|
| canton | string | yes | Canton code, e.g. ZH |
No output schema declared.
No examples provided.
get_traffic_count ~33
ASTRA traffic counting station volumes by location name
| Name | Type | Req | Description |
|---|---|---|---|
| location | string | yes | e.g. Gotthard |
No output schema declared.
No examples provided.
get_traffic_nearby ~57
ASTRA traffic counting stations near a WGS84 point
| Name | Type | Req | Description |
|---|---|---|---|
| lat | number | yes | Latitude (WGS84) |
| lon | number | yes | Longitude (WGS84) |
| radius | number | – | Metres |
No output schema declared.
No examples provided.
get_trail_closures ~74
Current hiking trail closures and detours (ASTRA/Schweizer Wanderwege)
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | max 100 |
| reason | string | – | Partial match, e.g. Steinschlag, Bauarbeiten, Hangrutsch |
| type | string | – | Omit for both |
No output schema declared.
No examples provided.
get_trail_closures_nearby ~66
Hiking trail closures and detours near a WGS84 point
| Name | Type | Req | Description |
|---|---|---|---|
| lat | number | yes | Latitude (WGS84) |
| lon | number | yes | Longitude (WGS84) |
| radius | number | – | Metres, max 50000 |
No output schema declared.
No examples provided.
get_vote_details ~68
Per-district Basel-Stadt results (Basel, Riehen, Bettingen, abroad) for one vote. Give vote_title and/or date
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | YYYY-MM-DD |
| vote_title | string | – | Partial title, e.g. CO2-Gesetz |
No output schema declared.
No examples provided.
How do I install the Switzerland MCP 🇨🇭 server?
Switzerland MCP 🇨🇭 runs locally as an npm package, launched with npx -y mcp-swiss. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · mcp-swiss
claude mcp add vikramgorla-swiss -- npx -y mcp-swiss
What is the Switzerland MCP 🇨🇭 server?
Switzerland MCP 🇨🇭 is listed in the public MCP registry as io.github.vikramgorla/swiss. Swiss open data MCP server. 94 tools, zero API keys. Transport, weather, geodata, catalogue. This page covers its npm package (mcp-swiss).
Is the Switzerland MCP 🇨🇭 server safe to use?
Switzerland MCP 🇨🇭 scores 94 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Switzerland MCP 🇨🇭 server expose?
Switzerland MCP 🇨🇭 exposes 94 tools: search_stations, get_connections, get_departures, get_arrivals, get_nearby_stations, and 89 more. Their descriptions and schemas cost roughly 6,624 tokens of context every time the server is loaded.
Is the Switzerland MCP 🇨🇭 server still maintained?
Switzerland MCP 🇨🇭 is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Switzerland MCP 🇨🇭 server under?
Switzerland MCP 🇨🇭 declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.