swiss-environment-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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| env_nabel_stationsA | Listet alle 16 NABEL-Messstationen des nationalen Luftmessnetzes (BAFU) auf. Das NABEL (Nationales Beobachtungsnetz für Luftfremdstoffe) misst seit 1991 kontinuierlich an 16 Standorten in der Schweiz: NO₂, O₃, PM10, PM2.5, SO₂, CO, Russ und weitere Parameter. Einstieg in Luftqualitätsdaten: Stationsübersicht, um danach mit
Args: params (NabelStationsInput): - response_format: 'markdown' oder 'json' Returns: str: Liste aller NABEL-Stationen mit Kürzel, Name, Kanton und Standorttyp. Enthält auch den Link zur BAFU-Datenabfrage. |
| env_nabel_currentA | Ruft aktuelle und historische Luftqualitätsdaten einer NABEL-Station ab. Liefert Metadaten, Download-Links für Messdaten (CSV) sowie direkte Abfrage-URLs für den BAFU-Datenbrowser. Gemessene Parameter: NO₂, O₃, PM10, PM2.5, SO₂, CO, Russ (BC). Aktuelle Luftqualität / Datenzugang einer konkreten NABEL-Station.
Liefert Metadaten + Datenlinks, keine Echtzeit-Rohwerte.
Stationskürzel via Args: params (NabelCurrentInput): - station: Stationskürzel (z.B. 'ZUE', 'DUB', 'BER') Returns: str: Stationsinformationen, Messparameter, Datenlinks und Grenzwertkontext. |
| env_air_limits_checkA | Bewertet einen gemessenen Luftschadstoffwert gegen Schweizer LRV-Grenzwerte und WHO 2021-Richtwerte. Unterstützte Schadstoffe: NO2, PM10, PM2.5, O3, SO2, CO. Grenzwerte gemäss Schweizer Luftreinhalte-Verordnung (LRV, SR 814.318.142.1). Einen gemessenen Schadstoffwert gegen Schweizer LRV + WHO 2021 einordnen (Überschreitung ja/nein, Verhältnis zum Grenzwert). Rein lokale Berechnung (kein Netzwerk). Unterstützt NO2, PM10, PM2.5, O3, SO2, CO. Args: params (AirLimitsCheckInput): - pollutant: Schadstoffkürzel ('NO2', 'PM10', 'PM2.5', 'O3', 'SO2', 'CO') - value: Gemessener Wert in µg/m³ - averaging_period: Mittelungszeitraum ('annual', 'daily', 'hourly') Returns: str: Grenzwert-Vergleich mit Schweizer LRV und WHO 2021, inkl. Überschreitungs-Flag. |
| env_hydro_stationsA | Listet hydrologische Messstationen des BAFU an Schweizer Flüssen und Seen auf. Das BAFU betreibt ca. 260 Messstationen in der Schweiz. Stationen messen Wasserstand (Pegel), Abfluss (m³/s), Wassertemperatur und weitere Parameter in einem 10-Minuten-Intervall. Hydromessstationen finden (nach Gewässer), um danach mit
Args: params (HydroStationsInput): - canton: derzeit nicht bedienbar (Quelle stillgelegt) - water_body: Gewässername zum Filtern (z.B. 'Limmat') - response_format: 'markdown' oder 'json' Returns: str: Stationsliste, Absage zum Kantonsfilter, oder Fallback bei Ausfall. |
| env_hydro_currentA | Ruft aktuelle Messwerte einer hydrologischen BAFU-Messstation ab. Liefert Pegel (m ü.M.), Abfluss (m³/s), Wassertemperatur (°C) sowie 24h-Min/Max-Werte. Daten werden alle 10 Minuten aktualisiert. Bekannte Zürich-relevante Stationen:
Aktueller Pegel/Abfluss/Temperatur einer Station, z.B. für einen
Hochwasser-Lagecheck.
Station-ID via Args: params (HydroCurrentInput): - station_id: BAFU-Stationsnummer (z.B. '2099') - response_format: 'markdown' oder 'json' Returns: str: Aktuelle Messwerte inkl. Zeitstempel. |
| env_hydro_historyA | Ruft historische Stundenwerte einer BAFU-Hydromesstations ab. Ermöglicht zeitliche Analysen von Wasserstand, Abfluss und Temperatur über bis zu 30 Tage. Ideal für Trendanalysen und Extremereignis-Recherche. Aktuellsten Messwert einer Station holen und den Zugang zu echten historischen Zeitreihen (Tages-/Langzeitmittel) aufzeigen. LINDAS liefert nur den aktuellen Wert (keine Zeitreihe). Historische Tages-/Langzeitmittel sind NICHT frei per API verfügbar und müssen bei der BAFU-Abfragezentrale bezogen werden. Args: params (HydroHistoryInput): - station_id: BAFU-Stationsnummer - parameter: 'Abfluss', 'Pegel' oder 'Temperatur' (Kontext) - days: Anzahl Tage (Kontext) Returns: str: Aktuellster Messwert (LINDAS) + Bezugsweg für historische Reihen. |
| env_flood_warningsA | Ruft aktuelle Hochwasserwarnungen aller BAFU-Messstationen in der Schweiz ab. Das BAFU gibt Hochwasserwarnungen in 5 Gefahrenstufen aus: 1=Keine, 2=Mässig, 3=Erheblich, 4=Gross, 5=Sehr gross. Aktive Hochwasserwarnungen schweizweit für eine
Lagebeurteilung.
5 Gefahrenstufen. "Keine Warnung" ist eine explizite
Entwarnung, kein Fehler. Args: params (FloodWarningsInput): - min_level: Minimale Gefahrenstufe (Standard: 2) - canton: wird nicht angewendet (siehe Hinweise) Returns: str: Aktuell aktive Hochwasserwarnungen, gefiltert nach Gefahrenstufe. |
| env_bathing_waterA | Ruft die Badegewässerqualität der BAFU-Erhebung ab (LINDAS-Data-Cube). Die Erhebung misst die hygienische Qualität von Badestellen an Schweizer Seen und Flüssen über E.coli- und Enterokokken-Konzentrationen. Im Gegensatz zu Pegel/Abfluss ist dies eine echte Mehrjahres-Zeitreihe (Saisondaten seit 2020, jährliche Nachführung). Wasserqualität einer Badestelle prüfen («Kann man bei X baden?»)
oder Badestellen eines Kantons auflisten.
Ohne Args: params (BathingWaterInput): - location: Badestellen-Name (Teilstring), leer = Übersicht - canton: Kantonskürzel zum Filtern - limit: max. Anzahl Messwerte bzw. Badestellen - response_format: 'markdown' oder 'json' Returns: str: Probenwerte mit aufgelösten Standort-Labels, Kantonsnummer (Join-Key) und Lizenzfeld — nie rohe Code-URIs. |
| env_hazard_overviewA | Orientierungsübersicht zu Schweizer Naturgefahren: welche Gefahr über welches Tool bzw. welche offizielle Warnplattform abrufbar ist. Hintergrund (verifiziert 2026-07-26, docs/probe-naturgefahren-hazards.md): Die
frühere aggregierte Einstieg in die Schweizer Naturgefahrenlage: zu welcher Gefahr liefert welches Tool Live-Daten, und wo liegen die offiziellen Bulletins. Netzwerkfrei/deterministisch. Für Live-Werte die verlinkten Tools nutzen: Hochwasser→env_flood_warnings, Lawine→env_avalanche_bulletin, Waldbrand→env_wildfire_danger, Schnee→env_snow_current. Args: params (HazardOverviewInput): - language: Sprache ('de', 'fr', 'it', 'en') — für die Portallinks Returns: str: Gefahren→Tool-Routing plus offizielle Warnplattform-Links. |
| env_hazard_regionsA | Regionsbezogene Orientierung zu Naturgefahren: verweist für eine Region auf die dedizierten Live-Tools und die offiziellen Gefahrenkarten. Wie Regionsbezogener Einstieg (Event-, Schulausflug-, Infrastruktur-
Planung): welches Tool liefert für die Region welche Gefahr.
Netzwerkfrei/deterministisch. Regionsscharfe Waldbrand-Stufen:
Args: params (HazardRegionsInput): - region: Regionsname/Kanton (z.B. 'Zürich', 'Graubünden', 'Wallis') - hazard_type: Gefahrentyp ('hochwasser', 'lawinen', 'steinschlag', 'rutschungen') - language: Sprache Returns: str: Regionsbezogenes Tool-Routing plus Karten-/Portal-Links. |
| env_wildfire_dangerA | Ruft den aktuellen Waldbrandgefahren-Index nach Regionen ab. Die Waldbrandgefahr wird täglich durch das BAFU berechnet und auf einer 5-stufigen Skala (gering bis sehr gross) kommuniziert. Relevant für Schulausflüge, Events und Forstbetriebe. Waldbrandgefahr-Index pro Region/Kanton, z.B. für Forstbetriebe oder Event-Planung. 5-stufige Skala, tagesaktuell (de/fr/it/en). Ohne Kanton-Filter werden die höchsten Stufen zuerst und auf 40 Regionen begrenzt gezeigt. Datenzugriff über einen zweistufigen, HTML-getragenen Vertrag (react-props der Startseite → signierte Blob-JSON-URL). Args: params (WildfireDangerInput): - language: 'de', 'fr', 'it' - canton: Kantonskürzel zum Filtern Returns: str: Aktuelle Waldbrandgefahr nach Regionen/Kantonen. |
| env_snow_stationsA | Listet die automatischen IMIS-Schneemessstationen des SLF auf. Das SLF betreibt ein Netz automatischer Stationen (IMIS) in den Schweizer Bergen, die u.a. Schneehöhe, Neuschnee, Wind und Temperaturen messen. Einstieg in die Schneedaten: Stationsübersicht (nach Kanton), um
danach mit Args: params (SnowStationsInput): - canton: Kantonskürzel zum Filtern (z.B. 'GR') - response_format: 'markdown' oder 'json' Returns: str: Stationsliste mit Code, Name, Kanton, Höhe und Typ. |
| env_snow_currentA | Ruft aktuelle Schneehöhe (HS) und Neuschnee 24 h (HN_1D) der SLF-IMIS- Stationen ab. Werte in cm, modelliert aus dem SLF-Schneedeckenmodell. Ausserhalb der Schneesaison sind die Werte 0 (schneefrei) – das ist kein Fehler. Aktuelle Schneelage nach Kanton oder Station, z.B. für Tourenplanung oder Schulausflüge. HS/HN_1D in cm. Kein Niederschlag (→ meteoswiss-mcp). Datenquelle SLF (CC BY 4.0). Args: params (SnowCurrentInput): - canton: Kantonskürzel zum Filtern - station: IMIS-Stationscode zum Filtern - limit: max. Anzahl Stationen - response_format: 'markdown' oder 'json' Returns: str: Schneehöhe und Neuschnee je Station, nach Schneehöhe absteigend. |
| env_avalanche_bulletinA | Ruft das aktuelle Lawinenbulletin des SLF ab (Warnstufen je Region). Gefahrenstufen nach europäischer EAWS-Skala 1–5 (Gering bis Sehr gross). Ausserhalb der Lawinensaison wird kein Bulletin publiziert – dann meldet das Tool explizit «kein aktives Bulletin» (kein Fehler). Aktuelle Lawinengefahr je Warnregion für Tourenplanung oder
Sicherheitsbeurteilung.
EAWS-Skala 1–5. Saisonal (Winter). Datenquelle SLF
(CC BY 4.0). Für Schneehöhen → Args: params (AvalancheBulletinInput): - language: 'de', 'fr', 'it', 'en' - region: Regionsname/-code (Teilstring) zum Filtern Returns: str: Warnstufen je Region oder Hinweis, dass kein Bulletin aktiv ist. |
| env_hunting_speciesA | Listet die in der Eidg. Jagdstatistik erfassten Tierarten mit ihren Codes auf. Die Liste ist statisch eingebettet (aus der Live-Probe) und dient als
Nachschlagewerk für Verfügbare Tierarten + Codes nachschlagen, bevor mit
Args: params (HuntingSpeciesInput): - response_format: 'markdown' oder 'json' Returns: str: Liste der Tierarten mit sp-Code und Name. |
| env_hunting_statsA | Ruft Zeitreihen der Eidg. Jagdstatistik ab: Abschuss-, Bestand-, Aussetzungs- oder Fallwildzahlen je Tierart und Kanton (Jahre 2015–2024). Datenherr ist das BAFU. Der zugrundeliegende Endpoint ist undokumentiert (Web-App-Backend); ein Schema-Guard fängt Strukturänderungen ab. Entwicklung der Abschuss- oder Fallwildzahlen einer Tierart in
einem Kanton über die Zeit.
Tierart via Name oder Code (siehe Args: params (HuntingStatsInput): - species: Tierart (Name oder sp-Code) - canton: Kantonskürzel oder 'CH' - data_type: 'abschuss', 'bestand', 'aussetzung', 'fallwild' - response_format: 'markdown' oder 'json' Returns: str: Jahreswerte (Total + Klassen) oder aktionabler Hinweis bei Problemen. |
| env_bafu_datasetsA | Sucht BAFU-Datensätze auf dem Schweizer Open-Data-Portal opendata.swiss. Das BAFU publiziert Datensätze zu Luft, Wasser, Boden, Biodiversität, Lärm, Klima, Wald und weiteren Umweltthemen als offene Daten (OGD). Ergebnisse enthalten Titel, Beschreibung und Download-URLs (CSV, JSON, WMS). BAFU-Open-Data auf opendata.swiss durchsuchen (CSV/JSON/WMS), um
danach mit Args: params (BafuDatasetsInput): - query: Suchbegriff ('Luftqualität', 'Hochwasser', 'NABEL', etc.) - rows: Anzahl Resultate (1–50) - offset: Offset für Paginierung Returns: str: Liste der BAFU-Datensätze mit Kurzbeschreibung und Links. |
| env_bafu_dataset_detailA | Ruft vollständige Metadaten und Download-URLs eines BAFU-Datensatzes ab. Liefert: Titel, Beschreibung, Ressourcen mit Direktlinks (CSV, JSON, WMS/WFS), Lizenz, Aktualisierungsintervall und Kontaktinformationen. Vollständige Metadaten + Download-URLs eines konkreten Datensatzes.
dataset_id/Slug zuerst via Args: params (BafuDatasetDetailInput): - dataset_id: Dataset-ID oder Slug (z.B. 'nabel-luftqualitaet-stationen') Returns: str: Vollständige Metadaten inkl. aller Download-Ressourcen. |
| env_noise_aircraft_atA | Fluglärmbelastung an einem Punkt aus dem BAZL-Lärmbelastungskataster. Beantwortet: «Liegt dieser Standort in einer Fluglärmzone — und in welcher
dB-Stufe?» Grundlage sind die amtlichen Lärmkurven der zivilen Flugplätze
(und, für Standortabklärung für Bauvorhaben, Schulhaus- oder Wohnbau- planung: dB-Belastung und Kataster-Referenz an einer LV95-Koordinate. Eingabe MUSS LV95 sein (EPSG:2056, Meter: E ~2.48–2.84 Mio, N ~1.07–1.30 Mio). WGS84-Grad (z.B. 8.54/47.37) wird abgewiesen. Die Kurven sind Isolinien, keine Flächen — das Ergebnis ist eine dB-Klammer mit dem höchsten Wert als oberer Schranke, kein interpolierter Punktwert. Orientierungsgrundlage, keine Baubewilligungsauskunft. Args: params (NoiseAircraftAtInput): - east/north: LV95-Koordinate in Metern - period: Beurteilungszeitraum bzw. Verkehrsart (8 Werte, s. Schema) - radius_m: Suchradius in Metern (10–1000, Default 100) - response_format: 'markdown' oder 'json' Returns: str: Massgebender dB-Wert, dB-Klammer, alle gefundenen Kurven, Kataster-Provenienz und amtlicher PDF-Link. |
| env_noise_aircraft_registersA | Übersicht der publizierten Fluglärm-Lärmbelastungskataster. Das Provenienz-Tool: Es beantwortet «wie alt ist die Grundlage». Für jeden Flugplatz die Gültigkeitsdaten, die Anzahl Lärmkurven, den abgedeckten dB-Bereich und den Link auf den amtlichen Katasterplan. Vor einer Standortabklärung prüfen, ob für den betreffenden
Flugplatz überhaupt ein Kataster existiert und wie aktuell er ist.
Ohne Args: params (NoiseAircraftRegistersInput): - period: optionaler Filter auf einen Sublayer - response_format: 'markdown' oder 'json' Returns: str: Tabelle der Kataster mit Gültigkeitsdaten und amtlichen PDF-Links. |
| env_noise_limits_checkA | Vergleicht einen Fluglärm-Beurteilungspegel gegen die LSV-Belastungsgrenzwerte. Grundlage: Lärmschutz-Verordnung (LSV, SR 814.41), Anhang 5 «Belastungsgrenzwerte für den Lärm ziviler Flugplätze» — differenziert nach Empfindlichkeitsstufe (ES I–IV) und Schwelle (Planungswert / Immissionsgrenzwert / Alarmwert). Einen dB-Wert aus Args: params (NoiseLimitsCheckInput): - level_db: Beurteilungspegel in dB(A) - sensitivity_level: 'I', 'II', 'III' oder 'IV' (auch 'ES II', '2') - period: Beurteilungszeitraum bzw. Verkehrsart - response_format: 'markdown' oder 'json' Returns: str: Überschreitung je Schwelle mit Grenzwert, Differenz und Rechtsgrundlage im Klartext. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_air_limits | Schweizer LRV-Grenzwerte und WHO 2021-Richtwerte für Luftschadstoffe. |
| get_nabel_stations_resource | Vollständige NABEL-Stationsliste als strukturierte JSON-Ressource. |
| get_flood_levels_resource | Hochwasser-Gefahrenstufen 1–5 mit Beschreibungen. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/malkreide/swiss-environment-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server