Operational NWP, ensembles, AI weather models, regional forecasts, history, and verification.
Weather is the hello-world of agent tools. WFG is for when “temperature tomorrow” stops being enough.
One query language for operational NWP: global and regional models, deterministic and ensemble forecasts, physics and AI, current runs and history.
Ask the same atmospheric question across models without flattening what makes the models different.
Requires Node.js 20+.
npx weather-for-grown-ups catalog --dataset all --search wind --json
npx weather-for-grown-ups query \
--dataset gfs \
--lat 50.08 --lon 14.43 \
--at 2026-08-24T12:00:00Z \
--vars temperature,wind \
--levels 850,700,500 \
--json
For repeated use:
npm install -g weather-for-grown-ups
wfg --help
Normal atmospheric access is four orthogonal choices:
dataset × geometry × time × selection
{
"dataset": "gefs",
"geometry": {
"type": "point",
"latitude": 50.08,
"longitude": 14.43
},
"time": {
"at": "2026-08-30T12:00:00Z"
},
"selection": {
"variables": ["temperature", "wind"],
"pressureLevelsHpa": [850, 700, 500]
},
"ensemble": {
"quantiles": [0.1, 0.5, 0.9]
}
}
Change the dataset; keep the question. Unsupported combinations fail rather than being coerced into fake symmetry.
Read the unified atmospheric API →
Start with the question. Let the agent build the forecast investigation from scratch.
What does the atmosphere over Prague look like tomorrow afternoon? Cover the surface and vertical structure, compare the main global guidance, and show which parts are robust across the ensembles.
GFS + IFS → pressure profiles → GEFS + IFS ENS → regional model if useful
Is a frontal passage expected near Prague tomorrow? If so, when does it arrive, what changes through the column, and how consistent are the models?
GFS + IFS → time evolution → pressure profiles → GEFS + IFS ENS → align latest vs previous runs
How do AIFS and IFS describe the atmosphere over Prague tomorrow? Where do they disagree through time and height, and is that disagreement large relative to their ensemble uncertainty?
align IFS, AIFS → pressure profiles → align IFS ENS, AIFS ENS
I’m planning to paraglide around Bassano tomorrow. How does the convective window develop through the day, what do the wind profile and stability look like, and how robust is the picture across ensembles and global/regional guidance?
profiles → parcel diagnostics → wind through the column → time evolution → ensembles → global + regional models
What did GFS predict three days ago for Prague today, and how well did that forecast verify?
archived forecast → analysis / radiosonde → error → lead provenance
Explore the investigation gallery →
GFS · GEFS · AIGFS · AIGEFS · HGEFS · IFS · IFS ENS · AIFS · AIFS ENS · ICON-D2 · ICON-D2-EPS · AROME · PE-AROME · GFS analysis · GEFSv12 reforecast
Capabilities come from the catalog. Native grids, cadence, domains, members, fields and provenance remain explicit.
wfg catalog --dataset all --json
WFG exposes the same core through CLI and MCP.
Shell available → CLI.
No shell / remote → MCP.
npx weather-for-grown-ups mcp
Add the portable WFG skill, then pick a setup guide: Codex · Claude Code · Hermes · OpenClaw · other agents
Examples · Installation · API contract · Catalog · History · Architecture · All docs
MIT. See LICENSE.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y weather-for-grown-upsMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-janhelcl-weather-for-grown-ups": {
"command": "npx",
"args": [
"-y",
"weather-for-grown-ups"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceweather-for-grown-upsnpmWeather for Grown Ups works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.