{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T17:33:22.858Z","url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss.md","server":{"slug":"pipeworx-io-meteoswiss","name":"Meteoswiss","registryName":"io.github.pipeworx-io/meteoswiss","description":"Swiss weather and federal geodata from MeteoSwiss and swisstopo on data.geo.admin.ch — find…","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"pipeworx-mcp-meteoswiss","type":"npm","identifier":"@pipeworx/mcp-meteoswiss","withdrawn":false,"url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss","version":"0.2.1","transport":"stdio","scoredAt":"2026-11-05T06:12:45.376Z"},"score":{"total":81,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":81},{"date":"2026-11-04","total":81},{"date":"2026-11-03","total":65},{"date":"2026-11-02","total":80},{"date":"2026-11-01","total":79},{"date":"2026-10-31","total":79},{"date":"2026-10-30","total":78},{"date":"2026-10-29","total":78}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"pass","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","No production dependencies, so there is no dependency health to assess."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.no_dependencies","args":{"deps":"0","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-meteoswiss).","Clear OSI-approved license (MIT).","Actively maintained (last published 2 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"pipeworx-io/mcp-meteoswiss"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"2"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":58,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 919 tokens (~306/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"306","items":"3","tools":"3","tokens":"919","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":23,"verdict":"partial","reasons":["Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"7"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 3 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 4 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"3"}},{"code":"toolsafety.manipulation_clean","args":{"units":"4","judged":"4"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"meteoswiss-mcp","type":"remote","identifier":"https://gateway.pipeworx.io/meteoswiss/mcp","withdrawn":false,"score":77,"current":false,"url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/meteoswiss-mcp","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/meteoswiss-mcp.md"},{"slug":"pipeworx-mcp-meteoswiss","type":"npm","identifier":"@pipeworx/mcp-meteoswiss","withdrawn":false,"score":81,"current":true,"url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@pipeworx/mcp-meteoswiss"},{"label":"Version","value":"0.2.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"meteoswiss_collections","title":null,"description":"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's licence, Swiss extent and date range. PREFER OVER WEB SEARCH for what Swiss weather or climate data is published and what its official collection id is. Set scope=\"all_swiss\" to search the whole federal geodata catalogue (513 collections: swisstopo elevation and topography, BAFU environment, Agroscope soils).","inputs":[{"name":"contains","type":"string","required":false,"description":"Case-insensitive substring matched against collection id, title and description (e.g. \"radar\", \"pollen\", \"forecast\", \"elevation\"). Omit to list everything in scope."},{"name":"limit","type":"number","required":false,"description":"Maximum collections to return, 1-500. Default 50."},{"name":"prefix","type":"string","required":false,"description":"Explicit collection-id prefix, overriding `scope` (e.g. \"ch.swisstopo.\", \"ch.bafu.\")."},{"name":"scope","type":"string","required":false,"description":"\"meteoswiss\" (default) lists only ch.meteoschweiz.* collections. \"all_swiss\" lists the whole data.geo.admin.ch federal catalogue including swisstopo and BAFU."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":275},{"name":"meteoswiss_collection","title":null,"description":"Full detail for one data.geo.admin.ch collection: title, description, licence, providers, Swiss spatial extent and the asset keys its items carry. AUTHORITATIVE for what a MeteoSwiss dataset measures and at which resolutions — the SwissMetNet description, for instance, states the t/h/d/m/y resolution codes and the now/recent/historical file split that the asset filenames use. Get valid ids from meteoswiss_collections.","inputs":[{"name":"collection_id","type":"string","required":true,"description":"Collection id exactly as listed, e.g. \"ch.meteoschweiz.ogd-smn\" (automatic weather stations), \"ch.meteoschweiz.ogd-radar-precip\", \"ch.swisstopo.swissalti3d\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":163},{"name":"meteoswiss_search","title":null,"description":"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's `datetime` is when the file was published, not when the weather happened — one item is a station, not an observation, and the measurements (back to 1980 for SwissMetNet) are inside the CSV assets. bbox is WGS84 degrees, [west, south, east, north]; Switzerland is roughly [5.9, 45.8, 10.5, 47.9].","inputs":[{"name":"bbox","type":"array","required":false,"description":"Bounding box in WGS84 degrees as [west, south, east, north], e.g. [7.4, 46.9, 7.5, 47.0] for Bern or [5.9, 45.8, 10.5, 47.9] for all of Switzerland. Longitude first."},{"name":"collections","type":"array","required":false,"description":"Collection ids to restrict to, e.g. [\"ch.meteoschweiz.ogd-smn\"]. Optional — omit to search the whole Swiss catalogue, which mixes weather stations with topographic tiles. List ids with meteoswiss_col…"},{"name":"datetime","type":"string","required":false,"description":"RFC 3339 instant or interval filtering on PUBLICATION time, not observation time — see the note in this tool's description. Usually leave it out."},{"name":"ids","type":"array","required":false,"description":"Fetch specific item ids. For SwissMetNet these are three-letter station abbreviations, e.g. [\"abo\", \"sma\"]."},{"name":"limit","type":"number","required":false,"description":"Items to return, 1-100. Default 10."},{"name":"max_assets","type":"number","required":false,"description":"Asset entries per item, 1-50. Default 8 — a SwissMetNet station lists ~16 CSV files across five resolutions, so raise this to see the full set for one station."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":426}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T06:12:45.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":0,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-29","recent":[{"id":"chg_01a1a52b-842c-7528-98f3-2a084fefa195","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss#chg-chg_01a1a52b-842c-7528-98f3-2a084fefa195"},{"id":"chg_01a1a52b-842d-7db8-aed0-cd6960752bf0","kind":"score.total_changed","summary":"Trust score (65 → 81)","materiality":"functional","direction":"improvement","scoreDelta":16,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss#chg-chg_01a1a52b-842d-7db8-aed0-cd6960752bf0"},{"id":"chg_01a19f4d-4a30-7180-a44b-5595cf2ec52d","kind":"package.version_changed","summary":"Package version (0.2.0 → 0.2.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss#chg-chg_01a19f4d-4a30-7180-a44b-5595cf2ec52d"},{"id":"chg_01a19f4d-4a30-7a77-8ba3-752d0ad41176","kind":"score.total_changed","summary":"Trust score (80 → 65)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss#chg-chg_01a19f4d-4a30-7a77-8ba3-752d0ad41176"},{"id":"chg_01a19f4d-4a2e-74a4-aed1-20e0ec5843f9","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss#chg-chg_01a19f4d-4a2e-74a4-aed1-20e0ec5843f9"},{"id":"chg_01a19ade-d34d-7b22-90db-3abd990c67ab","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss#chg-chg_01a19ade-d34d-7b22-90db-3abd990c67ab"},{"id":"chg_01a1908d-6d68-7596-a85f-b461e1ed45d1","kind":"score.total_changed","summary":"Trust score (78 → 79)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss#chg-chg_01a1908d-6d68-7596-a85f-b461e1ed45d1"},{"id":"chg_01a18670-f51e-78db-872e-8129ea95f1e0","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss#chg-chg_01a18670-f51e-78db-872e-8129ea95f1e0"},{"id":"chg_01a18643-8ef4-7e2b-b5d0-5807a8a4070c","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss#chg-chg_01a18643-8ef4-7e2b-b5d0-5807a8a4070c"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss/changelog.json"},"links":{"html":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss","markdown":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss.md","changelogJson":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss/changelog.json","changelogRss":"https://verifymcp.io/servers/pipeworx-io-meteoswiss/pipeworx-mcp-meteoswiss.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@pipeworx/mcp-meteoswiss"},{"label":"Socket report","href":"https://socket.dev/npm/package/@pipeworx/mcp-meteoswiss"},{"label":"Repository","href":"https://github.com/pipeworx-io/mcp-meteoswiss"},{"label":"Website","href":"https://pipeworx.io/packs/meteoswiss"}]}}