@dangahagan/weather-mcp 1.34.5 → 1.34.6

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.
package/README.md CHANGED
@@ -3,7 +3,7 @@
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-4%2C491%20passing-brightgreen)](./docs/testing/TEST_SUITE_README.md)
6
+ [![Tests](https://img.shields.io/badge/tests-4%2C496%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.**
@@ -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. ([Four optional keys](#optional-api-keys) add extras if you want them; the default configuration needs none.)
61
- - **Fully open source** — MIT licensed, readable TypeScript, 4,491 tests. Audit it, fork it, fix it.
61
+ - **Fully open source** — MIT licensed, readable TypeScript, 4,496 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, and no telemetry unless you opt in.
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
 
@@ -391,7 +391,7 @@ Being honest about what free public data can and can't do:
391
391
  ```bash
392
392
  npm run build # Compile TypeScript
393
393
  npm run dev # Run in development mode
394
- npm test # Run all 4,491 tests
394
+ npm test # Run all 4,496 tests
395
395
  npm run test:coverage # Coverage report
396
396
  npm run audit # Dependency vulnerability scan
397
397
  ```
@@ -55,11 +55,15 @@ export declare class AviationWeatherService {
55
55
  getMetarsInBoundingBox(bbox: BoundingBox): Promise<MetarObservation[]>;
56
56
  /**
57
57
  * Request with retry/backoff, mirroring `NOAAService.makeRequest`.
58
- * Retries only on the transient classes observed live — 502/503/504 and
59
- * network errors, both mapped to `ServiceUnavailableError` by
60
- * `handleError`. A 204 resolves normally (axios treats it as success) and
61
- * never reaches this catch block; other 4xx/5xx statuses are mapped to a
62
- * non-retryable `ApiError` and are not retried.
58
+ * A 502/503/504 or a failed connection is retried up to `maxRetries`
59
+ * times with jittered backoff. A timeout is **not** retried: it has
60
+ * already spent `API_TIMEOUT_MS` (30 s by default) and the MCP SDK's
61
+ * request budget is 60 s, so a retry would answer after the client gave
62
+ * up (the v1.34.2 rule, `isTransientFailure` in `noaa.ts` and
63
+ * `openmeteo.ts`). The loop reads `causeCode`, never the message. A 204
64
+ * resolves normally (axios treats it as success) and never reaches this
65
+ * catch block; other 4xx/5xx statuses are mapped to a non-retryable
66
+ * `ApiError` and are not retried.
63
67
  * @private
64
68
  */
65
69
  private makeRequest;
@@ -67,9 +71,10 @@ export declare class AviationWeatherService {
67
71
  * Map API errors to sanitized, typed errors. Non-2xx bodies that look
68
72
  * like HTML (the observed Azure gateway failure page) or otherwise
69
73
  * aren't JSON are never included in a thrown message. Only 502/503/504
70
- * and network-level failures are mapped to `ServiceUnavailableError`
71
- * (the class `makeRequest` retries on); everything else maps to a
72
- * non-retryable `ApiError`.
74
+ * and network-level failures are mapped to `ServiceUnavailableError`;
75
+ * everything else maps to a non-retryable `ApiError`. Network failures
76
+ * carry the axios error as the cause, so `causeCode` is set and
77
+ * `makeRequest` can tell a timeout from a failed connection.
73
78
  * @private
74
79
  */
75
80
  private handleError;
@@ -1 +1 @@
1
- {"version":3,"file":"aviationWeather.d.ts","sourceRoot":"","sources":["../../src/services/aviationWeather.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAOjF,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAoB/D;AA4DD;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,UAAU,CAAS;IAE3B,YAAY,MAAM,GAAE,4BAAiC,EAuBpD;IAED;;;;;OAKG;IACG,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA2B3E;IAED;;;;;;;;OAQG;YACW,WAAW;IAoBzB;;;;;;;;OAQG;YACW,WAAW;CA8C1B"}
1
+ {"version":3,"file":"aviationWeather.d.ts","sourceRoot":"","sources":["../../src/services/aviationWeather.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAOjF,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAoB/D;AA4DD;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,UAAU,CAAS;IAE3B,YAAY,MAAM,GAAE,4BAAiC,EAuBpD;IAED;;;;;OAKG;IACG,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA2B3E;IAED;;;;;;;;;;;;OAYG;YACW,WAAW;IAwBzB;;;;;;;;;OASG;YACW,WAAW;CAgD1B"}
@@ -168,11 +168,15 @@ export class AviationWeatherService {
168
168
  }
169
169
  /**
170
170
  * Request with retry/backoff, mirroring `NOAAService.makeRequest`.
171
- * Retries only on the transient classes observed live — 502/503/504 and
172
- * network errors, both mapped to `ServiceUnavailableError` by
173
- * `handleError`. A 204 resolves normally (axios treats it as success) and
174
- * never reaches this catch block; other 4xx/5xx statuses are mapped to a
175
- * non-retryable `ApiError` and are not retried.
171
+ * A 502/503/504 or a failed connection is retried up to `maxRetries`
172
+ * times with jittered backoff. A timeout is **not** retried: it has
173
+ * already spent `API_TIMEOUT_MS` (30 s by default) and the MCP SDK's
174
+ * request budget is 60 s, so a retry would answer after the client gave
175
+ * up (the v1.34.2 rule, `isTransientFailure` in `noaa.ts` and
176
+ * `openmeteo.ts`). The loop reads `causeCode`, never the message. A 204
177
+ * resolves normally (axios treats it as success) and never reaches this
178
+ * catch block; other 4xx/5xx statuses are mapped to a non-retryable
179
+ * `ApiError` and are not retried.
176
180
  * @private
177
181
  */
178
182
  async makeRequest(bbox, retries = 0) {
@@ -186,7 +190,10 @@ export class AviationWeatherService {
186
190
  return response.data;
187
191
  }
188
192
  catch (error) {
189
- if (retries < this.maxRetries && error instanceof ServiceUnavailableError) {
193
+ const transient = error instanceof ServiceUnavailableError &&
194
+ error.causeCode !== 'ECONNABORTED' &&
195
+ error.causeCode !== 'ETIMEDOUT';
196
+ if (retries < this.maxRetries && transient) {
190
197
  const baseDelay = Math.pow(2, retries) * 1000;
191
198
  const delay = baseDelay * (0.5 + Math.random() * 0.5);
192
199
  await new Promise(resolve => setTimeout(resolve, delay));
@@ -199,9 +206,10 @@ export class AviationWeatherService {
199
206
  * Map API errors to sanitized, typed errors. Non-2xx bodies that look
200
207
  * like HTML (the observed Azure gateway failure page) or otherwise
201
208
  * aren't JSON are never included in a thrown message. Only 502/503/504
202
- * and network-level failures are mapped to `ServiceUnavailableError`
203
- * (the class `makeRequest` retries on); everything else maps to a
204
- * non-retryable `ApiError`.
209
+ * and network-level failures are mapped to `ServiceUnavailableError`;
210
+ * everything else maps to a non-retryable `ApiError`. Network failures
211
+ * carry the axios error as the cause, so `causeCode` is set and
212
+ * `makeRequest` can tell a timeout from a failed connection.
205
213
  * @private
206
214
  */
207
215
  async handleError(error) {
@@ -225,14 +233,15 @@ export class AviationWeatherService {
225
233
  });
226
234
  throw new ApiError(`AviationWeather API request failed with status ${status}`, status, 'AviationWeather', detail, [], false);
227
235
  }
236
+ const cause = error instanceof Error ? error : undefined;
228
237
  if (error.code === 'ECONNABORTED' || error.code === 'ETIMEDOUT') {
229
- throw new ServiceUnavailableError('AviationWeather', 'AviationWeather API request timed out');
238
+ throw new ServiceUnavailableError('AviationWeather', 'AviationWeather API request timed out', cause);
230
239
  }
231
240
  if (error.code === 'ENOTFOUND' || error.code === 'ECONNREFUSED') {
232
- throw new ServiceUnavailableError('AviationWeather', 'Unable to connect to AviationWeather API');
241
+ throw new ServiceUnavailableError('AviationWeather', 'Unable to connect to AviationWeather API', cause);
233
242
  }
234
243
  if (error.message) {
235
- throw new ServiceUnavailableError('AviationWeather', error.message);
244
+ throw new ServiceUnavailableError('AviationWeather', error.message, cause);
236
245
  }
237
246
  }
238
247
  throw new ServiceUnavailableError('AviationWeather', 'Unknown error occurred while contacting AviationWeather API');
@@ -1 +1 @@
1
- {"version":3,"file":"aviationWeather.js","sourceRoot":"","sources":["../../src/services/aviationWeather.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aviationWeather.js","sourceRoot":"","sources":["../../src/services/aviationWeather.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dangahagan/weather-mcp",
3
- "version": "1.34.5",
3
+ "version": "1.34.6",
4
4
  "description": "MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Built entirely on free public APIs (NOAA, Open-Meteo, USGS, NIFC).",
5
5
  "mcpName": "io.github.dgahagan/weather-mcp",
6
6
  "main": "dist/index.js",