@dangahagan/weather-mcp 1.1.0 → 1.2.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 +65 -10
- package/dist/config/api.d.ts +30 -0
- package/dist/config/api.d.ts.map +1 -0
- package/dist/config/api.js +32 -0
- package/dist/config/api.js.map +1 -0
- package/dist/errors/ApiError.d.ts +6 -6
- package/dist/errors/ApiError.d.ts.map +1 -1
- package/dist/errors/ApiError.js +36 -13
- package/dist/errors/ApiError.js.map +1 -1
- package/dist/handlers/alertsHandler.d.ts.map +1 -1
- package/dist/handlers/alertsHandler.js +21 -5
- package/dist/handlers/alertsHandler.js.map +1 -1
- package/dist/handlers/currentConditionsHandler.d.ts +3 -1
- package/dist/handlers/currentConditionsHandler.d.ts.map +1 -1
- package/dist/handlers/currentConditionsHandler.js +49 -2
- package/dist/handlers/currentConditionsHandler.js.map +1 -1
- package/dist/handlers/forecastHandler.d.ts +2 -1
- package/dist/handlers/forecastHandler.d.ts.map +1 -1
- package/dist/handlers/forecastHandler.js +119 -17
- package/dist/handlers/forecastHandler.js.map +1 -1
- package/dist/handlers/marineConditionsHandler.d.ts.map +1 -1
- package/dist/handlers/marineConditionsHandler.js +23 -7
- package/dist/handlers/marineConditionsHandler.js.map +1 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/services/ncei.d.ts +61 -0
- package/dist/services/ncei.d.ts.map +1 -0
- package/dist/services/ncei.js +126 -0
- package/dist/services/ncei.js.map +1 -0
- package/dist/services/openmeteo.d.ts +23 -1
- package/dist/services/openmeteo.d.ts.map +1 -1
- package/dist/services/openmeteo.js +92 -5
- package/dist/services/openmeteo.js.map +1 -1
- package/dist/types/noaa.d.ts +4 -0
- package/dist/types/noaa.d.ts.map +1 -1
- package/dist/types/openmeteo.d.ts +18 -0
- package/dist/types/openmeteo.d.ts.map +1 -1
- package/dist/utils/normals.d.ts +86 -0
- package/dist/utils/normals.d.ts.map +1 -0
- package/dist/utils/normals.js +223 -0
- package/dist/utils/normals.js.map +1 -0
- package/dist/utils/snow.d.ts +45 -0
- package/dist/utils/snow.d.ts.map +1 -0
- package/dist/utils/snow.js +144 -0
- package/dist/utils/snow.js.map +1 -0
- package/dist/utils/timezone.d.ts +56 -0
- package/dist/utils/timezone.d.ts.map +1 -0
- package/dist/utils/timezone.js +169 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/utils/version.d.ts +15 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +24 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -30,6 +30,25 @@ An MCP (Model Context Protocol) server that provides **global weather data** to
|
|
|
30
30
|
- Support for cities, airports, landmarks, and regions globally
|
|
31
31
|
- Detailed metadata: timezone, elevation, population, country
|
|
32
32
|
- Enables natural language queries: "What's the weather in Tokyo?"
|
|
33
|
+
- **Climate Normals - Historical Context**: Compare weather to 30-year averages (NEW in v1.2.0)
|
|
34
|
+
- **Optional enhancement** for current conditions and forecasts (`include_normals=true`)
|
|
35
|
+
- Shows normal high/low temperatures and precipitation for comparison
|
|
36
|
+
- Displays departure from normal ("10°F warmer than normal")
|
|
37
|
+
- **Hybrid data strategy**: Open-Meteo computed normals (global, free) or optional NOAA NCEI official normals (US only, requires free API token)
|
|
38
|
+
- Based on 1991-2020 climate normals period
|
|
39
|
+
- Helps understand if weather is unusual for the time of year
|
|
40
|
+
- **Snow and Ice Data**: Enhanced winter weather information (NEW in v1.2.0)
|
|
41
|
+
- Snow depth on ground (current conditions, US only)
|
|
42
|
+
- Snowfall accumulation forecasts with time periods
|
|
43
|
+
- Ice accumulation forecasts for freezing rain events
|
|
44
|
+
- Smart threshold-based display (filters trace amounts)
|
|
45
|
+
- Unit conversions from metric to imperial
|
|
46
|
+
- **Timezone-Aware Display**: All timestamps in local time (NEW in v1.2.0)
|
|
47
|
+
- Automatic timezone detection from coordinates
|
|
48
|
+
- All times displayed in location's local timezone
|
|
49
|
+
- Includes timezone abbreviations (EST, PDT, etc.)
|
|
50
|
+
- Handles daylight saving time transitions
|
|
51
|
+
- Formatted time ranges for forecast periods
|
|
33
52
|
- **Weather Alerts**: Get active weather watches, warnings, and advisories for US locations
|
|
34
53
|
- Severity levels (Extreme, Severe, Moderate, Minor)
|
|
35
54
|
- Urgency and certainty indicators
|
|
@@ -92,6 +111,7 @@ The Weather MCP server includes an intelligent in-memory caching system that sig
|
|
|
92
111
|
The cache automatically stores and retrieves weather data with intelligent expiration:
|
|
93
112
|
|
|
94
113
|
- **Location Searches**: Cached for 30 days (locations don't move)
|
|
114
|
+
- **Climate Normals**: Cached indefinitely (30-year averages are static) - NEW in v1.2.0
|
|
95
115
|
- **Marine Conditions**: Cached for 1 hour (marine data updates hourly) - NEW in v0.6.0
|
|
96
116
|
- **Air Quality Data**: Cached for 1 hour (air quality updates hourly) - v0.5.0
|
|
97
117
|
- **Fire Weather Data**: Cached for 2 hours (gridpoint data updates ~hourly) - v0.5.0
|
|
@@ -112,8 +132,18 @@ export CACHE_ENABLED=false
|
|
|
112
132
|
|
|
113
133
|
# Adjust maximum cache size (default: 1000 entries)
|
|
114
134
|
export CACHE_MAX_SIZE=1500
|
|
135
|
+
|
|
136
|
+
# Optional: NOAA NCEI API token for official climate normals (US only, NEW in v1.2.0)
|
|
137
|
+
# Falls back to Open-Meteo computed normals if not configured
|
|
138
|
+
export NCEI_API_TOKEN=your_token_here
|
|
115
139
|
```
|
|
116
140
|
|
|
141
|
+
**Note on Climate Normals (v1.2.0):**
|
|
142
|
+
- By default, climate normals use Open-Meteo's computed 30-year averages (completely free, global coverage, zero setup)
|
|
143
|
+
- Optionally, you can configure a free NCEI API token to use official NOAA climate normals for US locations
|
|
144
|
+
- Get a free token at: https://www.ncdc.noaa.gov/cdo-web/token
|
|
145
|
+
- If NCEI token is configured but unavailable, the system automatically falls back to Open-Meteo
|
|
146
|
+
|
|
117
147
|
### Monitoring
|
|
118
148
|
|
|
119
149
|
Use the `check_service_status` tool to view cache statistics including:
|
|
@@ -237,7 +267,7 @@ You can also find coordinates manually:
|
|
|
237
267
|
|
|
238
268
|
## Available Tools
|
|
239
269
|
|
|
240
|
-
### 1. get_forecast (ENHANCED in v0.4.0)
|
|
270
|
+
### 1. get_forecast (ENHANCED in v0.4.0, v1.2.0)
|
|
241
271
|
Get weather forecast for any location worldwide.
|
|
242
272
|
|
|
243
273
|
**Parameters:**
|
|
@@ -246,6 +276,7 @@ Get weather forecast for any location worldwide.
|
|
|
246
276
|
- `days` (optional): Number of days in forecast (1-16, default: 7)
|
|
247
277
|
- `granularity` (optional): "daily" or "hourly" (default: "daily")
|
|
248
278
|
- `include_precipitation_probability` (optional): Include rain chances (default: true)
|
|
279
|
+
- `include_normals` (optional): Include climate normals for comparison (default: false, NEW in v1.2.0)
|
|
249
280
|
- `source` (optional): "auto" (default), "noaa" (US only), or "openmeteo" (global)
|
|
250
281
|
|
|
251
282
|
**Description:**
|
|
@@ -266,19 +297,35 @@ Automatically selects the best data source: NOAA for US locations (more detailed
|
|
|
266
297
|
- Weather conditions and descriptions
|
|
267
298
|
- UV index (for international locations)
|
|
268
299
|
- Humidity and atmospheric conditions
|
|
300
|
+
- Climate normals comparison (when `include_normals=true`, NEW in v1.2.0)
|
|
301
|
+
- Snow and ice accumulation forecasts (when available, NEW in v1.2.0)
|
|
302
|
+
- All timestamps in local timezone (NEW in v1.2.0)
|
|
269
303
|
|
|
270
|
-
### 2. get_current_conditions
|
|
271
|
-
Get current weather conditions for a location.
|
|
304
|
+
### 2. get_current_conditions (ENHANCED in v1.2.0)
|
|
305
|
+
Get current weather conditions for a location (US only).
|
|
272
306
|
|
|
273
307
|
**Parameters:**
|
|
274
308
|
- `latitude` (required): Latitude coordinate (-90 to 90)
|
|
275
309
|
- `longitude` (required): Longitude coordinate (-180 to 180)
|
|
310
|
+
- `include_fire_weather` (optional): Include fire weather indices (default: false)
|
|
311
|
+
- `include_normals` (optional): Include climate normals for comparison (default: false, NEW in v1.2.0)
|
|
276
312
|
|
|
277
313
|
**Example:**
|
|
278
314
|
```
|
|
279
315
|
What are the current weather conditions in New York? (latitude: 40.7128, longitude: -74.0060)
|
|
280
316
|
```
|
|
281
317
|
|
|
318
|
+
**Returns:**
|
|
319
|
+
- Current temperature, humidity, wind, pressure
|
|
320
|
+
- Heat index or wind chill (when applicable)
|
|
321
|
+
- 24-hour temperature range
|
|
322
|
+
- Recent precipitation
|
|
323
|
+
- Cloud cover and visibility
|
|
324
|
+
- Snow depth on ground (when available, NEW in v1.2.0)
|
|
325
|
+
- Climate normals comparison (when `include_normals=true`, NEW in v1.2.0)
|
|
326
|
+
- Fire weather indices (when `include_fire_weather=true`)
|
|
327
|
+
- All timestamps in local timezone (NEW in v1.2.0)
|
|
328
|
+
|
|
282
329
|
### 3. search_location (NEW in v0.4.0)
|
|
283
330
|
Find coordinates for any location worldwide by name.
|
|
284
331
|
|
|
@@ -542,7 +589,7 @@ Use the `check_service_status` tool to proactively verify API availability:
|
|
|
542
589
|
|
|
543
590
|
### Automated Test Suite
|
|
544
591
|
|
|
545
|
-
This project includes a comprehensive test suite with
|
|
592
|
+
This project includes a comprehensive test suite with 693 automated tests:
|
|
546
593
|
|
|
547
594
|
```bash
|
|
548
595
|
# Run all tests
|
|
@@ -559,13 +606,13 @@ npm run test:ui
|
|
|
559
606
|
```
|
|
560
607
|
|
|
561
608
|
**Test Coverage:**
|
|
562
|
-
- **
|
|
563
|
-
- **100% coverage** on critical utilities (cache, validation, units, errors)
|
|
609
|
+
- **693 tests** across unit and integration test suites (340 new tests in v1.2.0)
|
|
610
|
+
- **100% coverage** on critical utilities (cache, validation, units, errors, normals, snow, timezone)
|
|
564
611
|
- **54% overall coverage** with focus on reliability and security
|
|
565
612
|
- All tests execute in ~1 second
|
|
566
613
|
|
|
567
614
|
**Test Categories:**
|
|
568
|
-
- **Unit Tests** (
|
|
615
|
+
- **Unit Tests** (427 tests) - Cache, validation, units, errors, config, retry logic, normals, snow, timezone
|
|
569
616
|
- **Integration Tests** (19 tests) - Error recovery scenarios, service status checks
|
|
570
617
|
|
|
571
618
|
### Quick API Connectivity Test
|
|
@@ -611,6 +658,7 @@ weather-mcp/
|
|
|
611
658
|
├── src/
|
|
612
659
|
│ ├── index.ts # Main MCP server
|
|
613
660
|
│ ├── config/
|
|
661
|
+
│ │ ├── api.ts # API configuration (NCEI token) - NEW in v1.2.0
|
|
614
662
|
│ │ ├── cache.ts # Cache configuration and TTL strategies
|
|
615
663
|
│ │ └── displayThresholds.ts # Display thresholds for weather conditions
|
|
616
664
|
│ ├── errors/
|
|
@@ -620,10 +668,14 @@ weather-mcp/
|
|
|
620
668
|
│ │ ├── currentConditionsHandler.ts # Current conditions handler
|
|
621
669
|
│ │ ├── forecastHandler.ts # Forecast tool handler
|
|
622
670
|
│ │ ├── historicalWeatherHandler.ts # Historical weather handler
|
|
671
|
+
│ │ ├── airQualityHandler.ts # Air quality handler
|
|
672
|
+
│ │ ├── marineConditionsHandler.ts # Marine conditions handler
|
|
673
|
+
│ │ ├── locationHandler.ts # Location search handler
|
|
623
674
|
│ │ └── statusHandler.ts # Service status handler
|
|
624
675
|
│ ├── services/
|
|
625
676
|
│ │ ├── noaa.ts # NOAA API service
|
|
626
|
-
│ │
|
|
677
|
+
│ │ ├── openmeteo.ts # Open-Meteo API service
|
|
678
|
+
│ │ └── ncei.ts # NCEI climate normals service - NEW in v1.2.0
|
|
627
679
|
│ ├── types/
|
|
628
680
|
│ │ ├── noaa.ts # NOAA TypeScript type definitions
|
|
629
681
|
│ │ └── openmeteo.ts # Open-Meteo TypeScript type definitions
|
|
@@ -632,9 +684,12 @@ weather-mcp/
|
|
|
632
684
|
│ ├── logger.ts # Structured logging utilities
|
|
633
685
|
│ ├── temperatureConversion.ts # Temperature conversion helpers
|
|
634
686
|
│ ├── units.ts # Unit conversion utilities
|
|
635
|
-
│
|
|
687
|
+
│ ├── validation.ts # Input validation functions
|
|
688
|
+
│ ├── normals.ts # Climate normals utilities - NEW in v1.2.0
|
|
689
|
+
│ ├── snow.ts # Snow and ice data utilities - NEW in v1.2.0
|
|
690
|
+
│ └── timezone.ts # Timezone-aware formatting - NEW in v1.2.0
|
|
636
691
|
├── tests/
|
|
637
|
-
│ ├── unit/ # Unit tests (
|
|
692
|
+
│ ├── unit/ # Unit tests (427 tests) - 93 new tests in v1.2.0
|
|
638
693
|
│ └── integration/ # Integration tests (19 tests)
|
|
639
694
|
├── dist/ # Compiled JavaScript (generated)
|
|
640
695
|
├── docs/ # Documentation
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API configuration for external weather services
|
|
3
|
+
*
|
|
4
|
+
* Most APIs used by this server are free and require no authentication.
|
|
5
|
+
* Optional API tokens can be configured for enhanced features.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* NCEI (National Centers for Environmental Information) API token
|
|
9
|
+
*
|
|
10
|
+
* OPTIONAL: Get a free token at https://www.ncdc.noaa.gov/cdo-web/token
|
|
11
|
+
*
|
|
12
|
+
* Benefits of providing a token:
|
|
13
|
+
* - Access to official NOAA climate normals for US locations
|
|
14
|
+
* - More accurate than computed normals from reanalysis data
|
|
15
|
+
*
|
|
16
|
+
* If not provided:
|
|
17
|
+
* - Climate normals will be computed from Open-Meteo historical data
|
|
18
|
+
* - Works globally (not just US)
|
|
19
|
+
* - No setup required
|
|
20
|
+
*
|
|
21
|
+
* Rate limits with token:
|
|
22
|
+
* - 5 requests per second
|
|
23
|
+
* - 10,000 requests per day
|
|
24
|
+
*/
|
|
25
|
+
export declare const NCEI_API_TOKEN: string | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Check if NCEI API is available (token configured)
|
|
28
|
+
*/
|
|
29
|
+
export declare function isNCEIAvailable(): boolean;
|
|
30
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/config/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc,oBAA6B,CAAC;AAEzD;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API configuration for external weather services
|
|
3
|
+
*
|
|
4
|
+
* Most APIs used by this server are free and require no authentication.
|
|
5
|
+
* Optional API tokens can be configured for enhanced features.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* NCEI (National Centers for Environmental Information) API token
|
|
9
|
+
*
|
|
10
|
+
* OPTIONAL: Get a free token at https://www.ncdc.noaa.gov/cdo-web/token
|
|
11
|
+
*
|
|
12
|
+
* Benefits of providing a token:
|
|
13
|
+
* - Access to official NOAA climate normals for US locations
|
|
14
|
+
* - More accurate than computed normals from reanalysis data
|
|
15
|
+
*
|
|
16
|
+
* If not provided:
|
|
17
|
+
* - Climate normals will be computed from Open-Meteo historical data
|
|
18
|
+
* - Works globally (not just US)
|
|
19
|
+
* - No setup required
|
|
20
|
+
*
|
|
21
|
+
* Rate limits with token:
|
|
22
|
+
* - 5 requests per second
|
|
23
|
+
* - 10,000 requests per day
|
|
24
|
+
*/
|
|
25
|
+
export const NCEI_API_TOKEN = process.env.NCEI_API_TOKEN;
|
|
26
|
+
/**
|
|
27
|
+
* Check if NCEI API is available (token configured)
|
|
28
|
+
*/
|
|
29
|
+
export function isNCEIAvailable() {
|
|
30
|
+
return !!NCEI_API_TOKEN && NCEI_API_TOKEN.trim().length > 0;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/config/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAEzD;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class ApiError extends Error {
|
|
8
8
|
readonly statusCode: number;
|
|
9
|
-
readonly service: 'NOAA' | 'OpenMeteo';
|
|
9
|
+
readonly service: 'NOAA' | 'OpenMeteo' | 'NCEI';
|
|
10
10
|
readonly userMessage: string;
|
|
11
11
|
readonly helpLinks: string[];
|
|
12
12
|
readonly isRetryable: boolean;
|
|
13
|
-
constructor(message: string, statusCode: number, service: 'NOAA' | 'OpenMeteo', userMessage: string, helpLinks?: string[], isRetryable?: boolean);
|
|
13
|
+
constructor(message: string, statusCode: number, service: 'NOAA' | 'OpenMeteo' | 'NCEI', userMessage: string, helpLinks?: string[], isRetryable?: boolean);
|
|
14
14
|
/**
|
|
15
15
|
* Format error for display to user
|
|
16
16
|
*/
|
|
@@ -21,13 +21,13 @@ export declare class ApiError extends Error {
|
|
|
21
21
|
*/
|
|
22
22
|
export declare class RateLimitError extends ApiError {
|
|
23
23
|
readonly retryAfter?: number;
|
|
24
|
-
constructor(service: 'NOAA' | 'OpenMeteo', retryAfter?: number);
|
|
24
|
+
constructor(service: 'NOAA' | 'OpenMeteo' | 'NCEI', messageOrRetryAfter?: string | number, retryAfter?: number);
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Service unavailable error - API is down or timing out
|
|
28
28
|
*/
|
|
29
29
|
export declare class ServiceUnavailableError extends ApiError {
|
|
30
|
-
constructor(service: 'NOAA' | 'OpenMeteo', originalError?: Error);
|
|
30
|
+
constructor(service: 'NOAA' | 'OpenMeteo' | 'NCEI', messageOrError?: string | Error, originalError?: Error);
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Invalid location error - coordinates not supported or out of range
|
|
@@ -35,13 +35,13 @@ export declare class ServiceUnavailableError extends ApiError {
|
|
|
35
35
|
export declare class InvalidLocationError extends ApiError {
|
|
36
36
|
readonly latitude?: number;
|
|
37
37
|
readonly longitude?: number;
|
|
38
|
-
constructor(service: 'NOAA' | 'OpenMeteo', message: string, latitude?: number, longitude?: number);
|
|
38
|
+
constructor(service: 'NOAA' | 'OpenMeteo' | 'NCEI', message: string, latitude?: number, longitude?: number);
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Data not found error - requested data doesn't exist
|
|
42
42
|
*/
|
|
43
43
|
export declare class DataNotFoundError extends ApiError {
|
|
44
|
-
constructor(service: 'NOAA' | 'OpenMeteo', message: string);
|
|
44
|
+
constructor(service: 'NOAA' | 'OpenMeteo' | 'NCEI', message: string);
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Validation error - invalid input parameters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiError.d.ts","sourceRoot":"","sources":["../../src/errors/ApiError.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ApiError.d.ts","sourceRoot":"","sources":["../../src/errors/ApiError.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACvD,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpC,SAAgB,WAAW,EAAE,OAAO,CAAC;gBAGnC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,EACtC,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAM,EAAO,EACxB,WAAW,GAAE,OAAe;IAgB9B;;OAEG;IACH,aAAa,IAAI,MAAM;CAYxB;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAExB,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAiC/G;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,QAAQ;gBACvC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK;CAiC3G;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClC,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAGjC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,EACtC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM;CAerB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM;CAYpE;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAgB,KAAK,CAAC,EAAE,GAAG,CAAC;gBAEhB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;CAUzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAetD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAgBvD"}
|
package/dist/errors/ApiError.js
CHANGED
|
@@ -42,33 +42,56 @@ export class ApiError extends Error {
|
|
|
42
42
|
*/
|
|
43
43
|
export class RateLimitError extends ApiError {
|
|
44
44
|
retryAfter;
|
|
45
|
-
constructor(service, retryAfter) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
constructor(service, messageOrRetryAfter, retryAfter) {
|
|
46
|
+
// Handle backwards compatibility: if second param is number, treat it as retryAfter
|
|
47
|
+
let message;
|
|
48
|
+
let retry;
|
|
49
|
+
if (typeof messageOrRetryAfter === 'number') {
|
|
50
|
+
message = undefined;
|
|
51
|
+
retry = messageOrRetryAfter;
|
|
52
|
+
}
|
|
53
|
+
else if (typeof messageOrRetryAfter === 'string') {
|
|
54
|
+
message = messageOrRetryAfter;
|
|
55
|
+
retry = retryAfter;
|
|
56
|
+
}
|
|
57
|
+
const userMessage = message || (retry
|
|
58
|
+
? `Rate limit exceeded. Please retry after ${retry} seconds.`
|
|
59
|
+
: 'Rate limit exceeded. Please retry in a few seconds.');
|
|
49
60
|
super(`Rate limit exceeded for ${service}`, 429, service, userMessage, [
|
|
50
61
|
'https://weather.gov/documentation/services-web-api',
|
|
51
62
|
'https://open-meteo.com/en/features#api-documentation',
|
|
63
|
+
'https://www.ncdc.noaa.gov/cdo-web/webservices'
|
|
52
64
|
], true // Retryable after waiting
|
|
53
65
|
);
|
|
54
66
|
this.name = 'RateLimitError';
|
|
55
|
-
this.retryAfter =
|
|
67
|
+
this.retryAfter = retry;
|
|
56
68
|
}
|
|
57
69
|
}
|
|
58
70
|
/**
|
|
59
71
|
* Service unavailable error - API is down or timing out
|
|
60
72
|
*/
|
|
61
73
|
export class ServiceUnavailableError extends ApiError {
|
|
62
|
-
constructor(service, originalError) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
74
|
+
constructor(service, messageOrError, originalError) {
|
|
75
|
+
// Handle backwards compatibility: if second param is Error, treat it as originalError
|
|
76
|
+
let message;
|
|
77
|
+
let error;
|
|
78
|
+
if (typeof messageOrError === 'string') {
|
|
79
|
+
message = messageOrError;
|
|
80
|
+
error = originalError;
|
|
81
|
+
}
|
|
82
|
+
else if (messageOrError instanceof Error) {
|
|
83
|
+
message = undefined;
|
|
84
|
+
error = messageOrError;
|
|
85
|
+
}
|
|
86
|
+
const userMessage = message || `The ${service} weather service is temporarily unavailable. Please try again in a few minutes.`;
|
|
87
|
+
const helpLink = service === 'NOAA' ? 'https://www.weather.gov/'
|
|
88
|
+
: service === 'NCEI' ? 'https://www.ncei.noaa.gov/'
|
|
89
|
+
: 'https://open-meteo.com/';
|
|
90
|
+
super(`${service} API is currently unavailable`, 503, service, userMessage, [helpLink], true // Retryable
|
|
68
91
|
);
|
|
69
92
|
this.name = 'ServiceUnavailableError';
|
|
70
|
-
if (
|
|
71
|
-
this.stack = `${this.stack}\nCaused by: ${
|
|
93
|
+
if (error && error.stack) {
|
|
94
|
+
this.stack = `${this.stack}\nCaused by: ${error.stack}`;
|
|
72
95
|
}
|
|
73
96
|
}
|
|
74
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiError.js","sourceRoot":"","sources":["../../src/errors/ApiError.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjB,UAAU,CAAS;IACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"ApiError.js","sourceRoot":"","sources":["../../src/errors/ApiError.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alertsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/alertsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"alertsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/alertsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAUlD,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAkH7D"}
|
|
@@ -2,10 +2,26 @@
|
|
|
2
2
|
* Handler for get_alerts tool
|
|
3
3
|
*/
|
|
4
4
|
import { validateCoordinates, validateOptionalBoolean } from '../utils/validation.js';
|
|
5
|
+
import { formatInTimezone, guessTimezoneFromCoords } from '../utils/timezone.js';
|
|
5
6
|
export async function handleGetAlerts(args, noaaService) {
|
|
6
7
|
// Validate input parameters with runtime checks
|
|
7
8
|
const { latitude, longitude } = validateCoordinates(args);
|
|
8
9
|
const active_only = validateOptionalBoolean(args?.active_only, 'active_only', true);
|
|
10
|
+
// Get timezone for proper time formatting
|
|
11
|
+
let timezone = guessTimezoneFromCoords(latitude, longitude); // fallback
|
|
12
|
+
try {
|
|
13
|
+
// Try to get timezone from station (preferred)
|
|
14
|
+
const stations = await noaaService.getStations(latitude, longitude);
|
|
15
|
+
if (stations.features && stations.features.length > 0) {
|
|
16
|
+
const stationTimezone = stations.features[0].properties.timeZone;
|
|
17
|
+
if (stationTimezone) {
|
|
18
|
+
timezone = stationTimezone;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
// Use fallback timezone
|
|
24
|
+
}
|
|
9
25
|
// Get alerts data
|
|
10
26
|
const alertsData = await noaaService.getAlerts(latitude, longitude, active_only);
|
|
11
27
|
const alerts = alertsData.features;
|
|
@@ -14,7 +30,7 @@ export async function handleGetAlerts(args, noaaService) {
|
|
|
14
30
|
output += `**Location:** ${latitude.toFixed(4)}, ${longitude.toFixed(4)}\n`;
|
|
15
31
|
output += `**Status:** ${active_only ? 'Active alerts only' : 'All alerts'}\n`;
|
|
16
32
|
if (alertsData.updated) {
|
|
17
|
-
output += `**Updated:** ${
|
|
33
|
+
output += `**Updated:** ${formatInTimezone(alertsData.updated, timezone)}\n`;
|
|
18
34
|
}
|
|
19
35
|
output += `\n`;
|
|
20
36
|
if (alerts.length === 0) {
|
|
@@ -52,13 +68,13 @@ export async function handleGetAlerts(args, noaaService) {
|
|
|
52
68
|
}
|
|
53
69
|
output += `**Severity:** ${props.severity} | **Urgency:** ${props.urgency} | **Certainty:** ${props.certainty}\n`;
|
|
54
70
|
output += `**Area:** ${props.areaDesc}\n`;
|
|
55
|
-
output += `**Effective:** ${
|
|
56
|
-
output += `**Expires:** ${
|
|
71
|
+
output += `**Effective:** ${formatInTimezone(props.effective, timezone)}\n`;
|
|
72
|
+
output += `**Expires:** ${formatInTimezone(props.expires, timezone)}\n`;
|
|
57
73
|
if (props.onset && props.onset !== props.effective) {
|
|
58
|
-
output += `**Onset:** ${
|
|
74
|
+
output += `**Onset:** ${formatInTimezone(props.onset, timezone)}\n`;
|
|
59
75
|
}
|
|
60
76
|
if (props.ends) {
|
|
61
|
-
output += `**Ends:** ${
|
|
77
|
+
output += `**Ends:** ${formatInTimezone(props.ends, timezone)}\n`;
|
|
62
78
|
}
|
|
63
79
|
output += `\n**Description:**\n${props.description}\n`;
|
|
64
80
|
if (props.instruction) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alertsHandler.js","sourceRoot":"","sources":["../../src/handlers/alertsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"alertsHandler.js","sourceRoot":"","sources":["../../src/handlers/alertsHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* Handler for get_current_conditions tool
|
|
3
3
|
*/
|
|
4
4
|
import { NOAAService } from '../services/noaa.js';
|
|
5
|
-
|
|
5
|
+
import { OpenMeteoService } from '../services/openmeteo.js';
|
|
6
|
+
import { NCEIService } from '../services/ncei.js';
|
|
7
|
+
export declare function handleGetCurrentConditions(args: unknown, noaaService: NOAAService, openMeteoService: OpenMeteoService, nceiService: NCEIService): Promise<{
|
|
6
8
|
content: Array<{
|
|
7
9
|
type: string;
|
|
8
10
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currentConditionsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/currentConditionsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"currentConditionsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/currentConditionsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAuBlD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAwT7D"}
|
|
@@ -5,17 +5,36 @@ import { validateCoordinates, validateOptionalBoolean } from '../utils/validatio
|
|
|
5
5
|
import { convertToFahrenheit } from '../utils/temperatureConversion.js';
|
|
6
6
|
import { DisplayThresholds } from '../config/displayThresholds.js';
|
|
7
7
|
import { getHainesCategory, getGrasslandFireDangerCategory, getRedFlagCategory, getCurrentFireWeatherValue, formatMixingHeight, interpretTransportWind } from '../utils/fireWeather.js';
|
|
8
|
-
|
|
8
|
+
import { extractSnowDepth, formatSnowData, hasWinterWeather } from '../utils/snow.js';
|
|
9
|
+
import { formatInTimezone, guessTimezoneFromCoords } from '../utils/timezone.js';
|
|
10
|
+
import { getClimateNormals, formatNormals, getDateComponents } from '../utils/normals.js';
|
|
11
|
+
export async function handleGetCurrentConditions(args, noaaService, openMeteoService, nceiService) {
|
|
9
12
|
// Validate input parameters with runtime checks
|
|
10
13
|
const { latitude, longitude } = validateCoordinates(args);
|
|
11
14
|
const includeFireWeather = validateOptionalBoolean(args?.include_fire_weather, 'include_fire_weather', false);
|
|
15
|
+
const includeNormals = validateOptionalBoolean(args?.include_normals, 'include_normals', false);
|
|
12
16
|
// Get current observation
|
|
13
17
|
const observation = await noaaService.getCurrentConditions(latitude, longitude);
|
|
14
18
|
const props = observation.properties;
|
|
19
|
+
// Get timezone for proper time formatting
|
|
20
|
+
let timezone = guessTimezoneFromCoords(latitude, longitude); // fallback
|
|
21
|
+
try {
|
|
22
|
+
// Try to get timezone from station (preferred)
|
|
23
|
+
const stations = await noaaService.getStations(latitude, longitude);
|
|
24
|
+
if (stations.features && stations.features.length > 0) {
|
|
25
|
+
const stationTimezone = stations.features[0].properties.timeZone;
|
|
26
|
+
if (stationTimezone) {
|
|
27
|
+
timezone = stationTimezone;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
// Use fallback timezone
|
|
33
|
+
}
|
|
15
34
|
// Format current conditions
|
|
16
35
|
let output = `# Current Weather Conditions\n\n`;
|
|
17
36
|
output += `**Station:** ${props.station}\n`;
|
|
18
|
-
output += `**Time:** ${
|
|
37
|
+
output += `**Time:** ${formatInTimezone(props.timestamp, timezone)}\n\n`;
|
|
19
38
|
// Main conditions
|
|
20
39
|
if (props.textDescription) {
|
|
21
40
|
output += `**Conditions:** ${props.textDescription}\n`;
|
|
@@ -156,6 +175,14 @@ export async function handleGetCurrentConditions(args, noaaService) {
|
|
|
156
175
|
output += `**Last 6 Hours:** ${precipIn.toFixed(2)} inches\n`;
|
|
157
176
|
}
|
|
158
177
|
}
|
|
178
|
+
// Winter Weather section (snow depth if available)
|
|
179
|
+
const snowDepth = extractSnowDepth(props);
|
|
180
|
+
if (snowDepth) {
|
|
181
|
+
const snowData = { snowDepth };
|
|
182
|
+
if (hasWinterWeather(snowData)) {
|
|
183
|
+
output += formatSnowData(snowData);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
159
186
|
// Fire Weather section (optional)
|
|
160
187
|
if (includeFireWeather) {
|
|
161
188
|
try {
|
|
@@ -217,6 +244,26 @@ export async function handleGetCurrentConditions(args, noaaService) {
|
|
|
217
244
|
output += `⚠️ Fire weather data not available for this location.\n`;
|
|
218
245
|
}
|
|
219
246
|
}
|
|
247
|
+
// Climate Normals section (optional)
|
|
248
|
+
if (includeNormals) {
|
|
249
|
+
try {
|
|
250
|
+
// Get date components from observation timestamp
|
|
251
|
+
const { month, day } = getDateComponents(props.timestamp);
|
|
252
|
+
// Fetch climate normals using hybrid strategy
|
|
253
|
+
const normals = await getClimateNormals(openMeteoService, nceiService, latitude, longitude, month, day);
|
|
254
|
+
// Format and display normals with current temperature for comparison
|
|
255
|
+
const currentTemps = {
|
|
256
|
+
high: max24F !== null ? Math.round(max24F) : undefined,
|
|
257
|
+
low: min24F !== null ? Math.round(min24F) : undefined
|
|
258
|
+
};
|
|
259
|
+
output += formatNormals(normals, currentTemps);
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
// If normals fetch fails, just skip it (don't error the whole request)
|
|
263
|
+
output += `\n## Climate Normals\n\n`;
|
|
264
|
+
output += `⚠️ Climate normals data not available for this location.\n`;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
220
267
|
output += `\n---\n`;
|
|
221
268
|
output += `*Data source: NOAA National Weather Service*\n`;
|
|
222
269
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currentConditionsHandler.js","sourceRoot":"","sources":["../../src/handlers/currentConditionsHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"currentConditionsHandler.js","sourceRoot":"","sources":["../../src/handlers/currentConditionsHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { NOAAService } from '../services/noaa.js';
|
|
6
6
|
import { OpenMeteoService } from '../services/openmeteo.js';
|
|
7
|
-
|
|
7
|
+
import { NCEIService } from '../services/ncei.js';
|
|
8
|
+
export declare function handleGetForecast(args: unknown, noaaService: NOAAService, openMeteoService: OpenMeteoService, nceiService?: NCEIService): Promise<{
|
|
8
9
|
content: Array<{
|
|
9
10
|
type: string;
|
|
10
11
|
text: string;
|