meteoswiss-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Bind address | 127.0.0.1 |
| MCP_PORT | No | Port for HTTP transport | 8000 |
| MCP_API_KEY | No | API key for authentication (requests need X-API-Key or Authorization: Bearer header) | |
| MCP_LOG_LEVEL | No | Log level: DEBUG, INFO, WARNING, ERROR | INFO |
| MCP_TRANSPORT | No | Transport mode: stdio or streamable-http | stdio |
| MCP_CACHE_ENABLED | No | Set to 0 to disable caching | 1 |
| OTEL_SERVICE_NAME | No | OpenTelemetry service name | meteoswiss_mcp |
| MCP_ALLOW_ANY_HOST | No | Set to 1 to allow binding to 0.0.0.0 (required for container/cloud) | |
| MCP_CACHE_TTL_STAC | No | TTL in seconds for STAC SMN observations cache | 300 |
| MCP_STATELESS_HTTP | No | Set to 1 to enable stateless mode (each request opens new session) | 0 |
| MCP_ALLOWED_ORIGINS | No | Comma-separated list of allowed CORS origins (empty = CORS disabled) | |
| MCP_WARNINGS_API_URL | No | URL of structured MeteoSwiss warnings API | |
| MCP_CACHE_TTL_OPENDATA | No | TTL in seconds for opendata.swiss catalog cache | 3600 |
| MCP_CACHE_TTL_WARNINGS | No | TTL in seconds for warnings API cache | 300 |
| MCP_CACHE_TTL_GEOCODING | No | TTL in seconds for geocoding lookups cache | 3600 |
| MCP_CACHE_TTL_OPEN_METEO | No | TTL in seconds for ICON forecasts cache | 600 |
| MCP_CLIMATE_NORMALS_PATH | No | Path to JSON file with additional climate normals | |
| OTEL_EXPORTER_OTLP_ENDPOINT | No | OpenTelemetry OTLP HTTP endpoint | |
| MCP_CLIMATE_NORMALS_URL_TEMPLATE | No | URL 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
| 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 |
|---|---|
| meteo_stationsA | 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 | 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 | 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 | 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 | 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 | 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_stations_resource | Vollständige eingebettete SMN-Stationsliste als JSON-Ressource. |
| get_school_thresholds_resource | Schwellenwerte für die Schuleignungs-Ampel (meteo_school_check). |
| get_wmo_codes_resource | WMO-Wettercodes mit deutschen Beschreibungen. |
TDQS
Scored across 6 tools
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.
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.
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.
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.