Skip to main content
Glama

meteoswissCurrentWeather

Get real-time weather measurements from ~300 Swiss automatic weather stations (~160 full weather + ~140 precipitation-only). Returns temperature, precipitation, wind, humidity, pressure, sunshine, and more. Data updates every 10 minutes. Precipitation-only stations return only rainfall data.

For 8 stations (Zurich, Basel, Chur, Sion, Altdorf, Säntis, Jungfraujoch, Grand St-Bernard), also includes daily visual observations: cloud cover, fog, rain, snowfall, hail, and snow coverage.

Accepts station names ("Zurich"), abbreviations ("SMA"), addresses ("Bahnhofplatz 1 Bern"), or WGS84 coordinates. Automatically finds the nearest station.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
stationNoSwiss weather station or location: name (e.g., "Zurich"), abbreviation (e.g., "SMA"), or address (e.g., "Bahnhofplatz 1 Bern"). Provide either this or `coordinates`; if both are given, `coordinates` takes precedence.
coordinatesNoWGS84 coordinates (alternative to station name)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYesData attribution
stationYes
timestampYesMeasurement timestamp (ISO 8601)
measurementsYesEach measurement is present only when the station reports it
visual_observationsNoVisual observations (only for 8 OBS stations: ALT, BAS, CHU, GSB, JUN, SAE, SIO, SMA)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / station / description
      Previous value: -"Swiss weather station or location: name (e.g., \"Zurich\"), abbreviation (e.g., \"SMA\"), or address (e.g., \"Bahnhofplatz 1 Bern\")"New value: +"Swiss weather station or location: name (e.g., \"Zurich\"), abbreviation (e.g., \"SMA\"), or address (e.g., \"Bahnhofplatz 1 Bern\"). Provide either this or `coordinates`; if both are given, `coordinates` takes precedence."
    • addedInput schema / properties / station / maxLength
      Added value: +200
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "measurements": {
      +      "additionalProperties": false,
      +      "description": "Each measurement is present only when the station reports it",
      +      "properties": {
      +        "dew_point": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "humidity": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "precipitation": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "pressure_sea_level": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "pressure_station": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "radiation": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "snow_depth": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "sunshine": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "temperature": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "wind_direction": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "wind_gust": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        },
      +        "wind_speed": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "unit": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "value",
      +            "unit"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "source": {
      +      "description": "Data attribution",
      +      "type": "string"
      +    },
      +    "station": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "abbreviation": {
      +          "description": "Official station abbreviation (e.g. \"SMA\")",
      +          "type": "string"
      +        },
      +        "canton": {
      +          "description": "Canton abbreviation (e.g. \"ZH\")",
      +          "type": "string"
      +        },
      +        "coordinates": {
      +          "additionalProperties": false,
      +          "description": "WGS84 coordinates of the station",
      +          "properties": {
      +            "lat": {
      +              "type": "number"
      +            },
      +            "lon": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "lat",
      +            "lon"
      +          ],
      +          "type": "object"
      +        },
      +        "distance_km": {
      +          "description": "Distance from the queried location to this station, km (when resolved by proximity)",
      +          "type": "number"
      +        },
      +        "elevation": {
      +          "description": "Elevation in metres above sea level",
      +          "type": "number"
      +        },
      +        "municipality": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "description": "Station name",
      +          "type": "string"
      +        },
      +        "network": {
      +          "description": "Measurement network (\"smn\" full weather, \"smn-precip\" precipitation-only)",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "abbreviation",
      +        "elevation",
      +        "coordinates"
      +      ],
      +      "type": "object"
      +    },
      +    "timestamp": {
      +      "description": "Measurement timestamp (ISO 8601)",
      +      "type": "string"
      +    },
      +    "visual_observations": {
      +      "additionalProperties": false,
      +      "description": "Visual observations (only for 8 OBS stations: ALT, BAS, CHU, GSB, JUN, SAE, SIO, SMA)",
      +      "properties": {
      +        "cloud_cover_percent": {
      +          "type": "number"
      +        },
      +        "date": {
      +          "type": "string"
      +        },
      +        "has_fog": {
      +          "type": "boolean"
      +        },
      +        "has_hail": {
      +          "type": "boolean"
      +        },
      +        "has_rain": {
      +          "type": "boolean"
      +        },
      +        "has_rain_and_snow": {
      +          "type": "boolean"
      +        },
      +        "has_snow_coverage": {
      +          "type": "boolean"
      +        },
      +        "has_snowfall": {
      +          "type": "boolean"
      +        },
      +        "is_clear_day": {
      +          "type": "boolean"
      +        },
      +        "is_overcast_day": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "date"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "station",
      +    "timestamp",
      +    "measurements",
      +    "source"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: station coverage (~300 stations, with ~140 being precipitation-only), data update frequency (every 10 minutes), the limitation that precipitation-only stations return only rainfall, and that 8 specific stations also include daily visual observations. It also mentions automatic nearest-station matching. This goes well beyond a minimal description, though it could still detail error handling or output format, but the output schema covers the latter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with three short paragraphs: general data, special observations, and input methods. Every sentence adds value and no redundant information exists. It is front-loaded with the core purpose and quickly covers important details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two optional parameters, no annotations, and the presence of an output schema, the description is remarkably complete. It explains what data is returned, the update interval, station types and limitations, special observational additions, and all accepted input formats. Nothing critical for invocation appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful semantics beyond the schema: it explains that station accepts names, abbreviations, and addresses (with examples), and that coordinates are an alternative. It also adds the key behavior of automatically finding the nearest station, which is not in the schema. This enhances understanding of both parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides 'real-time weather measurements' from Swiss automatic weather stations, listing specific data types and station counts. This distinctively separates it from sibling tools like meteoswissLocalForecast (forecast), meteoswissClimateData (historical), and meteoswissStations (station metadata). The verb 'Get' and specific resource are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool: for current, real-time observations updated every 10 minutes. It also details input methods (station names, abbreviations, addresses, coordinates) and automatic nearest-station selection. However, it does not explicitly mention alternatives or state 'when not to use', so it lacks explicit exclusions that would earn a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.