mcp-meteoswissSAFE
Swiss weather and federal geodata from MeteoSwiss and swisstopo on data.geo.admin.ch — find SwissMetNet automatic weather stations, radar, pollen, ICON forecasts and climate normals, plus elevation and topographic layers, and get the direct CSV, GeoTIFF and NetCDF download URLs for each.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Swiss weather and federal geodata from MeteoSwiss and swisstopo on data.geo.admin.ch — find SwissMetNet automatic weather stations, radar, pollen, ICON forecasts and climate normals, plus elevation and topographic layers, and get the direct CSV, GeoTIFF and NetCDF download URLs for each.
Part of Pipeworx — an MCP gateway connecting AI agents to 1683+ live data sources.
Tools
meteoswiss_collections(contains?, scope?, prefix?, limit?)— MeteoSwiss
datasets by default (ch.meteoschweiz.*); scope: "all_swiss" opens the whole 513-collection federal catalogue (swisstopo, BAFU, Agroscope).
meteoswiss_collection(collection_id)— one collection in full. The
SwissMetNet description is where the resolution and recency codes are defined.
meteoswiss_search(collections?, bbox?, datetime?, ids?, limit?, max_assets?)
— which stations or tiles cover an area, with their coordinates, human names and direct download URLs.
Auth
Keyless, metadata and assets. Everything is a public HTTPS download on data.geo.admin.ch.
Data sources
- — STAC API 1.0, the Swiss
Confederation's open geodata catalogue. MeteoSwiss OGD is the ch.meteoschweiz. prefix.
Shared client: shared/src/stac.ts, also used by planetary-computer, earth-search and copernicus-dataspace.
Traps
- **An item's
datetimeis when the file was published, not when the weather
happened*, and this produces a wrong answer rather than an error. One item is one station*, not one observation: station abo (Adelboden) carries datetime: 2026-09-17T... while its assets cover 1980 to today, and the collection's temporal extent is a few milliseconds wide. "No station data before 2026" is a misreading of a correct payload. The measurements are inside the CSV assets.
- The asset filename encodes resolution and recency. In
ogd-smn___: res is t = 10-minute
a25f5da22922OBSERVED · 2026-10-11Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add mcp-meteoswiss -- npx -y @pipeworx/[email protected]
{
"mcpServers": {
"mcp-meteoswiss": {
"command": "npx",
"args": [
"-y",
"@pipeworx/[email protected]"
]
}
}
}Exposed tools (2)
2 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
meteoswiss_collections | read | List MeteoSwiss open-data collections on data.geo.admin.ch — SwissMetNet automatic weather stations, precipitation and tower stations, radar, hail, pollen, phenology, ICON-CH forecasts, climate normals and CH2025 scenarios — with each one\ |
meteoswiss_search | read | Search Swiss weather stations and federal geodata by area, returning one item per station or map tile with its coordinates, human name and direct CSV/GeoTIFF download URLs. AUTHORITATIVE for which MeteoSwiss stations cover a Swiss location and exactly which files to fetch for them. NOTE an item\ |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (2 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (1)
@modelcontextprotocol/sdk, tsx, typescript, @cloudflare/workers-types
Gates applied: no_behavioural_pass.
a25f5da22922full audit observations/trust-audit/mcp-server/pipeworx-io__mcp-meteoswiss.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-11 | a25f5da22922 | SAFE | B | 89 | first audit |
Questions
What is the mcp-meteoswiss MCP server?
Swiss weather and federal geodata from MeteoSwiss and swisstopo on data.geo.admin.ch — find SwissMetNet automatic weather stations, radar, pollen, ICON forecasts and climate normals, plus elevation and topographic layers, and get the direct CSV, GeoTIFF and NetCDF download URLs for each.
What tools does mcp-meteoswiss expose?
2 in total: 2 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is mcp-meteoswiss safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does mcp-meteoswiss need?
No credential environment variables were found in its source, so it appears to need none.
How does mcp-meteoswiss run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @pipeworx/mcp-meteoswiss at 0.1.1.
How current is this page?
The grade is for one exact copy of the source (a25f5da22922), read on 2026-10-11. The repository is watched and re-audited when it changes.