Mmcp.market

MeteoSwiss MCP Server

online · 96% uptime
by eins78·io.github.eins78/meteoswiss-mcp·v2.0.2·3 stars

Swiss weather data for AI assistants — forecasts, measurements, stations, pollen.

A88/100grade A
What users say
No reviews yet
Be the first
Safety scan
A88/100

full report

Adoption
Growing

3 stars

Reviews

Write one

Nobody has reviewed MeteoSwiss MCP Server yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

MeteoSwiss MCP Server tools (7)

write = sends, deletes, buys or posts
  • fetchFree

    Fetch full content from a MeteoSwiss webpage and convert to markdown or plain text. Use the search tool first to discover valid page URLs, then pass the full URL as the id parameter.

  • meteoswissClimateDataFree

    Get homogeneous climate measurement series from Switzerland's National Basic Climatic Network (NBCN). Returns temperature, precipitation, sunshine, radiation, wind, pressure, and climate indicators (frost days, summer days, heat days) going back decades. 29 climate stations + 46 precipitation stations with daily, monthly, and yearly resolution. Use cases: "What are typical January temperatures in Zurich?", "How has precipitation changed in Basel over 50 years?", "How many heat days did Lugano have last year?" Accepts station names ("Zurich", "Basel"), abbreviations ("SMA", "BAS"), or WGS84 coordinates.

  • meteoswissCurrentWeatherFree

    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.

  • meteoswissLocalForecastFree

    Get a multi-day weather forecast for any Swiss location. Returns daily summaries (temperature, precipitation, sunshine, wind, weather icon) plus a hierarchical hourly breakdown of every series. This uses official MeteoSwiss Open Data — the same forecasts powering the MeteoSwiss app and website. Accepts: - Postal codes: "8001" (Zurich), "3000" (Bern), "1200" (Geneva) - Station abbreviations: "SMA" (Zurich Fluntern), "BER" (Bern) - Place names: "Zurich", "Basel", "Lugano" Coverage: ~6000 Swiss locations (all postal codes + weather stations + mountain points). Forecast horizon: up to 9 days. Updated hourly. Each day's summary fields: temperature_min_c, temperature_max_c, precipitation_total_mm, sunshine_total_minutes, wind_avg_kmh, wind_gust_max_kmh, weather, weather_icon_url. Each day also includes "hourly": one array of per-hour objects covering every series together — { time, temperature_c, precip_mm, sunshine_minutes, wind_kmh, wind_gust_kmh } — useful for judging *when* rain, sun, or wind is expected, not just the daily summary: - Each entry's "time" is already local wall-clock time for the location (Europe/Zurich), with the UTC offset included, e.g. "2026-07-09T14:00:00+02:00". It is NOT UTC — do not convert it. - A dry/calm/sunless hour is reported as its measured value (often 0), not omitted. A fully dry day is still a full array of zero-precipitation hours, not an empty array. - Each field is independently null if just THAT series has no reading for a given hour — the other fields for that same hour are still populated. An hour is omitted entirely only when every series is missing for it. - "hourly" itself is null when no hourly breakdown exists for this location at all (a total data gap); [] only when this location supports hourly data but none was available for that specific day. - For weather stations, temperature_min_c/temperature_max_c/precipitation_total_mm are MeteoSwiss's own official daily aggregates — a different, separately-curated product from the hourly series shown alongside them. They can legitimately NOT match summing/ averaging the hourly entries for that day; this is expected, not a data error. sunshine_total_minutes/wind_avg_kmh/wind_gust_max_kmh have no official daily product for stations and are always derived from the hourly series. For postal codes/mountain points, every summary field is derived from the same hourly series shown alongside it, so it always matches summing/averaging that series exactly.

  • meteoswissPollenDataFree

    Get current pollen concentration data from MeteoSwiss monitoring stations (~15 stations across Switzerland). Shows pollen levels for 7 measured species (alder, birch, hazel, beech, ash, oak, grasses) — each is always included, with a "no-current-data" status when out of season. Ambrosia (ragweed) is a MeteoSwiss forecast-only category and is not part of this OGD measurement network, so it is not included. Useful for allergy sufferers.

  • meteoswissStationsFree

    List and search MeteoSwiss measurement stations. Filter by name, canton, or browse the full network of ~300 stations (~160 full weather + ~140 precipitation-only) across Switzerland.

  • searchFree

    Search MeteoSwiss website content in multiple languages (DE, FR, IT, EN). Returns relevant pages with URLs that can be passed to the fetch tool. Always returns up to 10 results per page — the upstream API has a fixed page size that cannot be changed. Note: pagination may return duplicate results across pages (upstream API limitation).

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

1 low
  • Code scan41 source files scanned25/25
  • Live reliabilityremote reachable in 3135ms17/20
  • Tool poisoning7 tool descriptions checked13/15
  • Auth qualityopen endpoint, read-only tools10/15
  • Maintenancelast push 15 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10

Findings (1)

  • lowUnusually long tool description (over 2,000 characters)poison.long-description
    tool meteoswissLocalForecast: …Get a multi-day weather forecast for any Swiss location. Returns daily summaries (temperature, precipitation, sunshine, wind, weather icon) plus a hierarchical hourly breakdown of every series. This uses official MeteoSwiss Open Data — the same forecasts powering the MeteoSwiss app and website. Accepts: - Postal codes: "8001" (Zurich), "3000" (Bern), "1200" (Geneva) - Station abbreviations: "SMA" (Zurich Fluntern), "BER" (Bern) - Place names: "Zurich", "Basel", "Lugano" Coverage: ~6000 Swiss locations (all postal codes + weather stations + mountain points). Forecast horizon: up to 9 days. Updated hourly. Each day's summary fields: temperature_min_c, temperature_max_c, precipitation_total_mm, sunshine_total_minutes, wind_avg_kmh, wind_gust_max_kmh, weather, weather_icon_url. Each day also includes "hourly": one array of per-hour objects covering every series together — { time, temperature_c, precip_mm, sunshine_minutes, wind_kmh, wind_gust_kmh } — useful for judging *when* rain, sun, or wind is expected, not just the daily summary: - Each entry's "time" is already local wall-clock time for the location (Europe/Zurich), with the UTC offset included, e.g. "2026-07-09T14:00:00+02:00". It is NOT UTC — do not convert it. - A dry/calm/sunless hour is reported as its measured value (often 0), not omitted. A fully dry day is still a full array of zero-precipitation hours, not an empty array. - Each field is independently null if just THAT series has no reading for a given hour — the other fields for that same hour are still populated. An hour is omitted entirely only when every series is missing for it. - "hourly" itself is null when no hourly breakdown exists for this location at all (a total data gap); [] only when this location supports hourly data but none was available for that specific day. - For weather stations, temperature_min_c/temperature_max_c/precipitation_total_mm are MeteoSwiss's own official daily aggregates — a different, separately-curated product from the hourly series shown alongside them. They can legitimately NOT match summing/ averaging the hourly entries for that day; this is expected, not a data error. sunshine_total_minutes/wind_avg_kmh/wind_gust_max_kmh have no official daily product for stations and are always derived from the hourly series. For postal codes/mountain points, every summary field is derived from the same hourly series shown alongside it, so it always matches summing/averaging that series exactly.…
Overall 88/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Install MeteoSwiss MCP Server in Claude Code, Cursor or VS Code

claude mcp add --transport http meteoswiss-mcp https://meteoswiss-mcp.ars.is/mcp
Add to Cursor

What the publisher says

From the MeteoSwiss MCP Server repository's README, as published. We do not edit it. Read it on GitHub

🌦️ MeteoSwiss LLM Tools

Swiss weather data for AI assistants — powered by MeteoSwiss Open Government Data (OGD), the same data behind the MeteoSwiss app and website. Free, no API key required.

meteoswiss-mcp.ars.is — try the hosted service instantly, no setup needed.

This repo is also a working answer to a design question: how should you give AI agents access to a public dataset? It implements the same MeteoSwiss data access twice — as an agent skill (markdown instructions plus bash scripts, no server) and as an MCP server (structured tools, fuzzy matching, caching, hosted). The two approaches are compared honestly in the skill vs. MCP case study.

A third piece, meteoswiss-forecast-evals, demonstrates eval-driven interface design: a promptfoo suite measuring how well 13 LLMs read the forecast JSON, which settled a real design decision — local-time timestamps beat UTC, with hour-level lookups scoring ~100% vs. ~0%.

What the tools provide:

  • Multi-day forecasts for ~6000 Swiss locations (postal codes, stations, place names)
  • Real-time measurements from ~300 stations (~160 full weather + ~140 precipitation-only), updated every 10 minutes
  • Station discovery by name, canton, or GPS coordinates
  • Pollen monitoring from ~15 stations across Switzerland
  • Climate series from the National Basic Climatic Network (NBCN), going back decades
  • MeteoSwiss website search and content retrieval

What this repo demonstrates

  • An agent skill — teach an agent to fetch open data directly with curl/awk/jq: ~630 lines of markdown and bash, zero infrastructure. → packages/meteoswiss-skills
  • An MCP server — the same data as structured, validated tools with fuzzy station matching, geocoding, TTL-tiered caching, a real test suite, Docker, and a hosted instance. → packages/meteoswiss-mcp
  • Eval-driven interface design — treat tool output as an interface for a language model, and measure its legibility before shipping. → packages/meteoswiss-forecast-evals

Read the comparison: Skill vs. MCP Server: Two Ways to Give AI Agents the Same Data.

Choose your approach

Both approaches answer the same weather questions. Which to install depends on your agent:

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

MeteoSwiss MCP Server: common questions

Is MeteoSwiss MCP Server safe?
Yes, by our scan: it is graded A (88/100). Read the MeteoSwiss MCP Server safety report
How do I install MeteoSwiss MCP Server?
It runs remotely at meteoswiss-mcp.ars.is. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
Does MeteoSwiss MCP Server need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is MeteoSwiss MCP Server maintained?
The last commit was 15 days ago (2026-09-12). The latest release is v2.0.2.
Is MeteoSwiss MCP Server up?
96% of our last 28 checks got an answer. We check remote servers about four times a day.
What can I use instead of MeteoSwiss MCP Server?
Servers from other publishers that do the same job: Meteoswiss MCP server, Weather Data MCP Server and Switzerland MCP 🇨🇭 MCP server. Compare all MeteoSwiss MCP Server alternatives.

Alternatives to MeteoSwiss MCP Server

Same job from other publishers: the closest match first, then the best rated.

All MeteoSwiss MCP Server alternatives →
  • Meteoswiss
    Swiss weather and federal geodata from MeteoSwiss and swisstopo on data.geo.admin.ch — find…
    B
  • Weather Data MCP Server
    17 weather tools, no API keys: forecasts, alerts, air quality, marine, radar, lightning, wildfires
    A
  • Switzerland MCP 🇨🇭
    Swiss open data MCP server. 76 tools, zero API keys. Transport, weather, geodata, news, rates.
    A
  • Noaa Spaceweather
    NOAA SWPC space weather: storm scales, Kp index, aurora forecasts, solar wind, activity, alerts.
    A
  • Smarter Weather
    Smarter Weather MCP: forecasts, alerts, outlooks, observations, AQI, grids, and map imagery.
    A

More from eins78 →