@dangahagan/weather-mcp 0.1.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/LICENSE +21 -0
- package/README.md +414 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +515 -0
- package/dist/index.js.map +1 -0
- package/dist/services/noaa.d.ts +74 -0
- package/dist/services/noaa.d.ts.map +1 -0
- package/dist/services/noaa.js +296 -0
- package/dist/services/noaa.js.map +1 -0
- package/dist/services/openmeteo.d.ts +51 -0
- package/dist/services/openmeteo.d.ts.map +1 -0
- package/dist/services/openmeteo.js +298 -0
- package/dist/services/openmeteo.js.map +1 -0
- package/dist/types/noaa.d.ts +201 -0
- package/dist/types/noaa.d.ts.map +1 -0
- package/dist/types/noaa.js +5 -0
- package/dist/types/noaa.js.map +1 -0
- package/dist/types/openmeteo.d.ts +117 -0
- package/dist/types/openmeteo.d.ts.map +1 -0
- package/dist/types/openmeteo.js +6 -0
- package/dist/types/openmeteo.js.map +1 -0
- package/dist/utils/units.d.ts +69 -0
- package/dist/utils/units.d.ts.map +1 -0
- package/dist/utils/units.js +158 -0
- package/dist/utils/units.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openmeteo.js","sourceRoot":"","sources":["../../src/services/openmeteo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for NOAA Weather API responses
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Common properties in NOAA API responses
|
|
6
|
+
*/
|
|
7
|
+
export interface NOAAResponse<T> {
|
|
8
|
+
'@context'?: unknown;
|
|
9
|
+
type?: string;
|
|
10
|
+
geometry?: {
|
|
11
|
+
type: string;
|
|
12
|
+
coordinates: number[];
|
|
13
|
+
};
|
|
14
|
+
properties: T;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Response from /points/{lat},{lon} endpoint
|
|
18
|
+
*/
|
|
19
|
+
export interface PointsProperties {
|
|
20
|
+
'@id': string;
|
|
21
|
+
cwa: string;
|
|
22
|
+
forecastOffice: string;
|
|
23
|
+
gridId: string;
|
|
24
|
+
gridX: number;
|
|
25
|
+
gridY: number;
|
|
26
|
+
forecast: string;
|
|
27
|
+
forecastHourly: string;
|
|
28
|
+
forecastGridData: string;
|
|
29
|
+
observationStations: string;
|
|
30
|
+
relativeLocation: {
|
|
31
|
+
type: string;
|
|
32
|
+
geometry: {
|
|
33
|
+
type: string;
|
|
34
|
+
coordinates: number[];
|
|
35
|
+
};
|
|
36
|
+
properties: {
|
|
37
|
+
city: string;
|
|
38
|
+
state: string;
|
|
39
|
+
distance: {
|
|
40
|
+
unitCode: string;
|
|
41
|
+
value: number;
|
|
42
|
+
};
|
|
43
|
+
bearing: {
|
|
44
|
+
unitCode: string;
|
|
45
|
+
value: number;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
forecastZone: string;
|
|
50
|
+
county: string;
|
|
51
|
+
fireWeatherZone: string;
|
|
52
|
+
timeZone: string;
|
|
53
|
+
radarStation: string;
|
|
54
|
+
}
|
|
55
|
+
export type PointsResponse = NOAAResponse<PointsProperties>;
|
|
56
|
+
/**
|
|
57
|
+
* Forecast period from /gridpoints/{office}/{x},{y}/forecast
|
|
58
|
+
*/
|
|
59
|
+
export interface ForecastPeriod {
|
|
60
|
+
number: number;
|
|
61
|
+
name: string;
|
|
62
|
+
startTime: string;
|
|
63
|
+
endTime: string;
|
|
64
|
+
isDaytime: boolean;
|
|
65
|
+
temperature: number;
|
|
66
|
+
temperatureUnit: 'F' | 'C';
|
|
67
|
+
temperatureTrend?: string | null;
|
|
68
|
+
probabilityOfPrecipitation: {
|
|
69
|
+
unitCode: string;
|
|
70
|
+
value: number | null;
|
|
71
|
+
};
|
|
72
|
+
dewpoint: {
|
|
73
|
+
unitCode: string;
|
|
74
|
+
value: number;
|
|
75
|
+
};
|
|
76
|
+
relativeHumidity: {
|
|
77
|
+
unitCode: string;
|
|
78
|
+
value: number;
|
|
79
|
+
};
|
|
80
|
+
windSpeed: string;
|
|
81
|
+
windDirection: string;
|
|
82
|
+
icon: string;
|
|
83
|
+
shortForecast: string;
|
|
84
|
+
detailedForecast: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Response from forecast endpoints
|
|
88
|
+
*/
|
|
89
|
+
export interface ForecastProperties {
|
|
90
|
+
updated: string;
|
|
91
|
+
units: string;
|
|
92
|
+
forecastGenerator: string;
|
|
93
|
+
generatedAt: string;
|
|
94
|
+
updateTime: string;
|
|
95
|
+
validTimes: string;
|
|
96
|
+
elevation: {
|
|
97
|
+
unitCode: string;
|
|
98
|
+
value: number;
|
|
99
|
+
};
|
|
100
|
+
periods: ForecastPeriod[];
|
|
101
|
+
}
|
|
102
|
+
export type ForecastResponse = NOAAResponse<ForecastProperties>;
|
|
103
|
+
/**
|
|
104
|
+
* Quantitative value with unit
|
|
105
|
+
*/
|
|
106
|
+
export interface QuantitativeValue {
|
|
107
|
+
unitCode: string;
|
|
108
|
+
value: number | null;
|
|
109
|
+
qualityControl?: string;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Observation data from /stations/{id}/observations
|
|
113
|
+
*/
|
|
114
|
+
export interface ObservationProperties {
|
|
115
|
+
'@id': string;
|
|
116
|
+
'@type': string;
|
|
117
|
+
elevation: QuantitativeValue;
|
|
118
|
+
station: string;
|
|
119
|
+
timestamp: string;
|
|
120
|
+
rawMessage?: string;
|
|
121
|
+
textDescription?: string;
|
|
122
|
+
icon?: string;
|
|
123
|
+
presentWeather?: Array<{
|
|
124
|
+
intensity?: string;
|
|
125
|
+
modifier?: string;
|
|
126
|
+
weather: string;
|
|
127
|
+
rawString: string;
|
|
128
|
+
}>;
|
|
129
|
+
temperature: QuantitativeValue;
|
|
130
|
+
dewpoint: QuantitativeValue;
|
|
131
|
+
windDirection: QuantitativeValue;
|
|
132
|
+
windSpeed: QuantitativeValue;
|
|
133
|
+
windGust: QuantitativeValue;
|
|
134
|
+
barometricPressure: QuantitativeValue;
|
|
135
|
+
seaLevelPressure: QuantitativeValue;
|
|
136
|
+
visibility: QuantitativeValue;
|
|
137
|
+
maxTemperatureLast24Hours: QuantitativeValue;
|
|
138
|
+
minTemperatureLast24Hours: QuantitativeValue;
|
|
139
|
+
precipitationLastHour: QuantitativeValue;
|
|
140
|
+
precipitationLast3Hours: QuantitativeValue;
|
|
141
|
+
precipitationLast6Hours: QuantitativeValue;
|
|
142
|
+
relativeHumidity: QuantitativeValue;
|
|
143
|
+
windChill: QuantitativeValue;
|
|
144
|
+
heatIndex: QuantitativeValue;
|
|
145
|
+
cloudLayers?: Array<{
|
|
146
|
+
base: QuantitativeValue;
|
|
147
|
+
amount: string;
|
|
148
|
+
}>;
|
|
149
|
+
}
|
|
150
|
+
export type ObservationResponse = NOAAResponse<ObservationProperties>;
|
|
151
|
+
/**
|
|
152
|
+
* Collection of observations
|
|
153
|
+
*/
|
|
154
|
+
export interface ObservationCollectionResponse {
|
|
155
|
+
'@context'?: unknown;
|
|
156
|
+
type: string;
|
|
157
|
+
features: ObservationResponse[];
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Weather station information
|
|
161
|
+
*/
|
|
162
|
+
export interface StationProperties {
|
|
163
|
+
'@id': string;
|
|
164
|
+
'@type': string;
|
|
165
|
+
elevation: QuantitativeValue;
|
|
166
|
+
stationIdentifier: string;
|
|
167
|
+
name: string;
|
|
168
|
+
timeZone: string;
|
|
169
|
+
forecast?: string;
|
|
170
|
+
county?: string;
|
|
171
|
+
fireWeatherZone?: string;
|
|
172
|
+
}
|
|
173
|
+
export type StationResponse = NOAAResponse<StationProperties>;
|
|
174
|
+
/**
|
|
175
|
+
* Collection of stations
|
|
176
|
+
*/
|
|
177
|
+
export interface StationCollectionResponse {
|
|
178
|
+
'@context'?: unknown;
|
|
179
|
+
type: string;
|
|
180
|
+
features: StationResponse[];
|
|
181
|
+
observationStations?: string[];
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Error response from NOAA API
|
|
185
|
+
*/
|
|
186
|
+
export interface NOAAErrorResponse {
|
|
187
|
+
correlationId: string;
|
|
188
|
+
title: string;
|
|
189
|
+
type: string;
|
|
190
|
+
status: number;
|
|
191
|
+
detail: string;
|
|
192
|
+
instance?: string;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Helper type for converting units
|
|
196
|
+
*/
|
|
197
|
+
export type TemperatureUnit = 'F' | 'C' | 'K';
|
|
198
|
+
export type SpeedUnit = 'mph' | 'kph' | 'mps' | 'knots';
|
|
199
|
+
export type DistanceUnit = 'miles' | 'km' | 'meters' | 'feet';
|
|
200
|
+
export type PressureUnit = 'mb' | 'hPa' | 'inHg' | 'Pa';
|
|
201
|
+
//# sourceMappingURL=noaa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noaa.d.ts","sourceRoot":"","sources":["../../src/types/noaa.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noaa.js","sourceRoot":"","sources":["../../src/types/noaa.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript type definitions for Open-Meteo Historical Weather API
|
|
3
|
+
* API Documentation: https://open-meteo.com/en/docs/historical-weather-api
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Hourly weather variables available from Open-Meteo
|
|
7
|
+
*/
|
|
8
|
+
export interface OpenMeteoHourlyData {
|
|
9
|
+
time: string[];
|
|
10
|
+
temperature_2m?: number[];
|
|
11
|
+
relative_humidity_2m?: number[];
|
|
12
|
+
dewpoint_2m?: number[];
|
|
13
|
+
apparent_temperature?: number[];
|
|
14
|
+
precipitation?: number[];
|
|
15
|
+
rain?: number[];
|
|
16
|
+
snowfall?: number[];
|
|
17
|
+
snow_depth?: number[];
|
|
18
|
+
weather_code?: number[];
|
|
19
|
+
pressure_msl?: number[];
|
|
20
|
+
surface_pressure?: number[];
|
|
21
|
+
cloud_cover?: number[];
|
|
22
|
+
wind_speed_10m?: number[];
|
|
23
|
+
wind_direction_10m?: number[];
|
|
24
|
+
wind_gusts_10m?: number[];
|
|
25
|
+
soil_temperature_0_to_7cm?: number[];
|
|
26
|
+
soil_moisture_0_to_7cm?: number[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Daily weather variables available from Open-Meteo
|
|
30
|
+
*/
|
|
31
|
+
export interface OpenMeteoDailyData {
|
|
32
|
+
time: string[];
|
|
33
|
+
temperature_2m_max?: number[];
|
|
34
|
+
temperature_2m_min?: number[];
|
|
35
|
+
temperature_2m_mean?: number[];
|
|
36
|
+
apparent_temperature_max?: number[];
|
|
37
|
+
apparent_temperature_min?: number[];
|
|
38
|
+
apparent_temperature_mean?: number[];
|
|
39
|
+
precipitation_sum?: number[];
|
|
40
|
+
rain_sum?: number[];
|
|
41
|
+
snowfall_sum?: number[];
|
|
42
|
+
precipitation_hours?: number[];
|
|
43
|
+
weather_code?: number[];
|
|
44
|
+
sunrise?: string[];
|
|
45
|
+
sunset?: string[];
|
|
46
|
+
sunshine_duration?: number[];
|
|
47
|
+
wind_speed_10m_max?: number[];
|
|
48
|
+
wind_gusts_10m_max?: number[];
|
|
49
|
+
wind_direction_10m_dominant?: number[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Units used in the API response
|
|
53
|
+
*/
|
|
54
|
+
export interface OpenMeteoHourlyUnits {
|
|
55
|
+
time?: string;
|
|
56
|
+
temperature_2m?: string;
|
|
57
|
+
relative_humidity_2m?: string;
|
|
58
|
+
dewpoint_2m?: string;
|
|
59
|
+
apparent_temperature?: string;
|
|
60
|
+
precipitation?: string;
|
|
61
|
+
rain?: string;
|
|
62
|
+
snowfall?: string;
|
|
63
|
+
snow_depth?: string;
|
|
64
|
+
weather_code?: string;
|
|
65
|
+
pressure_msl?: string;
|
|
66
|
+
surface_pressure?: string;
|
|
67
|
+
cloud_cover?: string;
|
|
68
|
+
wind_speed_10m?: string;
|
|
69
|
+
wind_direction_10m?: string;
|
|
70
|
+
wind_gusts_10m?: string;
|
|
71
|
+
soil_temperature_0_to_7cm?: string;
|
|
72
|
+
soil_moisture_0_to_7cm?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface OpenMeteoDailyUnits {
|
|
75
|
+
time?: string;
|
|
76
|
+
temperature_2m_max?: string;
|
|
77
|
+
temperature_2m_min?: string;
|
|
78
|
+
temperature_2m_mean?: string;
|
|
79
|
+
apparent_temperature_max?: string;
|
|
80
|
+
apparent_temperature_min?: string;
|
|
81
|
+
apparent_temperature_mean?: string;
|
|
82
|
+
precipitation_sum?: string;
|
|
83
|
+
rain_sum?: string;
|
|
84
|
+
snowfall_sum?: string;
|
|
85
|
+
precipitation_hours?: string;
|
|
86
|
+
weather_code?: string;
|
|
87
|
+
sunrise?: string;
|
|
88
|
+
sunset?: string;
|
|
89
|
+
sunshine_duration?: string;
|
|
90
|
+
wind_speed_10m_max?: string;
|
|
91
|
+
wind_gusts_10m_max?: string;
|
|
92
|
+
wind_direction_10m_dominant?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Complete API response from Open-Meteo Historical Weather API
|
|
96
|
+
*/
|
|
97
|
+
export interface OpenMeteoHistoricalResponse {
|
|
98
|
+
latitude: number;
|
|
99
|
+
longitude: number;
|
|
100
|
+
generationtime_ms: number;
|
|
101
|
+
utc_offset_seconds: number;
|
|
102
|
+
timezone: string;
|
|
103
|
+
timezone_abbreviation: string;
|
|
104
|
+
elevation: number;
|
|
105
|
+
hourly_units?: OpenMeteoHourlyUnits;
|
|
106
|
+
hourly?: OpenMeteoHourlyData;
|
|
107
|
+
daily_units?: OpenMeteoDailyUnits;
|
|
108
|
+
daily?: OpenMeteoDailyData;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Error response from Open-Meteo API
|
|
112
|
+
*/
|
|
113
|
+
export interface OpenMeteoErrorResponse {
|
|
114
|
+
error: boolean;
|
|
115
|
+
reason: string;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=openmeteo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openmeteo.d.ts","sourceRoot":"","sources":["../../src/types/openmeteo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openmeteo.js","sourceRoot":"","sources":["../../src/types/openmeteo.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for unit conversion and formatting
|
|
3
|
+
*/
|
|
4
|
+
import { QuantitativeValue } from '../types/noaa.js';
|
|
5
|
+
/**
|
|
6
|
+
* Extract numeric value from QuantitativeValue, handling null values
|
|
7
|
+
*/
|
|
8
|
+
export declare function extractValue(qv: QuantitativeValue | undefined): number | null;
|
|
9
|
+
/**
|
|
10
|
+
* Convert Celsius to Fahrenheit
|
|
11
|
+
*/
|
|
12
|
+
export declare function celsiusToFahrenheit(celsius: number): number;
|
|
13
|
+
/**
|
|
14
|
+
* Convert meters per second to miles per hour
|
|
15
|
+
*/
|
|
16
|
+
export declare function mpsToMph(mps: number): number;
|
|
17
|
+
/**
|
|
18
|
+
* Convert kilometers per hour to miles per hour
|
|
19
|
+
*/
|
|
20
|
+
export declare function kphToMph(kph: number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Convert meters to miles
|
|
23
|
+
*/
|
|
24
|
+
export declare function metersToMiles(meters: number): number;
|
|
25
|
+
/**
|
|
26
|
+
* Convert meters to feet
|
|
27
|
+
*/
|
|
28
|
+
export declare function metersToFeet(meters: number): number;
|
|
29
|
+
/**
|
|
30
|
+
* Convert Pascals to inches of mercury
|
|
31
|
+
*/
|
|
32
|
+
export declare function pascalsToInHg(pa: number): number;
|
|
33
|
+
/**
|
|
34
|
+
* Convert Pascals to millibars/hectopascals
|
|
35
|
+
*/
|
|
36
|
+
export declare function pascalsToMb(pa: number): number;
|
|
37
|
+
/**
|
|
38
|
+
* Format temperature with unit
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatTemperature(qv: QuantitativeValue | undefined, preferFahrenheit?: boolean): string;
|
|
41
|
+
/**
|
|
42
|
+
* Format wind speed with unit
|
|
43
|
+
*/
|
|
44
|
+
export declare function formatWindSpeed(qv: QuantitativeValue | undefined): string;
|
|
45
|
+
/**
|
|
46
|
+
* Format visibility with unit
|
|
47
|
+
*/
|
|
48
|
+
export declare function formatVisibility(qv: QuantitativeValue | undefined): string;
|
|
49
|
+
/**
|
|
50
|
+
* Format pressure with unit
|
|
51
|
+
*/
|
|
52
|
+
export declare function formatPressure(qv: QuantitativeValue | undefined): string;
|
|
53
|
+
/**
|
|
54
|
+
* Format a percentage value
|
|
55
|
+
*/
|
|
56
|
+
export declare function formatPercentage(qv: QuantitativeValue | undefined): string;
|
|
57
|
+
/**
|
|
58
|
+
* Format wind direction from degrees to cardinal direction
|
|
59
|
+
*/
|
|
60
|
+
export declare function formatWindDirection(qv: QuantitativeValue | undefined): string;
|
|
61
|
+
/**
|
|
62
|
+
* Format date/time in readable format
|
|
63
|
+
*/
|
|
64
|
+
export declare function formatDateTime(isoString: string): string;
|
|
65
|
+
/**
|
|
66
|
+
* Format date only
|
|
67
|
+
*/
|
|
68
|
+
export declare function formatDate(isoString: string): string;
|
|
69
|
+
//# sourceMappingURL=units.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/utils/units.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK7E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,GAAG,SAAS,EAAE,gBAAgB,UAAO,GAAG,MAAM,CAcpG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAazE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAO1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAOxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAK1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAQ7E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQpD"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for unit conversion and formatting
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Extract numeric value from QuantitativeValue, handling null values
|
|
6
|
+
*/
|
|
7
|
+
export function extractValue(qv) {
|
|
8
|
+
if (!qv || qv.value === null || qv.value === undefined) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return qv.value;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Convert Celsius to Fahrenheit
|
|
15
|
+
*/
|
|
16
|
+
export function celsiusToFahrenheit(celsius) {
|
|
17
|
+
return (celsius * 9 / 5) + 32;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Convert meters per second to miles per hour
|
|
21
|
+
*/
|
|
22
|
+
export function mpsToMph(mps) {
|
|
23
|
+
return mps * 2.23694;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Convert kilometers per hour to miles per hour
|
|
27
|
+
*/
|
|
28
|
+
export function kphToMph(kph) {
|
|
29
|
+
return kph * 0.621371;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Convert meters to miles
|
|
33
|
+
*/
|
|
34
|
+
export function metersToMiles(meters) {
|
|
35
|
+
return meters * 0.000621371;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Convert meters to feet
|
|
39
|
+
*/
|
|
40
|
+
export function metersToFeet(meters) {
|
|
41
|
+
return meters * 3.28084;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Convert Pascals to inches of mercury
|
|
45
|
+
*/
|
|
46
|
+
export function pascalsToInHg(pa) {
|
|
47
|
+
return pa * 0.0002953;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Convert Pascals to millibars/hectopascals
|
|
51
|
+
*/
|
|
52
|
+
export function pascalsToMb(pa) {
|
|
53
|
+
return pa / 100;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Format temperature with unit
|
|
57
|
+
*/
|
|
58
|
+
export function formatTemperature(qv, preferFahrenheit = true) {
|
|
59
|
+
const value = extractValue(qv);
|
|
60
|
+
if (value === null)
|
|
61
|
+
return 'N/A';
|
|
62
|
+
// NOAA returns temperature in Celsius in unitCode format "wmoUnit:degC"
|
|
63
|
+
if (qv?.unitCode?.includes('degC')) {
|
|
64
|
+
if (preferFahrenheit) {
|
|
65
|
+
return `${Math.round(celsiusToFahrenheit(value))}°F`;
|
|
66
|
+
}
|
|
67
|
+
return `${Math.round(value)}°C`;
|
|
68
|
+
}
|
|
69
|
+
// If already in Fahrenheit
|
|
70
|
+
return `${Math.round(value)}°F`;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Format wind speed with unit
|
|
74
|
+
*/
|
|
75
|
+
export function formatWindSpeed(qv) {
|
|
76
|
+
const value = extractValue(qv);
|
|
77
|
+
if (value === null)
|
|
78
|
+
return 'Calm';
|
|
79
|
+
// Convert to mph if needed
|
|
80
|
+
let mph = value;
|
|
81
|
+
if (qv?.unitCode?.includes('km_h')) {
|
|
82
|
+
mph = kphToMph(value);
|
|
83
|
+
}
|
|
84
|
+
else if (qv?.unitCode?.includes('m_s')) {
|
|
85
|
+
mph = mpsToMph(value);
|
|
86
|
+
}
|
|
87
|
+
return `${Math.round(mph)} mph`;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Format visibility with unit
|
|
91
|
+
*/
|
|
92
|
+
export function formatVisibility(qv) {
|
|
93
|
+
const value = extractValue(qv);
|
|
94
|
+
if (value === null)
|
|
95
|
+
return 'N/A';
|
|
96
|
+
// Convert meters to miles
|
|
97
|
+
const miles = metersToMiles(value);
|
|
98
|
+
return `${miles.toFixed(1)} miles`;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Format pressure with unit
|
|
102
|
+
*/
|
|
103
|
+
export function formatPressure(qv) {
|
|
104
|
+
const value = extractValue(qv);
|
|
105
|
+
if (value === null)
|
|
106
|
+
return 'N/A';
|
|
107
|
+
// Convert Pascals to inHg
|
|
108
|
+
const inHg = pascalsToInHg(value);
|
|
109
|
+
return `${inHg.toFixed(2)} inHg`;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Format a percentage value
|
|
113
|
+
*/
|
|
114
|
+
export function formatPercentage(qv) {
|
|
115
|
+
const value = extractValue(qv);
|
|
116
|
+
if (value === null)
|
|
117
|
+
return 'N/A';
|
|
118
|
+
return `${Math.round(value)}%`;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Format wind direction from degrees to cardinal direction
|
|
122
|
+
*/
|
|
123
|
+
export function formatWindDirection(qv) {
|
|
124
|
+
const degrees = extractValue(qv);
|
|
125
|
+
if (degrees === null)
|
|
126
|
+
return 'Variable';
|
|
127
|
+
const directions = ['N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE',
|
|
128
|
+
'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW'];
|
|
129
|
+
const index = Math.round(degrees / 22.5) % 16;
|
|
130
|
+
return directions[index];
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Format date/time in readable format
|
|
134
|
+
*/
|
|
135
|
+
export function formatDateTime(isoString) {
|
|
136
|
+
const date = new Date(isoString);
|
|
137
|
+
return date.toLocaleString('en-US', {
|
|
138
|
+
weekday: 'short',
|
|
139
|
+
month: 'short',
|
|
140
|
+
day: 'numeric',
|
|
141
|
+
hour: 'numeric',
|
|
142
|
+
minute: '2-digit',
|
|
143
|
+
timeZoneName: 'short'
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Format date only
|
|
148
|
+
*/
|
|
149
|
+
export function formatDate(isoString) {
|
|
150
|
+
const date = new Date(isoString);
|
|
151
|
+
return date.toLocaleDateString('en-US', {
|
|
152
|
+
weekday: 'long',
|
|
153
|
+
month: 'long',
|
|
154
|
+
day: 'numeric',
|
|
155
|
+
year: 'numeric'
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=units.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/utils/units.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dangahagan/weather-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MCP (Model Context Protocol) server providing weather data from NOAA and Open-Meteo APIs. Supports forecasts, current conditions, and historical weather data (1940-present) with no API keys required.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"weather-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=18.0.0"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"dev": "tsx src/index.ts",
|
|
21
|
+
"start": "node dist/index.js",
|
|
22
|
+
"prepublishOnly": "npm run build",
|
|
23
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"mcp",
|
|
27
|
+
"mcp-server",
|
|
28
|
+
"model-context-protocol",
|
|
29
|
+
"weather",
|
|
30
|
+
"weather-api",
|
|
31
|
+
"noaa",
|
|
32
|
+
"open-meteo",
|
|
33
|
+
"forecast",
|
|
34
|
+
"climate",
|
|
35
|
+
"historical-weather",
|
|
36
|
+
"claude",
|
|
37
|
+
"claude-code",
|
|
38
|
+
"ai",
|
|
39
|
+
"llm"
|
|
40
|
+
],
|
|
41
|
+
"author": "Dan Gahagan",
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"homepage": "https://github.com/dgahagan/weather-mcp#readme",
|
|
44
|
+
"repository": {
|
|
45
|
+
"type": "git",
|
|
46
|
+
"url": "git+https://github.com/dgahagan/weather-mcp.git"
|
|
47
|
+
},
|
|
48
|
+
"bugs": {
|
|
49
|
+
"url": "https://github.com/dgahagan/weather-mcp/issues"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"@modelcontextprotocol/sdk": "^1.21.0",
|
|
53
|
+
"axios": "^1.13.1",
|
|
54
|
+
"dotenv": "^17.2.3"
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@types/node": "^24.10.0",
|
|
58
|
+
"tsx": "^4.20.6",
|
|
59
|
+
"typescript": "^5.9.3"
|
|
60
|
+
}
|
|
61
|
+
}
|