Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add cyanheads/open-meteo-mcp-server --skill open-meteo-guidegit clone --depth 1 https://github.com/cyanheads/open-meteo-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cyanheads/open-meteo-mcp-server/open-meteo-guide)<a href="https://agentmods.dev/skills/cyanheads/open-meteo-mcp-server/open-meteo-guide"><img src="https://agentmods.dev/badge/skills/cyanheads/open-meteo-mcp-server/open-meteo-guide/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cyanheads/open-meteo-mcp-server/open-meteo-guide"><img src="https://agentmods.dev/badge/skills/cyanheads/open-meteo-mcp-server/open-meteo-guide.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00103 | $0.02729 |
| Opus 5.5 | $0.00041 | $0.01092 |
| Sonnet 5.5 | $0.00021 | $0.00546 |
| Haiku 4.5 | $0.00010 | $0.00273 |
Grade A, and why
open-meteo-guide scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 90 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Scope
Modeled, gridded data from Open-Meteo, keyless: deterministic and ensemble forecasts, the reanalysis archive, marine waves, CAMS air quality, GloFAS river discharge, CMIP6 climate projections, terrain elevation, and a populated-place geocoder. Not here: official watches and warnings, station observations, and weather forecasts past the ensemble's 35-day ceiling. For next month's or next season's weather, say no tool covers it; never substitute a climate projection.
| The question | Tool | Not |
|---|---|---|
| What will it do (one expected value) | openmeteo_get_forecast |
— |
| How likely is X, or above a threshold | openmeteo_get_ensemble |
precipitation_probability on the forecast |
| What happened, or how it compares to normal | openmeteo_get_historical, one pinned model |
openmeteo_get_climate |
| How the climate shifts by the 2040s | openmeteo_get_climate, several models |
the archive as the baseline |
| Waves and swell; wind for them | openmeteo_get_marine; openmeteo_get_forecast |
— |
| River flow and flood odds | openmeteo_get_flood |
— |
| Pollutants, AQI, pollen (Europe only; null elsewhere, with a coverage notice) | openmeteo_get_air_quality |
— |
Identifiers
- Coordinates come from
openmeteo_search_locations, which indexes populated places only: a surf break ("Banzai Pipeline") returnsno_results. Geocode the nearest town, then move the coordinate onto the water or the river channel (Gates 5 and 6). - The served cell. Each weather response's
latitude/longitudeis the grid cell that answered, not the input, and it can sit kilometres away:era5(0.25° grid) answered Seattle from 47.5, −122.25. Once a marine or flood cell is chosen, send that served coordinate on every follow-up call so all the numbers come from one cell. canvas_idandtable_namecome only from a response withtruncated: true. A window small enough to return inline is not staged.
Gates
- Odds come from the ensemble.
precipitation_probabilityis the chance of more than 0.1 mm in the preceding hour, and dailyprecipitation_probability_maxis the highest hourly value of the day. Neither answers "more than 20 mm" or "a wet day". For a threshold, count ensemble values over it (Workflows). In one probe the default forecast gave 21.8 mm and a 74 % maximum hourly probability for a day on which 5 of 51 ensemble values passed 20 mm. - Frost is a surface question.
temperature_2m_minis air at 2 m. Request hourlysoil_temperature_0cm(the surface temperature on land) beside it before saying "no frost": one probe returned daily minima of 0.6 °C and 1.0 °C while the surface fell to −0.7 °C and −1.8 °C. For the odds of an air frost, count ensembletemperature_2m_minmembers below 0. - A projection is not a forecast.
openmeteo_get_climatereturns a plausible value for any date to 2050 (it answered 2027-07-01 with no warning), and its models disagree by several degrees on a single day (5.1 to 12.7 °C at one point on 2041-01-01). Never read a date, a month, or a season from it. Compare multi-year windows only, take each model's change against its own baseline window, and report the range across models. - One model across a comparison. The archive's default blend changes source by date, and sources differ by more than a degree on the same day (
era520.5 °C,ecmwf_ifs18.8 °C). Pin one archive model for the baseline and the period you compare to it. An ERA5-family pin leaves the last week or so null; on 2026-10-28,era5ended at 2026-10-21. End the comparison at the date the notice names; never splice in another model or forecastpast_days. Not every archive model reaches 1940:era5_landreturned nulls for July 1945 whereera5had values. - Check the marine cell. A coastal land point does not come back null. It is answered from a nearby sea cell: an inland point in Anaheim (33.80, −117.85) returned real waves from 33.708, −117.958. Only points far inland return nulls. Close to shore, neighbouring cells differ: two cells about 8 km apart off Huntington Beach gave swell of 10.3 s from 224° and 7.4 s from 274°. Place the coordinate just offshore of the break, confirm the served cell is the one you meant, and compare one neighbouring offshore cell before you commit.
- Check the river's magnitude. GloFAS cells sit on a 0.05° grid (snapped values such as 50.925, 6.975), and the cell that answers is not reliably the biggest river nearby. Downtown Cologne (50.94, 6.96) is answered by a cell carrying a few m³/s, while the cell 0.05° west carries over 1,000 m³/s, the Rhine. If the discharge is orders of magnitude below what the named river carries, try neighbouring cells in 0.05° steps across the channel and keep the one that fits.
- The AQI looks backward.
us_aqiand theus_aqi_*sub-indices average over preceding hours: 24 h for particulates, and for ozone the higher of the hourly and 8 h values. In one probeus_aqi_pm2_5fell from 30 to 22 while hourlypm2_5rose from 1.4 to 2.6 μg/m³. For conditions at a given hour, read the hourly concentrations (pm2_5,ozone) for that hour alongside the index. The scales also differ:us_aqi0–50 is good, whileeuropean_aqi20–40 is only "fair".
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 90 lines · 103 tokens per session scan A 0da22794daa6
open-meteo-guide is a skill published in the GitHub repository cyanheads/open-meteo-mcp-server (11 stars, last pushed yesterday), licensed Apache-2.0. It adds 103 tokens to every session and 2,729 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-29.
Other skills, from other repositories
ensembl-guide
Gates and identifier chains for the ensembl tools. Covers checking a coordinate's assembly before you pass it in, finding a gene's counterpart in another species through homology, reading multi-allelic and capped VEP results, and which Ensembl object holds the UniProt, RefSeq, GO, and PDB references. Use when an…
noaa-spaceweather-guide
Judgment for the noaaspaceweather tools — turning SWPC Kp, storm scales, solar wind, flares, and alerts into answers about aurora visibility tonight, coming geomagnetic storms, radio blackouts, and impacts on HF radio, GPS, satellites, and power grids. Use before answering an aurora or space-weather question with…
noaa-marine-guide
Gates and conventions for the noaamarine tools (NOAA CO-OPS tides, tidal currents, water levels; NDBC buoys). Covers which station serves which tool, why a place-name search misses, time-zone and direction conventions across the two sources, and what the server cannot answer (forecasts, warnings, past buoy readings).…
usgs-water-guide
Gates and workflows for the water tools over USGS stream gages and groundwater wells. Covers whether a river or aquifer is high or low right now, telling live gages from discontinued ones, reading depth-to-water rankings (they run inverted), finding the parameter code a site actually reports, time zones and data lag…
openfoodfacts-guide
Judgment for the off tools (Open Food Facts) — allergy checks that never overclaim, choosing among a product's many barcodes, where tag IDs come from, grade ranges, free-from searches, and the search budget. Use when answering allergy, diet, ingredient, additive, Nutri-Score, NOVA, or product-comparison questions…
omh-geospatial-analysis
This is an OMH geospatial-analysis workflow skill, projected for Agent Skills hosts (Claude Code, Codex, Cursor, opencode, OpenClaw, pi).