@dangahagan/weather-mcp 1.30.0 → 1.31.0

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-3%2C417%20passing-brightgreen)](./docs/testing/TEST_SUITE_README.md)
6
+ [![Tests](https://img.shields.io/badge/tests-3%2C481%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. ([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,417 tests. Audit it, fork it, fix it.
61
+ - **Fully open source** — MIT licensed, readable TypeScript, 3,481 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
 
@@ -388,7 +388,7 @@ Being honest about what free public data can and can't do:
388
388
  ```bash
389
389
  npm run build # Compile TypeScript
390
390
  npm run dev # Run in development mode
391
- npm test # Run all 3,417 tests
391
+ npm test # Run all 3,481 tests
392
392
  npm run test:coverage # Coverage report
393
393
  npm run audit # Dependency vulnerability scan
394
394
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"marineConditionsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/marineConditionsHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAoC5D,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAuG7D"}
1
+ {"version":3,"file":"marineConditionsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/marineConditionsHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAuC5D,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAuG7D"}
@@ -5,7 +5,7 @@
5
5
  import { DateTime } from 'luxon';
6
6
  import { resolveLocationAsync, prependLocationLine } from '../utils/locationResolver.js';
7
7
  import { validateOptionalBoolean, validatePositiveInteger } from '../utils/validation.js';
8
- import { formatWaveHeight, formatWavePeriod, formatDirection, formatCurrentVelocity, formatWindSpeed, getWaveHeightCategory, getSafetyAssessment, seaStateMarker, formatSeaStateLegend, extractNOAAMarineConditions } from '../utils/marine.js';
8
+ import { formatWaveHeight, formatWavePeriod, formatDirection, formatCurrentVelocity, formatWindSpeed, getWaveHeightCategory, getSafetyAssessment, formatSeaStateBlock, formatNoMarineCellNote, formatSeaStateLegend, NO_DATA_LEVEL, extractNOAAMarineConditions } from '../utils/marine.js';
9
9
  import { shouldUseNOAAMarine } from '../utils/geography.js';
10
10
  import { finiteSampleAt } from '../utils/finiteSample.js';
11
11
  import { logger, redactCoordinatesForLogging } from '../utils/logger.js';
@@ -86,7 +86,7 @@ export async function handleGetMarineConditions(args, noaaService, openMeteoServ
86
86
  // Use Open-Meteo (default for oceans, or fallback for NOAA regions)
87
87
  const marineData = await openMeteoService.getMarine(latitude, longitude, forecast, forecastDays);
88
88
  // Format the marine data for display
89
- const output = formatOpenMeteoMarineConditions(marineData, latitude, longitude, forecast);
89
+ const output = formatOpenMeteoMarineConditions(marineData, latitude, longitude, forecast, resolved);
90
90
  return prependLocationLine({
91
91
  content: [
92
92
  {
@@ -105,9 +105,17 @@ function formatNOAAMarineConditions(data, latitude, longitude, region, timezone,
105
105
  output += `**Location:** ${latitude.toFixed(4)}, ${longitude.toFixed(4)}\n`;
106
106
  output += `**Region:** ${region}\n`;
107
107
  output += `**Last Updated:** ${formatInTimezone(data.timestamp, timezone)}\n\n`;
108
+ // The shared sea-state block, identical to the Open-Meteo path's. Gridpoint data carries no
109
+ // wind-wave/swell split, so those two arguments are undefined by construction and the context
110
+ // sentence is empty here; the period modifiers still apply.
111
+ const safety = getSafetyAssessment(data.waveHeight, undefined, undefined, data.wavePeriod);
112
+ output += formatSeaStateBlock(safety);
108
113
  // Wave Conditions
109
114
  output += `## 🌊 Wave Conditions\n\n`;
110
- if (data.waveHeight !== undefined && data.waveHeight > 0) {
115
+ // A published 0 is a value, not an absence: it bands as the lowest rung in the block above,
116
+ // exactly as a displayed 0.0m does on the Open-Meteo path. Only an absent height renders no
117
+ // wave line, and the block above has already said `Unknown` for it.
118
+ if (data.waveHeight !== undefined) {
111
119
  const waveCategory = getWaveHeightCategory(data.waveHeight);
112
120
  output += `**Significant Wave Height:** ${formatWaveHeight(data.waveHeight)}`;
113
121
  output += ` (${waveCategory.description})\n`;
@@ -117,10 +125,7 @@ function formatNOAAMarineConditions(data, latitude, longitude, region, timezone,
117
125
  if (data.wavePeriod !== undefined) {
118
126
  output += `**Wave Period:** ${formatWavePeriod(data.wavePeriod)}\n`;
119
127
  }
120
- output += `\n**Safety:** ${waveCategory.recommendation}\n\n`;
121
- }
122
- else {
123
- output += `**Wave Height:** Calm or minimal wave activity\n\n`;
128
+ output += `\n`;
124
129
  }
125
130
  // Wind Conditions
126
131
  if (data.windSpeed !== undefined || data.windDirection !== undefined) {
@@ -147,12 +152,13 @@ function formatNOAAMarineConditions(data, latitude, longitude, region, timezone,
147
152
  output += `---\n\n`;
148
153
  output += `*Data source: NOAA National Weather Service*\n`;
149
154
  output += `*Great Lakes and coastal marine conditions from NOAA gridpoint data*\n`;
155
+ output += '\n' + formatSeaStateLegend();
150
156
  return output;
151
157
  }
152
158
  /**
153
159
  * Format Open-Meteo marine conditions data as markdown
154
160
  */
155
- function formatOpenMeteoMarineConditions(data, latitude, longitude, includeForecast) {
161
+ function formatOpenMeteoMarineConditions(data, latitude, longitude, includeForecast, resolved) {
156
162
  let output = `# Marine Conditions Report\n\n`;
157
163
  output += `**Location:** ${latitude.toFixed(4)}, ${longitude.toFixed(4)}\n`;
158
164
  output += `**Timezone:** ${data.timezone}\n`;
@@ -168,9 +174,24 @@ function formatOpenMeteoMarineConditions(data, latitude, longitude, includeForec
168
174
  output += `**Observation Time:** ${formatInTimezone(current.time, data.timezone)}\n\n`;
169
175
  // Overall safety assessment
170
176
  const safety = getSafetyAssessment(current.wave_height ?? undefined, current.wind_wave_height ?? undefined, current.swell_wave_height ?? undefined, current.wave_period ?? undefined);
171
- const safetyEmoji = seaStateMarker(safety.level);
172
- output += `## ${safetyEmoji} Current Conditions: ${safety.level}\n\n`;
173
- output += `${safety.description}\n\n`;
177
+ output += formatSeaStateBlock(safety);
178
+ // The upstream answers HTTP 200 with a null scalar where the marine model has no cell, so a
179
+ // coastal place name that geocodes to an inland centroid returns a blank report with nothing
180
+ // saying why. The note claims only what is known: the upstream returned no cell, and the point
181
+ // came from a place name. `'geocoded'` alone is the whole guard — `resolveDefaultLocation`
182
+ // spreads `source: 'default'` over a saved alias and over a geocoded place alike
183
+ // (locationResolver.ts:422,428,436), so `'default'` carries no information about how the point
184
+ // was obtained, and admitting it would invent provenance for a coordinate the user saved by
185
+ // hand (G53). A genuinely geocoded default therefore gets the short variant too; the short
186
+ // variant claims nothing false, which is the right way to be wrong.
187
+ //
188
+ // The flag carries provenance only. The note names neither the place nor the coordinates:
189
+ // `prependLocationLine` has already printed both in the `**Location:**` header above, and the
190
+ // report's own location line prints the coordinates again, so restating them was redundant
191
+ // (test-drive Observation 1).
192
+ if (safety.level === NO_DATA_LEVEL) {
193
+ output += formatNoMarineCellNote({ fromPlaceName: resolved.source === 'geocoded' });
194
+ }
174
195
  // Wave Height Summary
175
196
  output += `## 🌊 Wave Conditions\n\n`;
176
197
  if (current.wave_height != null) {
@@ -1 +1 @@
1
- {"version":3,"file":"marineConditionsHandler.js","sourceRoot":"","sources":["../../src/handlers/marineConditionsHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marineConditionsHandler.js","sourceRoot":"","sources":["../../src/handlers/marineConditionsHandler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wildfireHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/wildfireHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAyB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA4B5D,KAAK,aAAa,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAkBxE,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,aAAa,CAAC,CAwGxB"}
1
+ {"version":3,"file":"wildfireHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/wildfireHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAyB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA4B5D,KAAK,aAAa,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAkFxE,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,aAAa,CAAC,CAwGxB"}
@@ -20,7 +20,7 @@ import { FIRMSKeyRejectedError } from '../services/firms.js';
20
20
  import { resolveCountryCode, resolveLocationAsync, prependLocationLine } from '../utils/locationResolver.js';
21
21
  import { validateDetail } from '../utils/validation.js';
22
22
  import { guessTimezoneFromCoords, formatObservationAge } from '../utils/timezone.js';
23
- import { calculateDistance } from '../utils/distance.js';
23
+ import { calculateDistance, kmToMiles } from '../utils/distance.js';
24
24
  import { displayValue } from '../utils/displayBanding.js';
25
25
  import { isInUS } from '../utils/geography.js';
26
26
  import { logger } from '../utils/logger.js';
@@ -40,6 +40,67 @@ import { pickRegionFile, filterByRadius, clusterDetections, MAX_RADIUS_DETECTION
40
40
  * to say.
41
41
  */
42
42
  const NIFC_COVERED_COUNTRIES = new Set(['us', 'pr', 'vi', 'gu']);
43
+ /**
44
+ * Parse NIFC's `attr_PercentContained` into a containment percentage, or
45
+ * `null` meaning "NIFC published no usable containment for this incident".
46
+ *
47
+ * `0` is a real reading and `null` is a sentinel. Both occur live — 11 and 50
48
+ * rows respectively in a 200-feature sample of the current perimeters layer —
49
+ * and only the second is absence. A truthy guard suppresses both, which is the
50
+ * defect this replaces.
51
+ *
52
+ * Out-of-range values take the same path as absent ones, and are not clamped.
53
+ * A `150` is not a containment percentage; clamping it would print a figure
54
+ * NIFC never published *and* exclude the fire from the assessment — the less
55
+ * cautious reading of garbage.
56
+ *
57
+ * A `null` containment drives the danger tier as uncontained. An unknown
58
+ * containment is not evidence of containment.
59
+ */
60
+ function parseContainment(raw) {
61
+ return typeof raw === 'number' && Number.isFinite(raw) && raw >= 0 && raw <= 100
62
+ ? raw
63
+ : null;
64
+ }
65
+ /**
66
+ * Render the containment line, bar included.
67
+ *
68
+ * The whole indicator is gated on the value, not just the number: a bar beside
69
+ * "not reported" would delegate the judgement the code just declined to make.
70
+ *
71
+ * The bar is the completed tenths of the *printed* figure, so a full bar means
72
+ * the printed figure is `100%`, an empty bar means it is below `10%`, and each
73
+ * cell is a completed ten percent. `repeat` receives `0..10` by construction,
74
+ * because parseContainment has already confined the value to [0, 100].
75
+ */
76
+ function formatContainmentLine(containment) {
77
+ if (containment === null) {
78
+ return `**Containment:** not reported\n`;
79
+ }
80
+ const shown = displayValue(containment, 0);
81
+ const cells = Math.floor(shown / 10);
82
+ const visual = '█'.repeat(cells) + '░'.repeat(10 - cells);
83
+ return `**Containment:** ${shown.toFixed(0)}% ${visual}\n`;
84
+ }
85
+ /**
86
+ * Render the `X km (Y mi)` distance fragment — the fragment only, so a caller
87
+ * that appends a bearing keeps its own separator.
88
+ *
89
+ * The miles figure is derived from the *displayed* kilometres, not the raw
90
+ * measurement, so two fires printing the same km print the same miles.
91
+ *
92
+ * Two decimals is what makes the miles figure an injective function of the
93
+ * displayed kilometres: adjacent displayed km differ by 0.1 km = 0.0621 mi,
94
+ * and a 0.01 mi grid cannot collapse two values 0.062 apart. Since the danger
95
+ * tier is also a function of the displayed km, no printed miles figure can
96
+ * span two tiers — at every seam, by construction. One decimal fails exactly
97
+ * this: `50.0` and `50.1 km` both print `31.1 mi`, under CAUTION and
98
+ * AWARENESS respectively.
99
+ */
100
+ function formatDistanceFigure(km) {
101
+ const shownKm = displayValue(km, 1);
102
+ return `${shownKm.toFixed(1)} km (${kmToMiles(shownKm).toFixed(2)} mi)`;
103
+ }
43
104
  export async function handleGetWildfireInfo(args, nifcService, locationStore, geocodingService, firmsService, nominatimService) {
44
105
  // Resolve location from coordinates, a saved location name, or a geocoded city name
45
106
  const resolved = await resolveLocationAsync(args, locationStore, geocodingService);
@@ -195,11 +256,24 @@ outsideCoverage = false) {
195
256
  }
196
257
  // Only include fires within radius
197
258
  if (fireDistance <= radius) {
259
+ // Parsed before the literal so the warn can be guarded on the result.
260
+ // Warn only when the value is present but unusable — a plain
261
+ // null/undefined is the normal wire shape for a quarter of live rows,
262
+ // and warning on it would emit ~50 lines per request on a healthy
263
+ // feed. This is a data-quality event, not a security one, so no
264
+ // securityEvent flag (unlike the FIRMS row cap below).
265
+ const containment = parseContainment(attrs.attr_PercentContained);
266
+ if (attrs.attr_PercentContained != null && containment === null) {
267
+ logger.warn('NIFC published an unusable containment value', {
268
+ incident: attrs.poly_IncidentName,
269
+ value: attrs.attr_PercentContained
270
+ });
271
+ }
198
272
  const fireInfo = {
199
273
  name: attrs.poly_IncidentName || 'Unknown Fire',
200
274
  distance: fireDistance,
201
275
  acres: attrs.poly_GISAcres || attrs.attr_FinalAcres || attrs.attr_CalculatedAcres || 0,
202
- containment: attrs.attr_PercentContained || 0,
276
+ containment,
203
277
  discoveryDate: attrs.attr_FireDiscoveryDateTime
204
278
  ? new Date(attrs.attr_FireDiscoveryDateTime)
205
279
  : new Date(),
@@ -262,7 +336,11 @@ outsideCoverage = false) {
262
336
  // less-cautious edge in the band-rounding sequence (design plan,
263
337
  // "Containment").
264
338
  const wildfires = firesWithDistance.filter(f => f.fire.type === 'Wildfire');
265
- const nearestWildfire = wildfires.find(f => displayValue(f.fire.containment, 0) < 100);
339
+ // A null containment drives the tier as uncontained, exactly as the
340
+ // old `|| 0` made it: an unknown containment is not evidence of
341
+ // containment. displayValue does not accept null, so the case is
342
+ // spelled out rather than coerced.
343
+ const nearestWildfire = wildfires.find(f => f.fire.containment === null || displayValue(f.fire.containment, 0) < 100);
266
344
  if (wildfires.length > 0) {
267
345
  output += `\n## Safety Assessment\n\n`;
268
346
  if (nearestWildfire) {
@@ -556,7 +634,7 @@ function formatClusterDetails(cluster, ordinal) {
556
634
  output += ` (${cluster.dayCount} day / ${cluster.nightCount} night)`;
557
635
  }
558
636
  output += `\n`;
559
- output += `**Distance:** ${cluster.distanceKm.toFixed(1)} km (${(cluster.distanceKm * 0.621371).toFixed(1)} mi) ${cluster.bearing}\n`;
637
+ output += `**Distance:** ${formatDistanceFigure(cluster.distanceKm)} ${cluster.bearing}\n`;
560
638
  output += `**Center:** ${cluster.centroid.latitude.toFixed(4)}, ${cluster.centroid.longitude.toFixed(4)}\n`;
561
639
  output += `**Peak intensity:** ${cluster.maxFrp.toFixed(1)} MW (fire radiative power)\n`;
562
640
  const ageMinutes = Math.max(0, Math.round((Date.now() - new Date(cluster.newestAcquiredAt).getTime()) / 60000));
@@ -578,7 +656,7 @@ function formatFireDetails(fire, distance, timezone) {
578
656
  const typeEmoji = fire.type === 'Wildfire' ? '🔥' :
579
657
  fire.type === 'Prescribed Fire' ? '🟦' : '⚪';
580
658
  output += `**Type:** ${typeEmoji} ${fire.type}\n`;
581
- output += `**Distance:** ${distance.toFixed(1)} km (${(distance * 0.621371).toFixed(1)} mi)\n`;
659
+ output += `**Distance:** ${formatDistanceFigure(distance)}\n`;
582
660
  if (fire.state) {
583
661
  let location = fire.state;
584
662
  if (fire.county)
@@ -594,10 +672,11 @@ function formatFireDetails(fire, distance, timezone) {
594
672
  // Fire statistics
595
673
  output += `### Status\n`;
596
674
  output += `**Size:** ${fire.acres.toFixed(0)} acres (${(fire.acres * 0.404686).toFixed(0)} hectares)\n`;
597
- // Containment with visual indicator
598
- const containmentBars = Math.round(fire.containment / 10);
599
- const containmentVisual = '█'.repeat(containmentBars) + '░'.repeat(10 - containmentBars);
600
- output += `**Containment:** ${fire.containment.toFixed(0)}% ${containmentVisual}\n`;
675
+ // The bar is the completed tenths of the printed figure: a full bar means
676
+ // the printed figure is `100%`, an empty bar means it is below `10%`, and
677
+ // each cell is a completed ten percent. A fire NIFC published no usable
678
+ // containment for reads `not reported`, with no bar at all.
679
+ output += formatContainmentLine(fire.containment);
601
680
  const now = new Date();
602
681
  const daysActive = Math.floor((now.getTime() - fire.discoveryDate.getTime()) / (1000 * 60 * 60 * 24));
603
682
  output += `**Discovery Date:** ${fire.discoveryDate.toLocaleDateString('en-US', { timeZone: timezone })}\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"wildfireHandler.js","sourceRoot":"","sources":["../../src/handlers/wildfireHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wildfireHandler.js","sourceRoot":"","sources":["../../src/handlers/wildfireHandler.ts"],"names":[],"mappings":"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"}
@@ -70,7 +70,13 @@ export interface WildfireInfo {
70
70
  name: string;
71
71
  distance: number;
72
72
  acres: number;
73
- containment: number;
73
+ /**
74
+ * Containment percentage 0-100, or `null` when NIFC published no usable
75
+ * containment for this incident. `null` means "not reported", not
76
+ * "missing" and not "zero": `0` is a real reading (a new fire is 0%
77
+ * contained) and both encodings occur live.
78
+ */
79
+ containment: number | null;
74
80
  discoveryDate: Date;
75
81
  latitude?: number;
76
82
  longitude?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"wildfire.d.ts","sourceRoot":"","sources":["../../src/types/wildfire.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IAEtC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAGnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAGpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,uBAAuB,CAAC;IACpC,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"wildfire.d.ts","sourceRoot":"","sources":["../../src/types/wildfire.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IAEtC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAGnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAGpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,uBAAuB,CAAC;IACpC,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -173,4 +173,30 @@ export interface SafetyAssessment {
173
173
  recommendation: string;
174
174
  }
175
175
  export declare function getSafetyAssessment(totalWaveHeight: number | undefined, windWaveHeight: number | undefined, swellHeight: number | undefined, wavePeriod: number | undefined): SafetyAssessment;
176
+ /**
177
+ * The shared sea-state block: both marine render paths (NOAA gridpoint and Open-Meteo) obtain
178
+ * their sea-state block from this function; neither formats the header, the sea-state line or
179
+ * the safety line itself. The header line is byte-compatible with the pre-existing Open-Meteo
180
+ * render site (`## ${marker} Current Conditions: ${level}`), which
181
+ * tests/unit/marine-sea-state-taxonomy.test.ts contract 6 parses directly — do not reformat it.
182
+ */
183
+ export declare function formatSeaStateBlock(safety: SafetyAssessment): string;
184
+ /**
185
+ * The no-marine-cell note: shown when a location resolves to a point the marine model has no
186
+ * cell for (most often a place name resolving to a land centroid). Takes a plain flag, not a
187
+ * `ResolvedLocation` — this module must not import from `locationResolver.ts`, which pulls in
188
+ * `LocationStore`, `GeocodingService`, `Cache` and `NominatimService`. Must never contain
189
+ * `NO_DATA_MARKER`: tests/unit/marine-sea-state-taxonomy.test.ts counts that marker and expects
190
+ * exactly two occurrences in a no-data report.
191
+ *
192
+ * The note deliberately does **not** restate the resolved place name or its coordinates. Both
193
+ * already render above it — `formatLocationLine` prepends `**Location:** <name> (lat, lon)` for
194
+ * every name-based resolution (`locationResolver.ts:47`), and the report's own `**Location:**`
195
+ * line carries the coordinates on every path. `fromPlaceName` therefore carries provenance
196
+ * only: the long variant explains the *mechanism* that produced an inland point without
197
+ * repeating data the reader has already been shown four lines earlier.
198
+ */
199
+ export declare function formatNoMarineCellNote(opts: {
200
+ fromPlaceName: boolean;
201
+ }): string;
176
202
  //# sourceMappingURL=marine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"marine.d.ts","sourceRoot":"","sources":["../../src/utils/marine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marine.d.ts","sourceRoot":"","sources":["../../src/utils/marine.ts"],"names":[],"mappings":"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"}
@@ -241,8 +241,44 @@ export function getSafetyAssessment(totalWaveHeight, windWaveHeight, swellHeight
241
241
  }
242
242
  return {
243
243
  level: waveCategory.level,
244
- description: adjustedDescription + context,
244
+ description: adjustedDescription + '.' + context,
245
245
  recommendation: waveCategory.recommendation
246
246
  };
247
247
  }
248
+ /**
249
+ * The shared sea-state block: both marine render paths (NOAA gridpoint and Open-Meteo) obtain
250
+ * their sea-state block from this function; neither formats the header, the sea-state line or
251
+ * the safety line itself. The header line is byte-compatible with the pre-existing Open-Meteo
252
+ * render site (`## ${marker} Current Conditions: ${level}`), which
253
+ * tests/unit/marine-sea-state-taxonomy.test.ts contract 6 parses directly — do not reformat it.
254
+ */
255
+ export function formatSeaStateBlock(safety) {
256
+ return (`## ${seaStateMarker(safety.level)} Current Conditions: ${safety.level}\n\n` +
257
+ `**Sea state:** ${safety.description}\n` +
258
+ `**Safety:** ${safety.recommendation}\n\n`);
259
+ }
260
+ /**
261
+ * The no-marine-cell note: shown when a location resolves to a point the marine model has no
262
+ * cell for (most often a place name resolving to a land centroid). Takes a plain flag, not a
263
+ * `ResolvedLocation` — this module must not import from `locationResolver.ts`, which pulls in
264
+ * `LocationStore`, `GeocodingService`, `Cache` and `NominatimService`. Must never contain
265
+ * `NO_DATA_MARKER`: tests/unit/marine-sea-state-taxonomy.test.ts counts that marker and expects
266
+ * exactly two occurrences in a no-data report.
267
+ *
268
+ * The note deliberately does **not** restate the resolved place name or its coordinates. Both
269
+ * already render above it — `formatLocationLine` prepends `**Location:** <name> (lat, lon)` for
270
+ * every name-based resolution (`locationResolver.ts:47`), and the report's own `**Location:**`
271
+ * line carries the coordinates on every path. `fromPlaceName` therefore carries provenance
272
+ * only: the long variant explains the *mechanism* that produced an inland point without
273
+ * repeating data the reader has already been shown four lines earlier.
274
+ */
275
+ export function formatNoMarineCellNote(opts) {
276
+ if (opts.fromPlaceName) {
277
+ return (`*No marine-model cell here — a place name resolves to a land centroid, and the marine model ` +
278
+ `covers ocean and large-lake water cells only. For coastal conditions, pass ` +
279
+ `\`latitude\`/\`longitude\` for a point just offshore.*\n\n`);
280
+ }
281
+ return (`*No marine-model cell here — the marine model covers ocean and large-lake water cells only. ` +
282
+ `For coastal conditions, try a point just offshore.*\n\n`);
283
+ }
248
284
  //# sourceMappingURL=marine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"marine.js","sourceRoot":"","sources":["../../src/utils/marine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marine.js","sourceRoot":"","sources":["../../src/utils/marine.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.30.0",
3
+ "version": "1.31.0",
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",
@@ -89,7 +89,7 @@
89
89
  "devDependencies": {
90
90
  "@types/luxon": "^3.7.5",
91
91
  "@types/ngeohash": "^0.6.8",
92
- "@types/node": "^26.5.0",
92
+ "@types/node": "^26.5.1",
93
93
  "@types/pngjs": "^6.0.5",
94
94
  "@types/tz-lookup": "^6.1.2",
95
95
  "@vitest/coverage-v8": "^5.0.0",