@dangahagan/weather-mcp 1.29.3 → 1.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +7 -6
  2. package/dist/config/cache.d.ts +1 -0
  3. package/dist/config/cache.d.ts.map +1 -1
  4. package/dist/config/cache.js +14 -0
  5. package/dist/config/cache.js.map +1 -1
  6. package/dist/handlers/forecastHandler.d.ts +2 -1
  7. package/dist/handlers/forecastHandler.d.ts.map +1 -1
  8. package/dist/handlers/forecastHandler.js +168 -4
  9. package/dist/handlers/forecastHandler.js.map +1 -1
  10. package/dist/handlers/weatherSummaryHandler.d.ts +2 -1
  11. package/dist/handlers/weatherSummaryHandler.d.ts.map +1 -1
  12. package/dist/handlers/weatherSummaryHandler.js +17 -2
  13. package/dist/handlers/weatherSummaryHandler.js.map +1 -1
  14. package/dist/handlers/wildfireHandler.d.ts.map +1 -1
  15. package/dist/handlers/wildfireHandler.js +88 -9
  16. package/dist/handlers/wildfireHandler.js.map +1 -1
  17. package/dist/server/weatherServer.d.ts.map +1 -1
  18. package/dist/server/weatherServer.js +14 -2
  19. package/dist/server/weatherServer.js.map +1 -1
  20. package/dist/services/metno.d.ts +82 -0
  21. package/dist/services/metno.d.ts.map +1 -0
  22. package/dist/services/metno.js +274 -0
  23. package/dist/services/metno.js.map +1 -0
  24. package/dist/types/metno.d.ts +114 -0
  25. package/dist/types/metno.d.ts.map +1 -0
  26. package/dist/types/metno.js +14 -0
  27. package/dist/types/metno.js.map +1 -0
  28. package/dist/types/wildfire.d.ts +7 -1
  29. package/dist/types/wildfire.d.ts.map +1 -1
  30. package/dist/utils/metnoParse.d.ts +165 -0
  31. package/dist/utils/metnoParse.d.ts.map +1 -0
  32. package/dist/utils/metnoParse.js +413 -0
  33. package/dist/utils/metnoParse.js.map +1 -0
  34. package/package.json +5 -5
package/README.md CHANGED
@@ -3,12 +3,12 @@
3
3
  [![npm version](https://badge.fury.io/js/@dangahagan%2Fweather-mcp.svg)](https://www.npmjs.com/package/@dangahagan/weather-mcp)
4
4
  [![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.dgahagan/weather-mcp)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
- [![Tests](https://img.shields.io/badge/tests-3%2C350%20passing-brightgreen)](./docs/testing/TEST_SUITE_README.md)
6
+ [![Tests](https://img.shields.io/badge/tests-3%2C464%20passing-brightgreen)](./docs/testing/TEST_SUITE_README.md)
7
7
  [![Node](https://img.shields.io/badge/node-%3E%3D18-339933?logo=node.js&logoColor=white)](https://nodejs.org)
8
8
 
9
9
  **Give your AI assistant real weather data — 17 tools, zero API keys, zero signup, zero cost.**
10
10
 
11
- Weather MCP is a [Model Context Protocol](https://modelcontextprotocol.io) server that connects AI assistants (Claude, Cursor, Cline, Zed, and any other MCP client) to live weather data: forecasts, current conditions, alerts, air quality, marine conditions, lightning, radar, rivers, wildfires, and 85+ years of historical weather. It's built entirely on free public data sources — NOAA, Open-Meteo, USGS, NIFC, NASA FIRMS, RainViewer, and Blitzortung.org — so there is nothing to sign up for and no key to paste in. (A few optional keys unlock extras — see [Optional API keys](#optional-api-keys) — but no tool ever requires one.)
11
+ Weather MCP is a [Model Context Protocol](https://modelcontextprotocol.io) server that connects AI assistants (Claude, Cursor, Cline, Zed, and any other MCP client) to live weather data: forecasts, current conditions, alerts, air quality, marine conditions, lightning, radar, rivers, wildfires, and 85+ years of historical weather. It's built entirely on free public data sources — NOAA, Open-Meteo, MET Norway, USGS, NIFC, NASA FIRMS, RainViewer, and Blitzortung.org — so there is nothing to sign up for and no key to paste in. (A few optional keys unlock extras — see [Optional API keys](#optional-api-keys) — but no tool ever requires one.)
12
12
 
13
13
  ```bash
14
14
  claude mcp add weather -- npx -y @dangahagan/weather-mcp@latest
@@ -58,7 +58,7 @@ Choose this one if you want:
58
58
 
59
59
  - **Genuinely free** — every data source is a free public API. No trial that expires, no credit card, no rate-limited "free tier" bait.
60
60
  - **No API keys** — install to first forecast in under a minute. Nothing to configure, nothing to leak into a repo. ([Three optional keys](#optional-api-keys) add extras if you want them; the default configuration needs none.)
61
- - **Fully open source** — MIT licensed, readable TypeScript, 3,350 tests. Audit it, fork it, fix it.
61
+ - **Fully open source** — MIT licensed, readable TypeScript, 3,464 tests. Audit it, fork it, fix it.
62
62
  - **Privacy-respecting** — your queries go directly from your machine to public weather APIs. No middleman server, no telemetry.
63
63
  - **Breadth** — 17 tools covering weather, safety hazards (lightning, floods, wildfires), marine conditions, air quality, and historical data back to 1940. Most weather MCPs stop at forecasts.
64
64
 
@@ -96,7 +96,7 @@ All 17 tools, documented in detail in **[docs/TOOLS.md](./docs/TOOLS.md)**:
96
96
 
97
97
  ## Feature highlights
98
98
 
99
- - **Smart source selection** — US queries use NOAA (detailed, includes forecaster narratives); everywhere else uses Open-Meteo. You never have to pick — and on a US *hourly* forecast the answer tells you which product you got and when NOAA last published it, so reaching for `source="openmeteo"` is a choice you can make rather than one made silently for you.
99
+ - **Smart source selection** — US queries use NOAA (detailed, includes forecaster narratives); everywhere else uses Open-Meteo. You never have to pick — and on a US *hourly* forecast the answer tells you which product you got and when NOAA last published it, so reaching for `source="openmeteo"` is a choice you can make rather than one made silently for you. If Open-Meteo is having an outage, a forecast outside the US is answered by MET Norway rather than failing, and says so.
100
100
  - **International weather alerts** — `get_alerts` routes by country: NOAA in the US, Environment and Climate Change Canada alerts in Canada, the official national warnings of 38 European countries via EUMETNET MeteoAlarm, the national CAP feeds of India (NDMA SACHET), the Philippines (PAGASA) and Indonesia (BMKG), and the Japan Meteorological Agency's own disaster-prevention feed in Japan — shown unmodified, with the issuing service credited. Where a feed publishes geometry inline, warnings are matched to your exact point by the alert's own polygon rather than to the whole country (the Philippines and Indonesia today; Europe remains country-level). Japanese warnings are matched to your point by JMA warning area, with the Japanese name shown as published and an English gloss beside it. Border cities like Toronto get the right country's alerts, not the nearest bounding box's.
101
101
  - **Real observations worldwide** — ask for what a station is *actually reporting* and `get_current_conditions` will read the nearest airport's METAR (`source="metar"`): a genuine instrument reading anywhere on earth, with the station, its distance, and the observation age always stated. Outside the US this is the difference between a measurement and a model estimate.
102
102
  - **Model agreement** — ask *"how confident is this forecast?"* and `compare_models=true` compares five global models (GFS, ECMWF, ICON, GEM, UKMO) in one request, summarizing where they agree and where they split rather than dumping five forecasts. Spread across models is a proxy for uncertainty, not a guarantee — a tight spread can still be wrong, and the output says so.
@@ -119,6 +119,7 @@ All free, all public, no authentication required:
119
119
  |--------|----------|----------|
120
120
  | [NOAA Weather API](https://www.weather.gov/documentation/services-web-api) | US forecasts, current conditions, alerts, fire weather | US |
121
121
  | [Open-Meteo](https://open-meteo.com/) | Global forecasts, historical data (1940+), air quality, marine, geocoding, climate normals, fire-weather inputs | Global |
122
+ | [MET Norway](https://api.met.no/weatherapi/locationforecast/2.0/documentation) | Global forecasts, used only when Open-Meteo fails transiently outside the US (about a nine-day horizon, daily only) — CC BY 4.0 | Global |
122
123
  | [NOAA NWPS](https://water.noaa.gov/) | River levels, streamflow, flood stages | US |
123
124
  | [Environment Agency](https://environment.data.gov.uk/flood-monitoring/doc/reference) | Observed river levels from the real-time gauge network, with published typical ranges — Open Government Licence v3 | Great Britain |
124
125
  | [RCC ACIS](https://www.rcc-acis.org/) | Daily record high/low temperatures | US |
@@ -387,7 +388,7 @@ Being honest about what free public data can and can't do:
387
388
  ```bash
388
389
  npm run build # Compile TypeScript
389
390
  npm run dev # Run in development mode
390
- npm test # Run all 3,350 tests
391
+ npm test # Run all 3,464 tests
391
392
  npm run test:coverage # Coverage report
392
393
  npm run audit # Dependency vulnerability scan
393
394
  ```
@@ -429,4 +430,4 @@ Contributions are welcome — this is a single-maintainer project and issues, PR
429
430
 
430
431
  ---
431
432
 
432
- *Weather data provided by NOAA, Open-Meteo, USGS, NIFC, RainViewer, and Blitzortung.org. This project is not affiliated with or endorsed by any of these providers. Do not rely on this server as your sole source for safety-critical decisions — always consult official warnings and forecasts.*
433
+ *Weather data provided by NOAA, Open-Meteo, MET Norway, USGS, NIFC, RainViewer, and Blitzortung.org. This project is not affiliated with or endorsed by any of these providers. Do not rely on this server as your sole source for safety-critical decisions — always consult official warnings and forecasts.*
@@ -37,6 +37,7 @@ export declare const CacheConfig: {
37
37
  readonly jmaIndex: number;
38
38
  readonly eaLatestReadings: number;
39
39
  readonly eaStationDetail: number;
40
+ readonly metnoForecast: number;
40
41
  };
41
42
  };
42
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/config/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkDH,eAAO,MAAM,WAAW;aAEtB,OAAO;aAIP,OAAO;aAIP,YAAY;aAGZ,GAAG;iBAGD,eAAe;iBAIf,SAAS;iBAIT,QAAQ;iBAIR,QAAQ;iBAIR,iBAAiB;iBAIjB,MAAM;iBAIN,gBAAgB;iBAIhB,cAAc;iBAKd,OAAO;iBAIP,aAAa;iBAMb,cAAc;iBAOd,eAAe;iBAMf,YAAY;iBAMZ,OAAO;iBAIP,cAAc;iBAMd,iBAAiB;iBAQjB,YAAY;iBAQZ,cAAc;iBAKd,cAAc;iBAKd,cAAc;iBAKd,iBAAiB;iBAOjB,WAAW;iBAgBX,QAAQ;iBAMR,gBAAgB;iBAYhB,eAAe;;CAET,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAYrE"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/config/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkDH,eAAO,MAAM,WAAW;aAEtB,OAAO;aAIP,OAAO;aAIP,YAAY;aAGZ,GAAG;iBAGD,eAAe;iBAIf,SAAS;iBAIT,QAAQ;iBAIR,QAAQ;iBAIR,iBAAiB;iBAIjB,MAAM;iBAIN,gBAAgB;iBAIhB,cAAc;iBAKd,OAAO;iBAIP,aAAa;iBAMb,cAAc;iBAOd,eAAe;iBAMf,YAAY;iBAMZ,OAAO;iBAIP,cAAc;iBAMd,iBAAiB;iBAQjB,YAAY;iBAQZ,cAAc;iBAKd,cAAc;iBAKd,cAAc;iBAKd,iBAAiB;iBAOjB,WAAW;iBAgBX,QAAQ;iBAMR,gBAAgB;iBAYhB,eAAe;iBAef,aAAa;;CAEP,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAYrE"}
@@ -184,6 +184,20 @@ export const CacheConfig = {
184
184
  // copy each refresh and merges the volatile reading into that copy;
185
185
  // only the threshold projection is cached at this TTL.
186
186
  eaStationDetail: 24 * HOUR,
187
+ // met.no Locationforecast parse (GET /locationforecast/2.0/complete) —
188
+ // **retention**, not freshness, mirroring jmaIndex above.
189
+ //
190
+ // met.no's ToS mandates conditional requests, and the response carries
191
+ // `Last-Modified`/`Expires` but no `ETag` — an `If-Modified-Since` replay
192
+ // returns 304 with zero bytes. Freshness (how long the server answers
193
+ // without asking met.no at all) and retention (how long the parsed
194
+ // timeseries is kept so a 304 has something to reuse) are two different
195
+ // clocks; collapsing them onto one short TTL would evict the parse at
196
+ // exactly the moment the validator became useful, so the conditional
197
+ // request could never fire. Twelve hours is safe at any age — a 304
198
+ // means met.no itself says the parse is current — and bounds the LRU
199
+ // against a series that runs to ~9-10 days per point (D3).
200
+ metnoForecast: 12 * HOUR,
187
201
  },
188
202
  };
189
203
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/config/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/config/cache.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ import { NCEIService } from '../services/ncei.js';
8
8
  import { AcisService } from '../services/acis.js';
9
9
  import { LocationStore } from '../services/locationStore.js';
10
10
  import { GeocodingService } from '../services/geocoding.js';
11
- export declare function handleGetForecast(args: unknown, noaaService: NOAAService, openMeteoService: OpenMeteoService, locationStore: LocationStore, geocodingService: GeocodingService, nceiService?: NCEIService, acisService?: AcisService, criticalAlertBanner?: boolean): Promise<{
11
+ import { MetnoService } from '../services/metno.js';
12
+ export declare function handleGetForecast(args: unknown, noaaService: NOAAService, openMeteoService: OpenMeteoService, locationStore: LocationStore, geocodingService: GeocodingService, nceiService?: NCEIService, acisService?: AcisService, criticalAlertBanner?: boolean, metnoService?: MetnoService): Promise<{
12
13
  content: Array<{
13
14
  type: string;
14
15
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"forecastHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/forecastHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA8N5D,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,mBAAmB,CAAC,EAAE,OAAO,GAC5B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA0O7D"}
1
+ {"version":3,"file":"forecastHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/forecastHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA4D5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAkLpD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,mBAAmB,CAAC,EAAE,OAAO,EAU7B,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAqS7D"}
@@ -7,7 +7,7 @@ import { validateForecastDays, validateGranularity, validateOptionalBoolean, val
7
7
  import { resolveLocationAsync, formatLocationLine, prependCriticalAlertBanner } from '../utils/locationResolver.js';
8
8
  import { resolveCriticalAlertBanner, carryCriticalAlertBannerOnError } from './criticalAlertBanner.js';
9
9
  import { resolveUnitPreferences } from '../utils/unitPreferences.js';
10
- import { temperatureLabel, windSpeedLabel, precipitationLabel, noaaUnitsParam, formatElevationFromM, formatLuxonTime, } from '../utils/unitFormat.js';
10
+ import { temperatureLabel, windSpeedLabel, precipitationLabel, noaaUnitsParam, formatElevationFromM, formatLuxonTime, formatTemperatureFromC, formatWindFromMps, formatPrecipFromMm, } from '../utils/unitFormat.js';
11
11
  import { logger } from '../utils/logger.js';
12
12
  import { extractSnowfallForecast, extractIceAccumulation, formatSnowData, hasWinterWeather } from '../utils/snow.js';
13
13
  import { formatInTimezone, guessTimezoneFromCoords } from '../utils/timezone.js';
@@ -17,9 +17,19 @@ import { computeDayAstronomy, nextMoonQuarters, formatAstronomyBlock, formatNext
17
17
  import { isInUS } from '../utils/geography.js';
18
18
  import { COMPARISON_MODELS, buildModelComparison, weatherCodeBucket, } from '../utils/modelComparison.js';
19
19
  import { ENSEMBLE_MODEL_LABEL, buildEnsembleSpread, } from '../utils/ensembleSpread.js';
20
- import { DataNotFoundError, InvalidLocationError } from '../errors/ApiError.js';
20
+ import { DataNotFoundError, InvalidLocationError, isRetryableError } from '../errors/ApiError.js';
21
+ import { describeMetnoSymbol } from '../utils/metnoParse.js';
21
22
  /** Note shown when an auto-routed NOAA request falls back to Open-Meteo. */
22
23
  const NOAA_FALLBACK_NOTE = '*NOAA does not cover this location; showing Open-Meteo model data instead.*';
24
+ /**
25
+ * Note shown when a transient Open-Meteo failure is answered by MET Norway.
26
+ *
27
+ * Same register as `NOAA_FALLBACK_NOTE` above — it names who failed and who
28
+ * answered — and deliberately says "is not responding" rather than "is down":
29
+ * this fires on one request's transient failure, which is not a claim about the
30
+ * service as a whole.
31
+ */
32
+ const METNO_FALLBACK_NOTE = '*Open-Meteo is not responding; showing MET Norway model data instead.*';
23
33
  /**
24
34
  * Insert a note line directly under the output's top heading (first line),
25
35
  * keeping the heading itself as the first thing the client renders.
@@ -150,7 +160,17 @@ function formatSevereWeather(properties) {
150
160
  output += `\n*Note: These are probabilistic forecasts and may change. Always monitor local weather alerts for official warnings.*\n`;
151
161
  return output;
152
162
  }
153
- export async function handleGetForecast(args, noaaService, openMeteoService, locationStore, geocodingService, nceiService, acisService, criticalAlertBanner) {
163
+ export async function handleGetForecast(args, noaaService, openMeteoService, locationStore, geocodingService, nceiService, acisService, criticalAlertBanner,
164
+ // Trailing and optional, so all 38 pre-existing call sites across `src/` and
165
+ // `tests/` pass `undefined` and compile unedited. Reordering to put it
166
+ // somewhere more natural would break every one of them.
167
+ //
168
+ // **A caller that forwards a shortened argument list does not get this for
169
+ // free.** `handleGetWeatherSummary` calls this function with six positional
170
+ // arguments, dropping `acisService` and `criticalAlertBanner`, so it has to
171
+ // pass `undefined, undefined, metnoService` to reach this slot — appending
172
+ // one argument there would bind the service to `acisService`.
173
+ metnoService) {
154
174
  // Resolve location from coordinates, a saved location name, or a geocoded city name
155
175
  const resolved = await resolveLocationAsync(args, locationStore, geocodingService);
156
176
  const { latitude, longitude } = resolved;
@@ -270,7 +290,56 @@ export async function handleGetForecast(args, noaaService, openMeteoService, loc
270
290
  }
271
291
  else {
272
292
  // Use Open-Meteo for international locations
273
- result = await formatOpenMeteoForecast(openMeteoService, nceiService, latitude, longitude, days, granularity, include_precipitation_probability, include_normals, include_astronomy, prefs, detail, acisService);
293
+ try {
294
+ result = await formatOpenMeteoForecast(openMeteoService, nceiService, latitude, longitude, days, granularity, include_precipitation_probability, include_normals, include_astronomy, prefs, detail, acisService);
295
+ }
296
+ catch (error) {
297
+ // **The complement of the NOAA fallback's guard above, and getting it
298
+ // backwards is the whole failure mode.** That one answers "NOAA does
299
+ // not cover this point" — a permanent rejection. This one answers
300
+ // "Open-Meteo is not answering right now" — a transient failure. Swap
301
+ // them and we would fall back on a bad coordinate, hiding our own 400
302
+ // forever, while propagating the outage this exists to cover.
303
+ //
304
+ // Keyed on `isRetryableError`, **not** on `instanceof
305
+ // ServiceUnavailableError || instanceof RateLimitError`: the
306
+ // `instanceof` pair reads as the obvious choice and misses the
307
+ // unclassified-network case, which Open-Meteo maps to a plain
308
+ // `ApiError` with `isRetryable: true`.
309
+ //
310
+ // The `requestedSource !== 'auto'` arm is a copy of the NOAA
311
+ // fallback's own line: a forced `source: "openmeteo"` keeps its error
312
+ // contract, because the caller named that authority.
313
+ if (requestedSource !== 'auto' ||
314
+ !metnoService ||
315
+ !(error instanceof Error) ||
316
+ !isRetryableError(error)) {
317
+ throw error;
318
+ }
319
+ let fallback;
320
+ try {
321
+ fallback = await formatMetnoForecast(metnoService, latitude, longitude, days, granularity, include_precipitation_probability, prefs);
322
+ }
323
+ catch {
324
+ // Both down. The **original Open-Meteo error** propagates, not
325
+ // met.no's: the user's error contract is unchanged and met.no's
326
+ // message never surfaces. No fabricated forecast, no
327
+ // empty-but-cheerful render.
328
+ throw error;
329
+ }
330
+ // Logged after the fallback succeeded, so a `fallback: true` warn
331
+ // naming MET Norway means it was actually served — which is the signal
332
+ // the design's revisit trigger reads.
333
+ logger.warn('Open-Meteo failed transiently; fell back to MET Norway', {
334
+ latitude,
335
+ longitude,
336
+ fallback: true
337
+ });
338
+ result = fallback;
339
+ if (result.content.length > 0 && result.content[0]?.type === 'text' && result.content[0].text) {
340
+ result.content[0].text = insertNoteAfterHeading(result.content[0].text, METNO_FALLBACK_NOTE);
341
+ }
342
+ }
274
343
  }
275
344
  }
276
345
  catch (error) {
@@ -531,6 +600,101 @@ async function formatNOAAForecast(noaaService, openMeteoService, nceiService, la
531
600
  /**
532
601
  * Format Open-Meteo forecast data for display
533
602
  */
603
+ /**
604
+ * Render a MET Norway forecast, for the Open-Meteo outage fallback only.
605
+ *
606
+ * **This never routes through `formatOpenMeteoForecast`**, which hard-codes
607
+ * `*Data source: Open-Meteo (Global)*` in its footer. Feeding met.no data
608
+ * through it would misattribute the source and breach CC BY at the same time.
609
+ *
610
+ * It matches that formatter's register closely — the same heading, the same
611
+ * `**Location:**` / `**Elevation:**` / `**Timezone:**` / `**Forecast Days:**`
612
+ * block, one `## <weekday, month day>` per day — and carries three things it
613
+ * does not:
614
+ *
615
+ * - **The CC BY attribution footer**, which the licence requires.
616
+ * - **A short-horizon disclosure.** `days` validates to 1-16 and Open-Meteo
617
+ * serves all 16; met.no serves nine or ten, so a `days: 14` request answered
618
+ * here is short by a third. The number comes from the aggregate, never from a
619
+ * constant, so if met.no extends its horizon the line says the new number
620
+ * with no code change. Silently returning 9 days for 14 is the failure
621
+ * v1.25.18 already fixed once on the NOAA path.
622
+ * - **Unit conversion.** Open-Meteo is *asked* in the caller's display units
623
+ * and its formatter therefore rounds without converting. met.no serves SI
624
+ * unconditionally, so this is the only formatter in this file that must
625
+ * convert — and it converts before it rounds, through the shared helpers,
626
+ * rather than hand-rolling arithmetic (G69).
627
+ *
628
+ * Normals and astronomy are not rendered. Both are garnish, and garnish that is
629
+ * absent degrades to no section at all rather than to an apology.
630
+ */
631
+ async function formatMetnoForecast(metnoService, latitude, longitude, days, granularity, include_precipitation_probability, prefs) {
632
+ // met.no publishes UTC timestamps and no timezone of its own, and on this
633
+ // path Open-Meteo — which normally supplies one — is the thing that just
634
+ // failed. `tz-lookup` resolves the real IANA zone from the coordinates, so
635
+ // the days are bucketed in the caller's own local time and the header names
636
+ // the zone exactly as the Open-Meteo path does.
637
+ const timezone = guessTimezoneFromCoords(latitude, longitude);
638
+ const aggregate = await metnoService.getForecast(latitude, longitude, timezone);
639
+ const served = aggregate.days.slice(0, days);
640
+ let output = `# Weather Forecast (Daily)\n\n`;
641
+ output += `**Location:** ${latitude.toFixed(4)}, ${longitude.toFixed(4)}\n`;
642
+ if (aggregate.elevationM != null) {
643
+ output += `**Elevation:** ${formatElevationFromM(aggregate.elevationM, prefs)}\n`;
644
+ }
645
+ output += `**Timezone:** ${aggregate.timezone}\n`;
646
+ output += `**Forecast Days:** ${served.length}\n\n`;
647
+ // An hourly request answered here renders the daily view and says so. met.no
648
+ // publishes six-hourly steps beyond about two and a half days, so a
649
+ // fabricated hourly series off that tail would be an invention; a downgrade
650
+ // the caller is told about is the honest answer.
651
+ if (granularity === 'hourly') {
652
+ output += `*MET Norway publishes no hourly product through this fallback; showing the daily forecast instead.*\n\n`;
653
+ }
654
+ // Computed from what was served, never from a constant — same rule as the
655
+ // NOAA horizon disclosure this mirrors, minus its `source: "openmeteo"`
656
+ // pointer, which would be wrong advice when Open-Meteo is what just failed.
657
+ if (served.length < days) {
658
+ output += `*MET Norway publishes a ${served.length}-day forecast; showing all ${served.length} of the ${days} days requested.*\n\n`;
659
+ }
660
+ for (const day of served) {
661
+ const dt = DateTime.fromISO(day.date, { zone: aggregate.timezone });
662
+ output += `## ${dt.toLocaleString({ weekday: 'long', month: 'long', day: 'numeric' })}\n`;
663
+ // A day the model did not publish a half of drops only that half; the
664
+ // survivor still renders, matching the Open-Meteo formatter's behaviour.
665
+ if (day.temperatureMaxC != null || day.temperatureMinC != null) {
666
+ let line = `**Temperature:**`;
667
+ if (day.temperatureMaxC != null) {
668
+ line += ` High ${formatTemperatureFromC(day.temperatureMaxC, prefs)}`;
669
+ }
670
+ if (day.temperatureMaxC != null && day.temperatureMinC != null)
671
+ line += ` /`;
672
+ if (day.temperatureMinC != null) {
673
+ line += ` Low ${formatTemperatureFromC(day.temperatureMinC, prefs)}`;
674
+ }
675
+ output += `${line}\n`;
676
+ }
677
+ if (include_precipitation_probability && day.precipitationProbabilityMaxPct != null) {
678
+ output += `**Precipitation Chance:** ${Math.round(day.precipitationProbabilityMaxPct)}%\n`;
679
+ }
680
+ if (day.precipitationMm != null && day.precipitationMm > 0) {
681
+ output += `**Precipitation:** ${formatPrecipFromMm(day.precipitationMm, prefs)}\n`;
682
+ }
683
+ if (day.windSpeedMaxMps != null) {
684
+ const windDir = day.windFromDirectionDeg != null
685
+ ? ` ${getWindDirection(day.windFromDirectionDeg)}`
686
+ : '';
687
+ output += `**Wind:** ${formatWindFromMps(day.windSpeedMaxMps, prefs)}${windDir}\n`;
688
+ }
689
+ if (day.symbolCode != null) {
690
+ output += `**Conditions:** ${describeMetnoSymbol(day.symbolCode)}\n`;
691
+ }
692
+ output += `\n`;
693
+ }
694
+ output += `---\n`;
695
+ output += `*Forecast data by MET Norway (CC BY 4.0)*\n`;
696
+ return { content: [{ type: 'text', text: output }] };
697
+ }
534
698
  async function formatOpenMeteoForecast(openMeteoService, nceiService, latitude, longitude, days, granularity, include_precipitation_probability, include_normals, include_astronomy, prefs, detail, acisService) {
535
699
  // Unit labels for output (Open-Meteo returns values already in requested units)
536
700
  const tempU = temperatureLabel(prefs);
@@ -1 +1 @@
1
- {"version":3,"file":"forecastHandler.js","sourceRoot":"","sources":["../../src/handlers/forecastHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forecastHandler.js","sourceRoot":"","sources":["../../src/handlers/forecastHandler.ts"],"names":[],"mappings":"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"}
@@ -18,11 +18,12 @@ import { NominatimService } from '../services/nominatim.js';
18
18
  import { GoogleWeatherService } from '../services/googleWeather.js';
19
19
  import { NationalCapService } from '../services/nationalCap.js';
20
20
  import { JmaService } from '../services/jma.js';
21
+ import { MetnoService } from '../services/metno.js';
21
22
  /**
22
23
  * Sections that can be included in a weather summary.
23
24
  */
24
25
  export type SummarySection = 'current' | 'forecast' | 'alerts' | 'air_quality' | 'lightning';
25
- export declare function handleGetWeatherSummary(args: unknown, noaaService: NOAAService, openMeteoService: OpenMeteoService, nceiService: NCEIService, locationStore: LocationStore, geocodingService: GeocodingService, meteoAlarmService?: MeteoAlarmService, geoMetService?: GeoMetService, nominatimService?: NominatimService, googleWeatherService?: GoogleWeatherService, nationalCapService?: NationalCapService, jmaService?: JmaService, criticalAlertBanner?: boolean): Promise<{
26
+ export declare function handleGetWeatherSummary(args: unknown, noaaService: NOAAService, openMeteoService: OpenMeteoService, nceiService: NCEIService, locationStore: LocationStore, geocodingService: GeocodingService, meteoAlarmService?: MeteoAlarmService, geoMetService?: GeoMetService, nominatimService?: NominatimService, googleWeatherService?: GoogleWeatherService, nationalCapService?: NationalCapService, jmaService?: JmaService, criticalAlertBanner?: boolean, metnoService?: MetnoService): Promise<{
26
27
  content: Array<{
27
28
  type: string;
28
29
  text: string;