Skip to main content
Glama
malkreide

meteoswiss-mcp

by malkreide

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_HOSTNoBind address127.0.0.1
MCP_PORTNoPort for HTTP transport8000
MCP_API_KEYNoAPI key for authentication (requests need X-API-Key or Authorization: Bearer header)
MCP_LOG_LEVELNoLog level: DEBUG, INFO, WARNING, ERRORINFO
MCP_TRANSPORTNoTransport mode: stdio or streamable-httpstdio
MCP_CACHE_ENABLEDNoSet to 0 to disable caching1
OTEL_SERVICE_NAMENoOpenTelemetry service namemeteoswiss_mcp
MCP_ALLOW_ANY_HOSTNoSet to 1 to allow binding to 0.0.0.0 (required for container/cloud)
MCP_CACHE_TTL_STACNoTTL in seconds for STAC SMN observations cache300
MCP_STATELESS_HTTPNoSet to 1 to enable stateless mode (each request opens new session)0
MCP_ALLOWED_ORIGINSNoComma-separated list of allowed CORS origins (empty = CORS disabled)
MCP_WARNINGS_API_URLNoURL of structured MeteoSwiss warnings API
MCP_CACHE_TTL_OPENDATANoTTL in seconds for opendata.swiss catalog cache3600
MCP_CACHE_TTL_WARNINGSNoTTL in seconds for warnings API cache300
MCP_CACHE_TTL_GEOCODINGNoTTL in seconds for geocoding lookups cache3600
MCP_CACHE_TTL_OPEN_METEONoTTL in seconds for ICON forecasts cache600
MCP_CLIMATE_NORMALS_PATHNoPath to JSON file with additional climate normals
OTEL_EXPORTER_OTLP_ENDPOINTNoOpenTelemetry OTLP HTTP endpoint
MCP_CLIMATE_NORMALS_URL_TEMPLATENoURL template for runtime lookup of climate normals

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
meteo_stationsA

<use_case> Liefert eine Übersicht der SwissMetNet (SMN)-Messstationen, die in diesem Server eingebettet sind. Nützlich, um Stationskürzel für meteo_current oder meteo_climate_normals zu finden. </use_case>

<important_notes>

  • Kuratierte Auswahl (~20 Stationen) mit Schul-/Stadtplanungs-Fokus

  • Datenquelle: MeteoSwiss SMN-Katalog (160+ Stationen total)

  • Lizenz: CC BY 4.0 – Quelle: MeteoSchweiz </important_notes>

Schul-Tipp: Station REH (Zürich/Affoltern) ist die nächste SMN-Station zum Schulhaus Leutschenbach.

Args: params (StationsInput): - canton: Kantonskürzel (z.B. 'ZH') – leer = alle - response_format: 'markdown' oder 'json'

Returns: str: Stationsliste mit Kürzel, Name, Kanton, Koordinaten und Höhe.

meteo_currentA

<use_case> Aktuelle 10-Minuten-Wettermesswerte einer SwissMetNet-Station abrufen (Temperatur, Niederschlag, Sonnenschein, Wind, Feuchte, Druck). </use_case>

<important_notes>

  • Granularität: 10-Minuten-Werte, letzte ~6 Beobachtungen

  • Quelle: BGDI STAC API (data.geo.admin.ch)

  • Live-Daten — Tool ist NICHT idempotent

  • Bei Upstream-Ausfall: Fallback mit Direktlinks statt Hard-Fail </important_notes>

Args: params (CurrentInput): - station: SMN-Kürzel, z.B. 'KLO', 'SMA', 'REH', 'BER' - response_format: 'markdown' oder 'json'

Returns: str: Aktuelle Messwerte mit Zeitstempel, oder Fallback mit Direktlinks.

meteo_forecastA

<use_case> 1-16 Tage Wetterprognose für einen Ortsnamen oder Koordinaten — basierend auf dem MeteoSwiss-ICON-Modell (1-2 km Auflösung). Liefert Tageswerte (Temperatur Min/Max, Niederschlag, Wind, UV, Sonnenstunden, WMO-Code) und optional Stundenwerte. </use_case>

<important_notes>

  • Modell: MeteoSwiss ICON-CH1/CH2 via Open-Meteo für Tag 1-5; darüber hinaus sowie für den UV-Index Open-Meteo best_match, weil ICON nur 5 Tage weit reicht und keinen UV-Index führt. Welcher Teil woher stammt, steht in jeder Antwort (Markdown-Fussnote bzw. JSON-Feld modell / modell_details)

  • location wird geokodiert (Fuzzy-Fallback bei Misserfolg); lat/lon überschreibt location und spart einen HTTP-Roundtrip

  • Stündliche Daten füllen die ersten 48 Stunden, nicht den vollen Range

  • Bei Upstream-Ausfall: Direktlinks statt Hard-Fail </important_notes>

Args: params (ForecastInput): - location: Ortsname (geokodiert) ODER lat/lon direkt - days: Prognosetage (1–16, Standard: 7) - hourly: True für Stundenwerte - response_format: 'markdown' oder 'json'

Returns: str: Tages- (und optional Stunden-)Prognose mit Wettercode und Planung.

meteo_school_checkA

<use_case> Aggregiert Geocoding + 7-Tage-Forecast + Schwellenwert-Check zu einer Ampel-Bewertung (🟢/🟡/🔴) für Schulveranstaltungen im Freien. Ein Tool-Call ersetzt die Kombi meteo_forecast + manuelle Bewertung. </use_case>

<important_notes> Schwellenwerte:

  • Temperatur: 5–33 °C (sonst zu kalt / zu heiss)

  • Niederschlag: < 1.5 mm/Tag

  • Wind: < 50 km/h

  • UV-Index ≥ 6: Warnung (Sonnenschutz) Quelle: SUVA / BAG / MeteoSchweiz-Warnklassen. Bei date-Parameter: nur dieser eine Tag wird zurückgegeben. </important_notes>

Args: params (SchoolCheckInput): - location: Ort (geokodiert), z.B. 'Zürich Oerlikon' - date: Optional – spezifischer Tag (YYYY-MM-DD) - activity: Art der Aktivität ('Sporttag', 'Schulreise', etc.)

Returns: str: Ampel-Bewertung für die nächsten 7 Tage (oder Einzeltag).

meteo_climate_normalsA

<use_case> Monatliche 30-Jahres-Klimanormwerte (Temperatur ∅, Niederschlag, Sonnenstunden) für eine MeteoSwiss-Station. Referenz für «typisches Wetter» — Schuljahresplanung, Veranstaltungs-Budgetierung, Vergleich mit aktuellen Messwerten. </use_case>

<important_notes>

  • Periode: 1991–2020 (WMO-Standard)

  • Eingebettete Normwerte verfügbar: KLO, SMA, BER, LUG, GVE

  • Für andere Stationen: Tool gibt Liste verfügbarer Codes + opendata.swiss-Link

  • Statische Daten — Tool ist idempotent, kein Netzwerk-Roundtrip </important_notes>

Args: params (ClimateNormalsInput): - station: SMN-Kürzel (z.B. 'KLO', 'SMA', 'BER') - response_format: 'markdown' oder 'json'

Returns: str: Monatliche Klimanormwerte-Tabelle 1991–2020.

meteo_warningsA

<use_case> Aktive amtliche MeteoSwiss-Wetterwarnungen (Gewitter, Sturm, Starkregen, Schnee, Hitze, Frost, Waldbrand, ...) live abrufen — landesweit, pro Kanton oder ortsgenau via PLZ. Ergänzt um Warnkarte, MeteoAlarm und OGD-Katalog. </use_case>

<important_notes>

  • Live-Quelle ist das öffentliche MeteoSwiss-App-Backend (app-prod-ws.meteoswiss-app.ch/v1/plzDetail); es gibt keinen landesweiten Sammel-Endpoint, daher wird ohne plz/canton je eine Kantonshauptort-PLZ pro Kanton abgefragt und aggregiert. Für ortsgenaue Warnungen plz setzen.

  • Warnstufen-Skala: 1=Keine/gering, 2=Gering, 3=Mässig, 4=Stark, 5=Sehr stark.

  • Bei aktiven Warnungen Stufe 4+: Aussenveranstaltungen verschieben.

  • MCP_WARNINGS_API_URL überschreibt die App-Quelle (Vorbereitung auf die künftige offizielle OGD-Warnings-REST-API). </important_notes>

Args: params (WarningsInput): - canton: Kantonskürzel zum Filtern (z.B. 'ZH') - plz: 4-stellige PLZ für ortsgenaue Warnungen (z.B. '8001') - language: 'de' | 'fr' | 'it' | 'en' (Sprache der Warntexte) - response_format: 'markdown' oder 'json'

Returns: str: Aktive Warnungen + Warnkarte/MeteoAlarm-Links.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
get_stations_resourceVollständige eingebettete SMN-Stationsliste als JSON-Ressource.
get_school_thresholds_resourceSchwellenwerte für die Schuleignungs-Ampel (meteo_school_check).
get_wmo_codes_resourceWMO-Wettercodes mit deutschen Beschreibungen.

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct meteorological resource: station metadata, current obs, forecasts, climate normals, warnings, and an aggregated school-specific check. There is no overlap or ambiguity between them.

Naming Consistency5/5

All six tools follow a consistent 'meteo_' prefix plus a clear noun or composite noun (stations, current, forecast, school_check, climate_normals, warnings). The pattern is uniform and predictable.

Tool Count5/5

Six tools provide a well-scoped coverage of weather data and domain-specific analysis for an MCP server focused on Swiss meteorology. No tool feels redundant and none are missing to justify a larger set.

Completeness4/5

The server covers the core weather workflows: station lookup, current conditions, forecasts, climatological normals, and warnings. A minor gap is the lack of historical actual observations (e.g., past dates), but the provided climate normals and current/forecast data cover typical planning needs.

Maintenance

ActivityMaintained
ResponsivenessResponsive