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

Capabilities

Features and capabilities supported by this server

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-EPS via Open-Meteo

  • 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> Aktuelle MeteoSwiss-Wetterwarnungen (Gewitter, Starkregen, Sturm, Schnee, Hitze, Frost, ...) auflisten. Liefert die offizielle Warnkarte

  • MeteoAlarm-Link + opendata.swiss-Datensätze. </use_case>

<important_notes>

  • MeteoSwiss Warnings-API als REST ist erst ab OGD Phase 2 (geplant Q2 2026) verfügbar; bis dahin liefert dieses Tool den Linkstack.

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

  • Bei aktiven Warnungen Stufe 4+: Aussenveranstaltungen verschieben. </important_notes>

Args: params (WarningsInput): - canton: Kantonskürzel zum Filtern (z.B. 'ZH') - response_format: 'markdown' oder 'json'

Returns: str: Links zu aktuellen MeteoSwiss-Warnungen und Warnkarte.

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.

Latest Blog Posts

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/meteoswiss-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server