@cyanheads/aviation-weather-mcp-server 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/AGENTS.md +379 -0
  2. package/CLAUDE.md +379 -0
  3. package/Dockerfile +99 -0
  4. package/LICENSE +201 -0
  5. package/README.md +311 -0
  6. package/changelog/0.1.x/0.1.1.md +23 -0
  7. package/changelog/template.md +127 -0
  8. package/dist/config/server-config.d.ts +14 -0
  9. package/dist/config/server-config.d.ts.map +1 -0
  10. package/dist/config/server-config.js +31 -0
  11. package/dist/config/server-config.js.map +1 -0
  12. package/dist/index.d.ts +7 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +31 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/mcp-server/prompts/definitions/aviation-preflight-brief.prompt.d.ts +12 -0
  17. package/dist/mcp-server/prompts/definitions/aviation-preflight-brief.prompt.d.ts.map +1 -0
  18. package/dist/mcp-server/prompts/definitions/aviation-preflight-brief.prompt.js +65 -0
  19. package/dist/mcp-server/prompts/definitions/aviation-preflight-brief.prompt.js.map +1 -0
  20. package/dist/mcp-server/tools/definitions/aviation-find-stations.tool.d.ts +40 -0
  21. package/dist/mcp-server/tools/definitions/aviation-find-stations.tool.d.ts.map +1 -0
  22. package/dist/mcp-server/tools/definitions/aviation-find-stations.tool.js +130 -0
  23. package/dist/mcp-server/tools/definitions/aviation-find-stations.tool.js.map +1 -0
  24. package/dist/mcp-server/tools/definitions/aviation-get-advisories.tool.d.ts +49 -0
  25. package/dist/mcp-server/tools/definitions/aviation-get-advisories.tool.d.ts.map +1 -0
  26. package/dist/mcp-server/tools/definitions/aviation-get-advisories.tool.js +133 -0
  27. package/dist/mcp-server/tools/definitions/aviation-get-advisories.tool.js.map +1 -0
  28. package/dist/mcp-server/tools/definitions/aviation-get-metar.tool.d.ts +42 -0
  29. package/dist/mcp-server/tools/definitions/aviation-get-metar.tool.d.ts.map +1 -0
  30. package/dist/mcp-server/tools/definitions/aviation-get-metar.tool.js +129 -0
  31. package/dist/mcp-server/tools/definitions/aviation-get-metar.tool.js.map +1 -0
  32. package/dist/mcp-server/tools/definitions/aviation-get-pireps.tool.d.ts +60 -0
  33. package/dist/mcp-server/tools/definitions/aviation-get-pireps.tool.d.ts.map +1 -0
  34. package/dist/mcp-server/tools/definitions/aviation-get-pireps.tool.js +238 -0
  35. package/dist/mcp-server/tools/definitions/aviation-get-pireps.tool.js.map +1 -0
  36. package/dist/mcp-server/tools/definitions/aviation-get-taf.tool.d.ts +42 -0
  37. package/dist/mcp-server/tools/definitions/aviation-get-taf.tool.d.ts.map +1 -0
  38. package/dist/mcp-server/tools/definitions/aviation-get-taf.tool.js +140 -0
  39. package/dist/mcp-server/tools/definitions/aviation-get-taf.tool.js.map +1 -0
  40. package/dist/services/aviation-weather/aviation-weather-service.d.ts +60 -0
  41. package/dist/services/aviation-weather/aviation-weather-service.d.ts.map +1 -0
  42. package/dist/services/aviation-weather/aviation-weather-service.js +512 -0
  43. package/dist/services/aviation-weather/aviation-weather-service.js.map +1 -0
  44. package/dist/services/aviation-weather/types.d.ts +283 -0
  45. package/dist/services/aviation-weather/types.d.ts.map +1 -0
  46. package/dist/services/aviation-weather/types.js +7 -0
  47. package/dist/services/aviation-weather/types.js.map +1 -0
  48. package/package.json +107 -0
  49. package/server.json +127 -0
@@ -0,0 +1,283 @@
1
+ /**
2
+ * @fileoverview Raw API response types and normalized domain types for the AWC Data API.
3
+ * Field names match confirmed live-probe field names from aviationweather.gov/api/data.
4
+ * @module services/aviation-weather/types
5
+ */
6
+ /** Raw METAR record from the AWC API (format=json). */
7
+ export interface RawMetar {
8
+ altim: number | null;
9
+ clouds: RawCloudLayer[] | null;
10
+ cover: string | null;
11
+ dewp: number | null;
12
+ elev: number | null;
13
+ fltCat: string | null;
14
+ icaoId: string;
15
+ lat: number;
16
+ lon: number;
17
+ metarType: string | null;
18
+ name: string | null;
19
+ obsTime: number;
20
+ qcField: number | null;
21
+ rawOb: string;
22
+ receiptTime: string;
23
+ reportTime: string;
24
+ slp: number | null;
25
+ temp: number | null;
26
+ visib: string | number | null;
27
+ wdir: number | string | null;
28
+ wgst: number | null;
29
+ wspd: number | null;
30
+ }
31
+ export interface RawCloudLayer {
32
+ base: number | null;
33
+ cover: string;
34
+ }
35
+ /** Raw TAF forecast period from the AWC API. */
36
+ export interface RawTafForecastPeriod {
37
+ altim?: number | null;
38
+ clouds: RawTafCloudLayer[] | null;
39
+ fcstChange: string | null;
40
+ icgTurb?: string | null;
41
+ notDecoded?: string | null;
42
+ probability: number | null;
43
+ temp?: number | null;
44
+ timeBec?: number | null;
45
+ timeFrom: number;
46
+ timeTo: number;
47
+ vertVis?: number | null;
48
+ visib: string | number | null;
49
+ wdir: number | string | null;
50
+ wgst: number | null;
51
+ wshearDir?: number | null;
52
+ wshearHgt?: number | null;
53
+ wshearSpd?: number | null;
54
+ wspd: number | null;
55
+ wxString: string | null;
56
+ }
57
+ export interface RawTafCloudLayer {
58
+ base: number | null;
59
+ cover: string;
60
+ type: string | null;
61
+ }
62
+ /** Raw TAF record from the AWC API. */
63
+ export interface RawTaf {
64
+ bulletinTime?: string | null;
65
+ dbPopTime?: string | null;
66
+ elev: number | null;
67
+ fcsts: RawTafForecastPeriod[];
68
+ icaoId: string;
69
+ issueTime: string;
70
+ lat: number;
71
+ lon: number;
72
+ mostRecent?: boolean | null;
73
+ name: string | null;
74
+ prior?: number | null;
75
+ rawTAF: string;
76
+ remarks?: string | null;
77
+ validTimeFrom: number;
78
+ validTimeTo: number;
79
+ }
80
+ /** Raw PIREP record from the AWC API. */
81
+ export interface RawPirep {
82
+ acType: string | null;
83
+ brkAction?: string | null;
84
+ clouds: RawPirepCloudLayer[] | null;
85
+ fltLvl: number | null;
86
+ fltLvlType?: string | null;
87
+ icaoId: string;
88
+ icgBas1?: number | null;
89
+ icgBas2?: number | null;
90
+ icgInt1?: string | null;
91
+ icgInt2?: string | null;
92
+ icgTop1?: number | null;
93
+ icgTop2?: number | null;
94
+ icgType1?: string | null;
95
+ icgType2?: string | null;
96
+ lat: number;
97
+ lon: number;
98
+ obsTime: number;
99
+ pirepType: string | null;
100
+ qcField?: number | null;
101
+ rawOb: string;
102
+ receiptTime: string;
103
+ tbBas1?: number | null;
104
+ tbBas2?: number | null;
105
+ tbFreq1?: string | null;
106
+ tbFreq2?: string | null;
107
+ tbInt1?: string | null;
108
+ tbInt2?: string | null;
109
+ tbTop1?: number | null;
110
+ tbTop2?: number | null;
111
+ tbType1?: string | null;
112
+ tbType2?: string | null;
113
+ temp?: number | null;
114
+ vertGust?: number | null;
115
+ visib: number | string | null;
116
+ wdir?: number | null;
117
+ wspd?: number | null;
118
+ wxString: string | null;
119
+ }
120
+ export interface RawPirepCloudLayer {
121
+ base: number | null;
122
+ cover: string;
123
+ top: number | null;
124
+ }
125
+ /** Raw AIRSIGMET record from the AWC API. */
126
+ export interface RawAirSigmet {
127
+ airSigmetType: string | null;
128
+ alphaChar?: string | null;
129
+ altitudeHi1: number | null;
130
+ altitudeHi2?: number | null;
131
+ altitudeLow1: number | null;
132
+ altitudeLow2?: number | null;
133
+ coords: {
134
+ lat: number;
135
+ lon: number;
136
+ }[];
137
+ creationTime?: string | null;
138
+ hazard: string | null;
139
+ icaoId: string;
140
+ movementDir: number | null;
141
+ movementSpd: number | null;
142
+ postProcessFlag?: string | null;
143
+ rawAirSigmet: string;
144
+ receiptTime?: string | null;
145
+ seriesId: string;
146
+ severity: number | null;
147
+ validTimeFrom: number;
148
+ validTimeTo: number;
149
+ }
150
+ /** Raw station info record from the AWC API. */
151
+ export interface RawStationInfo {
152
+ country: string | null;
153
+ elev: number | null;
154
+ faaId: string | null;
155
+ iataId: string | null;
156
+ icaoId: string | null;
157
+ id: string;
158
+ lat: number;
159
+ lon: number;
160
+ priority?: number | null;
161
+ site: string;
162
+ siteType: string[];
163
+ state: string | null;
164
+ wmoId?: string | null;
165
+ }
166
+ export interface NormalizedCloudLayer {
167
+ base_ft: number;
168
+ cover: string;
169
+ }
170
+ export interface NormalizedMetar {
171
+ altimeter_inhg: number;
172
+ ceiling_ft: number | null;
173
+ clouds: NormalizedCloudLayer[];
174
+ dewpoint_c: number;
175
+ elevation_ft: number;
176
+ flight_category: string;
177
+ lat: number;
178
+ lon: number;
179
+ metar_type: string;
180
+ name: string;
181
+ observed_at: string;
182
+ raw_metar: string;
183
+ station_id: string;
184
+ temp_c: number;
185
+ visibility_sm: string;
186
+ wind: {
187
+ direction_deg: number | null;
188
+ speed_kt: number;
189
+ gust_kt: number | null;
190
+ };
191
+ }
192
+ export interface NormalizedTafPeriod {
193
+ change_type: string | null;
194
+ clouds: {
195
+ cover: string;
196
+ base_ft: number;
197
+ type: string | null;
198
+ }[];
199
+ from: string;
200
+ probability: number | null;
201
+ to: string;
202
+ visibility_sm: string | null;
203
+ weather: string | null;
204
+ wind: {
205
+ direction_deg: number | null;
206
+ speed_kt: number;
207
+ gust_kt: number | null;
208
+ };
209
+ }
210
+ export interface NormalizedTaf {
211
+ forecast_periods: NormalizedTafPeriod[];
212
+ issued_at: string;
213
+ name: string;
214
+ raw_taf: string;
215
+ station_id: string;
216
+ valid_from: string;
217
+ valid_to: string;
218
+ }
219
+ export interface NormalizedTurbulenceLayer {
220
+ base_ft: number | null;
221
+ frequency: string | null;
222
+ intensity: string;
223
+ top_ft: number | null;
224
+ type: string | null;
225
+ }
226
+ export interface NormalizedIcingLayer {
227
+ base_ft: number | null;
228
+ intensity: string;
229
+ top_ft: number | null;
230
+ type: string | null;
231
+ }
232
+ export interface NormalizedPirepCloudLayer {
233
+ base_ft: number;
234
+ cover: string;
235
+ top_ft: number;
236
+ }
237
+ export interface NormalizedPirep {
238
+ aircraft_type: string | null;
239
+ altitude_ft: number;
240
+ clouds: NormalizedPirepCloudLayer[] | null;
241
+ icing: NormalizedIcingLayer[];
242
+ lat: number;
243
+ lon: number;
244
+ observed_at: string;
245
+ pirep_type: string;
246
+ raw_pirep: string;
247
+ remarks: string | null;
248
+ turbulence: NormalizedTurbulenceLayer[];
249
+ visibility_sm: number | null;
250
+ }
251
+ export interface NormalizedAdvisory {
252
+ advisory_type: string;
253
+ altitude_high_ft: number | null;
254
+ altitude_low_ft: number | null;
255
+ hazard: string;
256
+ issued_by: string;
257
+ movement: {
258
+ direction_deg: number | null;
259
+ speed_kt: number | null;
260
+ } | null;
261
+ polygon: {
262
+ lat: number;
263
+ lon: number;
264
+ }[];
265
+ raw_text: string;
266
+ series_id: string;
267
+ severity: number | null;
268
+ valid_from: string;
269
+ valid_to: string;
270
+ }
271
+ export interface NormalizedStation {
272
+ country: string;
273
+ data_types: string[];
274
+ elevation_ft: number;
275
+ faa_id: string | null;
276
+ iata_id: string | null;
277
+ icao_id: string | null;
278
+ lat: number;
279
+ lon: number;
280
+ name: string;
281
+ state: string;
282
+ }
283
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/aviation-weather/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Raw API response types and normalized domain types for the AWC Data API.
3
+ * Field names match confirmed live-probe field names from aviationweather.gov/api/data.
4
+ * @module services/aviation-weather/types
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/aviation-weather/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
package/package.json ADDED
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "@cyanheads/aviation-weather-mcp-server",
3
+ "version": "0.1.1",
4
+ "mcpName": "io.github.cyanheads/aviation-weather-mcp-server",
5
+ "description": "Fetch METARs, TAFs, PIREPs, and SIGMETs/AIRMETs from the NWS Aviation Weather Center via MCP. STDIO or Streamable HTTP.",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "bin": {
10
+ "aviation-weather-mcp-server": "dist/index.js"
11
+ },
12
+ "files": [
13
+ "changelog/",
14
+ "dist/",
15
+ "README.md",
16
+ "LICENSE",
17
+ "CLAUDE.md",
18
+ "AGENTS.md",
19
+ "Dockerfile",
20
+ "server.json"
21
+ ],
22
+ "scripts": {
23
+ "build": "bun run scripts/build.ts",
24
+ "rebuild": "bun run scripts/clean.ts && bun run scripts/build.ts",
25
+ "clean": "bun run scripts/clean.ts",
26
+ "devcheck": "bun run scripts/devcheck.ts",
27
+ "audit:refresh": "rm -f bun.lock && bun install && bun audit",
28
+ "tree": "bun run scripts/tree.ts",
29
+ "list-skills": "bun run scripts/list-skills.ts",
30
+ "format": "biome check --write .",
31
+ "format:unsafe": "biome check --write --unsafe .",
32
+ "lint:mcp": "bun run scripts/lint-mcp.ts",
33
+ "lint:packaging": "bun run scripts/lint-packaging.ts",
34
+ "bundle": "npm run build && npx -y @anthropic-ai/mcpb pack . dist/aviation-weather-mcp-server.mcpb",
35
+ "changelog:build": "bun run scripts/build-changelog.ts",
36
+ "changelog:check": "bun run scripts/build-changelog.ts --check",
37
+ "release:github": "bun run scripts/release-github.ts",
38
+ "publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish",
39
+ "test": "vitest run",
40
+ "start": "node dist/index.js",
41
+ "start:stdio": "MCP_TRANSPORT_TYPE=stdio node dist/index.js",
42
+ "start:http": "MCP_TRANSPORT_TYPE=http node dist/index.js"
43
+ },
44
+ "keywords": [
45
+ "aviation",
46
+ "aviation-weather",
47
+ "metar",
48
+ "taf",
49
+ "pirep",
50
+ "sigmet",
51
+ "airmet",
52
+ "aviation-weather-center",
53
+ "awc",
54
+ "flight-weather",
55
+ "preflight",
56
+ "mcp",
57
+ "mcp-server",
58
+ "model-context-protocol",
59
+ "typescript",
60
+ "bun",
61
+ "stdio",
62
+ "streamable-http",
63
+ "ai-agent"
64
+ ],
65
+ "repository": {
66
+ "type": "git",
67
+ "url": "git+https://github.com/cyanheads/aviation-weather-mcp-server.git"
68
+ },
69
+ "bugs": {
70
+ "url": "https://github.com/cyanheads/aviation-weather-mcp-server/issues"
71
+ },
72
+ "homepage": "https://github.com/cyanheads/aviation-weather-mcp-server#readme",
73
+ "author": "cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/aviation-weather-mcp-server#readme)",
74
+ "funding": [
75
+ {
76
+ "type": "github",
77
+ "url": "https://github.com/sponsors/cyanheads"
78
+ },
79
+ {
80
+ "type": "buy_me_a_coffee",
81
+ "url": "https://www.buymeacoffee.com/cyanheads"
82
+ }
83
+ ],
84
+ "license": "Apache-2.0",
85
+ "packageManager": "bun@1.3.11",
86
+ "engines": {
87
+ "bun": ">=1.3.0",
88
+ "node": ">=24.0.0"
89
+ },
90
+ "publishConfig": {
91
+ "access": "public"
92
+ },
93
+ "dependencies": {
94
+ "@cyanheads/mcp-ts-core": "^0.9.21",
95
+ "pino-pretty": "^13.1.3",
96
+ "zod": "^4.4.3"
97
+ },
98
+ "devDependencies": {
99
+ "@biomejs/biome": "^2.4.16",
100
+ "@types/node": "^25.9.1",
101
+ "depcheck": "^1.4.7",
102
+ "ignore": "^7.0.5",
103
+ "tsc-alias": "^1.8.17",
104
+ "typescript": "^6.0.3",
105
+ "vitest": "^4.1.8"
106
+ }
107
+ }
package/server.json ADDED
@@ -0,0 +1,127 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.cyanheads/aviation-weather-mcp-server",
4
+ "description": "Fetch METARs, TAFs, PIREPs, and SIGMETs/AIRMETs from the NWS Aviation Weather Center.",
5
+ "repository": {
6
+ "url": "https://github.com/cyanheads/aviation-weather-mcp-server",
7
+ "source": "github"
8
+ },
9
+ "version": "0.1.1",
10
+ "packages": [
11
+ {
12
+ "registryType": "npm",
13
+ "registryBaseUrl": "https://registry.npmjs.org",
14
+ "identifier": "@cyanheads/aviation-weather-mcp-server",
15
+ "runtimeHint": "bun",
16
+ "version": "0.1.1",
17
+ "packageArguments": [
18
+ {
19
+ "type": "positional",
20
+ "value": "run"
21
+ },
22
+ {
23
+ "type": "positional",
24
+ "value": "start:stdio"
25
+ }
26
+ ],
27
+ "environmentVariables": [
28
+ {
29
+ "name": "MCP_LOG_LEVEL",
30
+ "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
31
+ "format": "string",
32
+ "isRequired": false,
33
+ "default": "info"
34
+ },
35
+ {
36
+ "name": "AWC_BASE_URL",
37
+ "description": "Base URL for the AWC Data API. Useful for testing against a mock or staging instance.",
38
+ "format": "string",
39
+ "isRequired": false,
40
+ "default": "https://aviationweather.gov/api/data"
41
+ },
42
+ {
43
+ "name": "AWC_TIMEOUT_MS",
44
+ "description": "Per-request timeout in milliseconds (1000–60000).",
45
+ "format": "string",
46
+ "isRequired": false,
47
+ "default": "10000"
48
+ }
49
+ ],
50
+ "transport": {
51
+ "type": "stdio"
52
+ }
53
+ },
54
+ {
55
+ "registryType": "npm",
56
+ "registryBaseUrl": "https://registry.npmjs.org",
57
+ "identifier": "@cyanheads/aviation-weather-mcp-server",
58
+ "runtimeHint": "bun",
59
+ "version": "0.1.1",
60
+ "packageArguments": [
61
+ {
62
+ "type": "positional",
63
+ "value": "run"
64
+ },
65
+ {
66
+ "type": "positional",
67
+ "value": "start:http"
68
+ }
69
+ ],
70
+ "environmentVariables": [
71
+ {
72
+ "name": "MCP_HTTP_HOST",
73
+ "description": "The hostname for the HTTP server.",
74
+ "format": "string",
75
+ "isRequired": false,
76
+ "default": "127.0.0.1"
77
+ },
78
+ {
79
+ "name": "MCP_HTTP_PORT",
80
+ "description": "The port to run the HTTP server on.",
81
+ "format": "string",
82
+ "isRequired": false,
83
+ "default": "3010"
84
+ },
85
+ {
86
+ "name": "MCP_HTTP_ENDPOINT_PATH",
87
+ "description": "The endpoint path for the MCP server.",
88
+ "format": "string",
89
+ "isRequired": false,
90
+ "default": "/mcp"
91
+ },
92
+ {
93
+ "name": "MCP_AUTH_MODE",
94
+ "description": "Authentication mode to use: 'none', 'jwt', or 'oauth'.",
95
+ "format": "string",
96
+ "isRequired": false,
97
+ "default": "none"
98
+ },
99
+ {
100
+ "name": "MCP_LOG_LEVEL",
101
+ "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
102
+ "format": "string",
103
+ "isRequired": false,
104
+ "default": "info"
105
+ },
106
+ {
107
+ "name": "AWC_BASE_URL",
108
+ "description": "Base URL for the AWC Data API. Useful for testing against a mock or staging instance.",
109
+ "format": "string",
110
+ "isRequired": false,
111
+ "default": "https://aviationweather.gov/api/data"
112
+ },
113
+ {
114
+ "name": "AWC_TIMEOUT_MS",
115
+ "description": "Per-request timeout in milliseconds (1000–60000).",
116
+ "format": "string",
117
+ "isRequired": false,
118
+ "default": "10000"
119
+ }
120
+ ],
121
+ "transport": {
122
+ "type": "streamable-http",
123
+ "url": "http://localhost:3010/mcp"
124
+ }
125
+ }
126
+ ]
127
+ }