@cyanheads/noaa-spaceweather-mcp-server 0.1.13 → 0.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.
Files changed (39) hide show
  1. package/AGENTS.md +6 -4
  2. package/CLAUDE.md +6 -4
  3. package/README.md +26 -17
  4. package/changelog/0.1.x/0.1.14.md +32 -0
  5. package/changelog/0.2.x/0.2.0.md +21 -0
  6. package/dist/mcp-server/tools/definitions/get-alerts.tool.d.ts +19 -1
  7. package/dist/mcp-server/tools/definitions/get-alerts.tool.d.ts.map +1 -1
  8. package/dist/mcp-server/tools/definitions/get-alerts.tool.js +281 -41
  9. package/dist/mcp-server/tools/definitions/get-alerts.tool.js.map +1 -1
  10. package/dist/mcp-server/tools/definitions/get-aurora-forecast.tool.d.ts +9 -1
  11. package/dist/mcp-server/tools/definitions/get-aurora-forecast.tool.d.ts.map +1 -1
  12. package/dist/mcp-server/tools/definitions/get-aurora-forecast.tool.js +91 -52
  13. package/dist/mcp-server/tools/definitions/get-aurora-forecast.tool.js.map +1 -1
  14. package/dist/mcp-server/tools/definitions/get-conditions.tool.d.ts +27 -8
  15. package/dist/mcp-server/tools/definitions/get-conditions.tool.d.ts.map +1 -1
  16. package/dist/mcp-server/tools/definitions/get-conditions.tool.js +234 -38
  17. package/dist/mcp-server/tools/definitions/get-conditions.tool.js.map +1 -1
  18. package/dist/mcp-server/tools/definitions/get-kp-index.tool.d.ts +7 -1
  19. package/dist/mcp-server/tools/definitions/get-kp-index.tool.d.ts.map +1 -1
  20. package/dist/mcp-server/tools/definitions/get-kp-index.tool.js +21 -6
  21. package/dist/mcp-server/tools/definitions/get-kp-index.tool.js.map +1 -1
  22. package/dist/mcp-server/tools/definitions/get-solar-activity.tool.d.ts +32 -2
  23. package/dist/mcp-server/tools/definitions/get-solar-activity.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/get-solar-activity.tool.js +243 -39
  25. package/dist/mcp-server/tools/definitions/get-solar-activity.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/get-solar-wind.tool.d.ts +17 -1
  27. package/dist/mcp-server/tools/definitions/get-solar-wind.tool.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/definitions/get-solar-wind.tool.js +150 -21
  29. package/dist/mcp-server/tools/definitions/get-solar-wind.tool.js.map +1 -1
  30. package/dist/mcp-server/tools/definitions/index.d.ts +111 -14
  31. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  32. package/dist/services/space-weather/space-weather-service.d.ts +76 -3
  33. package/dist/services/space-weather/space-weather-service.d.ts.map +1 -1
  34. package/dist/services/space-weather/space-weather-service.js +539 -82
  35. package/dist/services/space-weather/space-weather-service.js.map +1 -1
  36. package/dist/services/space-weather/types.d.ts +177 -21
  37. package/dist/services/space-weather/types.d.ts.map +1 -1
  38. package/package.json +3 -3
  39. package/server.json +3 -3
@@ -6,6 +6,45 @@
6
6
  import { tool, z } from '@cyanheads/mcp-ts-core';
7
7
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
8
8
  import { getSpaceWeatherService } from '../../../services/space-weather/space-weather-service.js';
9
+ /**
10
+ * Records each series is bounded to at the default `reduced` resolution. Pinned at
11
+ * 200 so a default 3-hour call — roughly 170 records per series at the feed's
12
+ * 1-minute cadence — stays inside the bound and is returned untouched.
13
+ */
14
+ const REDUCED_SERIES_MAX = 200;
15
+ /**
16
+ * Bound a series to {@link REDUCED_SERIES_MAX} records by bucketing it by record
17
+ * count and emitting the one record `pick` selects from each bucket — a real
18
+ * upstream measurement, never a synthesized average, so an excursion shorter than
19
+ * a bucket survives instead of being stepped over by a stride.
20
+ *
21
+ * The newest record rides the tail unbucketed: `series.at(-1)` is what the
22
+ * matching `latest*` field reports, and a caller reading the tail for "current"
23
+ * would otherwise get a stale value. A series already inside the bound is
24
+ * returned as-is with a bucket size of one record.
25
+ */
26
+ function reduceSeries(records, pick) {
27
+ if (records.length <= REDUCED_SERIES_MAX)
28
+ return { emitted: records, bucketRecords: 1 };
29
+ const older = records.slice(0, -1);
30
+ const bucketRecords = Math.ceil(older.length / (REDUCED_SERIES_MAX - 1));
31
+ const emitted = [];
32
+ for (let i = 0; i < older.length; i += bucketRecords) {
33
+ emitted.push(pick(older.slice(i, i + bucketRecords)));
34
+ }
35
+ emitted.push(...records.slice(-1));
36
+ return { emitted, bucketRecords };
37
+ }
38
+ /**
39
+ * The bucket's most southward Bz — the storm-relevant extreme. A bucket whose
40
+ * every reading is null keeps its oldest record, so the emitted series stays a
41
+ * sequence of real measurements rather than dropping the interval.
42
+ */
43
+ const mostSouthwardBz = (bucket) => bucket.reduce((best, record) => record.bzGsm !== null && (best.bzGsm === null || record.bzGsm < best.bzGsm) ? record : best);
44
+ /** The bucket's fastest solar wind speed — the plasma counterpart of {@link mostSouthwardBz}. */
45
+ const fastestSpeed = (bucket) => bucket.reduce((best, record) => record.speedKmS !== null && (best.speedKmS === null || record.speedKmS > best.speedKmS)
46
+ ? record
47
+ : best);
9
48
  const PlasmaSchema = z
10
49
  .object({
11
50
  timeTag: z.string().describe('ISO 8601 measurement time tag.'),
@@ -55,7 +94,8 @@ export const getSolarWind = tool('noaa_spaceweather_get_solar_wind', {
55
94
  description: 'Real-time solar wind measurements from the active spacecraft at L1: proton speed (km/s), ' +
56
95
  'density (n/cm³), temperature (K), and the critical Bz component (southward Bz = negative = ' +
57
96
  'storm driver). Returns the recent plasma and magnetic field time series within the requested ' +
58
- 'window, oldest first, each record tagged with the reporting spacecraft. ' +
97
+ 'window, oldest first, each record tagged with the reporting spacecraft and bounded to 200 ' +
98
+ 'records per series unless resolution is set to "full". ' +
59
99
  'Bz < −10 nT for sustained periods is a primary geomagnetic storm trigger — use alongside ' +
60
100
  'noaa_spaceweather_get_kp_index to see whether elevated solar wind has translated into a ' +
61
101
  'geomagnetic storm.',
@@ -69,16 +109,29 @@ export const getSolarWind = tool('noaa_spaceweather_get_solar_wind', {
69
109
  .default(3)
70
110
  .describe('Hours of recent solar wind history to return (1–168, default 3). Records update ~every 1 ' +
71
111
  'min, but the feed only carries roughly the last 24 hours — a larger window returns the ' +
72
- 'whole feed, not more history. When a window comes back empty, feedStalenessHours and ' +
73
- 'latestFeedPlasmaTime/latestFeedMagTime report how current the feed actually is.'),
112
+ 'whole feed, not more history, and at the default resolution the returned series stay ' +
113
+ 'bounded to 200 records each rather than growing with the window. When a window comes ' +
114
+ 'back empty, feedStalenessHours and latestFeedPlasmaTime/latestFeedMagTime report how ' +
115
+ 'current the feed actually is.'),
116
+ resolution: z
117
+ .enum(['reduced', 'full'])
118
+ .default('reduced')
119
+ .describe('Detail level of the returned plasma and mag series. "reduced" (default) bounds each ' +
120
+ 'series to at most 200 records: the window is bucketed by record count and one real ' +
121
+ "measurement is emitted per bucket — the bucket's fastest speed for plasma, its most " +
122
+ 'southward Bz for mag — with the newest record in the window always last. A series ' +
123
+ 'already inside the bound is returned untouched, so a default 3-hour call is ' +
124
+ 'unaffected. "full" returns every record in the window (~1,400 per series over 24 ' +
125
+ 'hours, a ~540 KB response). bzStatus, bzMinInWindow, latestPlasma, and latestMag are ' +
126
+ 'computed from the full window either way.'),
74
127
  }),
75
128
  output: z.object({
76
129
  plasma: z
77
130
  .array(PlasmaSchema)
78
- .describe('Plasma measurements (speed, density, temperature) within the window, oldest first.'),
131
+ .describe('Plasma measurements (speed, density, temperature) within the window, oldest first. Under resolution="reduced" this is at most 200 real records — one per equal-size bucket of the window, each the bucket\'s fastest speed — with the newest windowed record last.'),
79
132
  mag: z
80
133
  .array(MagSchema)
81
- .describe('Magnetic field measurements (Bx, By, Bz, Bt) within the window, oldest first.'),
134
+ .describe('Magnetic field measurements (Bx, By, Bz, Bt) within the window, oldest first. Under resolution="reduced" this is at most 200 real records — one per equal-size bucket of the window, each the bucket\'s most southward Bz — with the newest windowed record last, so the final element always equals latestMag.'),
82
135
  latestPlasma: PlasmaSchema.nullable().describe('Most recent plasma reading, null if no data in window.'),
83
136
  latestMag: MagSchema.nullable().describe('Most recent magnetic field reading, null if no data in window.'),
84
137
  bzStatus: z
@@ -86,10 +139,18 @@ export const getSolarWind = tool('noaa_spaceweather_get_solar_wind', {
86
139
  .describe('Plain-language Bz status, e.g. "Southward Bz −14 nT — storm-driving conditions" or "Northward Bz +5 nT — quiescent".'),
87
140
  plasmaCount: z
88
141
  .number()
89
- .describe('Number of plasma records in the plasma array, spanning the requested window.'),
142
+ .describe('Number of plasma records in the plasma array. Equal to the records in the window at full resolution; under a reduction it is the emitted count, and plasmaWindowRecords carries the pre-reduction total.'),
90
143
  magCount: z
91
144
  .number()
92
- .describe('Number of magnetic field records in the mag array, spanning the requested window.'),
145
+ .describe('Number of magnetic field records in the mag array. Equal to the records in the window at full resolution; under a reduction it is the emitted count, and magWindowRecords carries the pre-reduction total.'),
146
+ bzMinInWindow: z
147
+ .number()
148
+ .nullable()
149
+ .describe('Lowest (most southward) Bz reading in nT across the whole window, computed before any reduction — the number storm work reads next to the latest value. Null when the window is empty or every bzGsm in it is null.'),
150
+ bzMinTimeTag: z
151
+ .string()
152
+ .nullable()
153
+ .describe('ISO 8601 time tag of the record that carried bzMinInWindow. Null whenever bzMinInWindow is null.'),
93
154
  latestFeedPlasmaTime: z
94
155
  .string()
95
156
  .nullable()
@@ -107,19 +168,45 @@ export const getSolarWind = tool('noaa_spaceweather_get_solar_wind', {
107
168
  notice: z
108
169
  .string()
109
170
  .optional()
110
- .describe('Guidance when the requested window returned no plasma or magnetic field records — names the newest record the feed carries, or reports that the feed itself returned nothing from an active spacecraft.'),
171
+ .describe('Guidance on what shaped this response: that the requested window returned no plasma or magnetic field records — naming the newest record the feed carries, or reporting that the feed itself returned nothing from an active spacecraft — and that a series was bounded to 200 records, with the per-series factors.'),
172
+ plasmaBucketRecords: z
173
+ .number()
174
+ .optional()
175
+ .describe('Plasma records per emitted record — the bucket size the window was reduced by, or 1 when this series was returned untouched. Records rather than a minute cadence: the feed skips minutes, so a bucket spans a variable stretch of wall-clock time. Present only when a reduction was applied to either series.'),
176
+ plasmaWindowRecords: z
177
+ .number()
178
+ .optional()
179
+ .describe('Plasma records the window held before reduction. Present only when a reduction was applied to either series.'),
180
+ magBucketRecords: z
181
+ .number()
182
+ .optional()
183
+ .describe('Magnetic field records per emitted record — the bucket size the window was reduced by, or 1 when this series was returned untouched. The two series differ in length, so each carries its own factor. Present only when a reduction was applied to either series.'),
184
+ magWindowRecords: z
185
+ .number()
186
+ .optional()
187
+ .describe('Magnetic field records the window held before reduction. Present only when a reduction was applied to either series.'),
111
188
  },
112
189
  errors: [
113
190
  {
114
191
  reason: 'feed_unavailable',
115
192
  code: JsonRpcErrorCode.ServiceUnavailable,
116
- when: 'SWPC endpoint returns non-OK status or times out after retries.',
193
+ when: 'SWPC feed returns 5xx or 429, times out, or answers with a body that is not parseable JSON. Retried before failing.',
117
194
  retryable: true,
118
195
  recovery: 'Retry in 30–60 seconds; SWPC feeds occasionally lag during high-activity events.',
119
196
  },
197
+ {
198
+ reason: 'feed_moved',
199
+ code: JsonRpcErrorCode.ServiceUnavailable,
200
+ when: 'SWPC feed path returns a permanent 4xx (404, 410, 401, 403). Fails in one attempt.',
201
+ retryable: false,
202
+ recovery: 'Retrying will not help — the SWPC feed path no longer resolves or no longer has the expected shape; the feed URL needs updating against SWPC current inventory.',
203
+ },
120
204
  ],
121
205
  async handler(input, ctx) {
122
- ctx.log.info('Fetching solar wind data', { window_hours: input.window_hours });
206
+ ctx.log.info('Fetching solar wind data', {
207
+ window_hours: input.window_hours,
208
+ resolution: input.resolution,
209
+ });
123
210
  const svc = getSpaceWeatherService();
124
211
  const [allPlasma, allMag] = await Promise.all([
125
212
  svc.getSolarWindPlasma(ctx),
@@ -150,13 +237,6 @@ export const getSolarWind = tool('noaa_spaceweather_get_solar_wind', {
150
237
  ? `No ${label} readings in the requested ${input.window_hours}-hour window; the newest record the feed carries is from ${latestFeedTime}.`
151
238
  : `The feed returned no ${label} readings from an active spacecraft.`;
152
239
  };
153
- const notices = [
154
- emptyWindowNotice('plasma', plasma.length, latestFeedPlasmaTime),
155
- emptyWindowNotice('magnetic field', mag.length, latestFeedMagTime),
156
- ].filter((n) => n !== null);
157
- // One call — the notice field is last-wins, so a second call would clobber the first.
158
- if (notices.length > 0)
159
- ctx.enrich.notice(notices.join(' '));
160
240
  // Derive Bz status
161
241
  let bzStatus = 'Bz data unavailable.';
162
242
  if (latestMag?.bzGsm != null) {
@@ -170,15 +250,59 @@ export const getSolarWind = tool('noaa_spaceweather_get_solar_wind', {
170
250
  else
171
251
  bzStatus = `Northward Bz +${bz} nT — quiescent, not storm-driving.`;
172
252
  }
253
+ // Read from the full windowed series, before any reduction: the whole point of
254
+ // the field is that it survives a reduction that emits neither neighbour.
255
+ let bzMinInWindow = null;
256
+ let bzMinTimeTag = null;
257
+ for (const record of mag) {
258
+ if (record.bzGsm !== null && (bzMinInWindow === null || record.bzGsm < bzMinInWindow)) {
259
+ bzMinInWindow = record.bzGsm;
260
+ bzMinTimeTag = record.timeTag;
261
+ }
262
+ }
263
+ const plasmaReduction = input.resolution === 'reduced'
264
+ ? reduceSeries(plasma, fastestSpeed)
265
+ : { emitted: plasma, bucketRecords: 1 };
266
+ const magReduction = input.resolution === 'reduced'
267
+ ? reduceSeries(mag, mostSouthwardBz)
268
+ : { emitted: mag, bucketRecords: 1 };
269
+ const reducedSeries = [
270
+ plasmaReduction.bucketRecords > 1
271
+ ? `plasma ${plasma.length} → ${plasmaReduction.emitted.length} records (one per ${plasmaReduction.bucketRecords})`
272
+ : null,
273
+ magReduction.bucketRecords > 1
274
+ ? `magnetic field ${mag.length} → ${magReduction.emitted.length} records (one per ${magReduction.bucketRecords})`
275
+ : null,
276
+ ].filter((n) => n !== null);
277
+ const notices = [
278
+ emptyWindowNotice('plasma', plasma.length, latestFeedPlasmaTime),
279
+ emptyWindowNotice('magnetic field', mag.length, latestFeedMagTime),
280
+ reducedSeries.length > 0
281
+ ? `Series bounded to ${REDUCED_SERIES_MAX} records each at resolution="reduced" — ${reducedSeries.join(', ')}. Every emitted record is a real measurement (its bucket's fastest speed or most southward Bz) and the newest record in the window is last; bzStatus, bzMinInWindow, latestPlasma, and latestMag come from the full window. Pass resolution="full" for every record.`
282
+ : null,
283
+ ].filter((n) => n !== null);
284
+ // One call — the notice field is last-wins, so a second call would clobber the first.
285
+ if (notices.length > 0)
286
+ ctx.enrich.notice(notices.join(' '));
287
+ // Written separately rather than spread in conditionally: enrich accumulates, and
288
+ // an absent field must stay absent rather than arrive as an explicit undefined.
289
+ if (reducedSeries.length > 0) {
290
+ ctx.enrich({
291
+ plasmaBucketRecords: plasmaReduction.bucketRecords,
292
+ plasmaWindowRecords: plasma.length,
293
+ magBucketRecords: magReduction.bucketRecords,
294
+ magWindowRecords: mag.length,
295
+ });
296
+ }
173
297
  return {
174
- plasma: plasma.map((r) => ({
298
+ plasma: plasmaReduction.emitted.map((r) => ({
175
299
  timeTag: r.timeTag,
176
300
  source: r.source,
177
301
  densityPerCm3: r.densityPerCm3,
178
302
  speedKmS: r.speedKmS,
179
303
  temperatureK: r.temperatureK,
180
304
  })),
181
- mag: mag.map((r) => ({
305
+ mag: magReduction.emitted.map((r) => ({
182
306
  timeTag: r.timeTag,
183
307
  source: r.source,
184
308
  bxGsm: r.bxGsm,
@@ -206,11 +330,13 @@ export const getSolarWind = tool('noaa_spaceweather_get_solar_wind', {
206
330
  }
207
331
  : null,
208
332
  bzStatus,
209
- plasmaCount: plasma.length,
210
- magCount: mag.length,
333
+ plasmaCount: plasmaReduction.emitted.length,
334
+ magCount: magReduction.emitted.length,
211
335
  latestFeedPlasmaTime,
212
336
  latestFeedMagTime,
213
337
  feedStalenessHours,
338
+ bzMinInWindow,
339
+ bzMinTimeTag,
214
340
  };
215
341
  },
216
342
  format: (result) => {
@@ -218,6 +344,9 @@ export const getSolarWind = tool('noaa_spaceweather_get_solar_wind', {
218
344
  const source = result.latestPlasma?.source ?? result.latestMag?.source;
219
345
  lines.push(source ? `## Solar Wind (${source})` : '## Solar Wind');
220
346
  lines.push(`**Bz Status:** ${result.bzStatus}`);
347
+ lines.push(`**Minimum Bz in window:** ${result.bzMinInWindow != null && result.bzMinTimeTag != null
348
+ ? `${result.bzMinInWindow} nT at ${result.bzMinTimeTag}`
349
+ : 'N/A'}`);
221
350
  lines.push(`**Plasma readings:** ${result.plasmaCount} | **Mag readings:** ${result.magCount}`);
222
351
  if (result.latestFeedPlasmaTime != null) {
223
352
  lines.push(`**Newest plasma record in feed:** ${result.latestFeedPlasmaTime}`);
@@ -1 +1 @@
1
- {"version":3,"file":"get-solar-wind.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-solar-wind.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-solar-wind.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-solar-wind.tool.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@
2
2
  * @fileoverview Barrel export for all tool definitions.
3
3
  * @module mcp-server/tools/definitions/index
4
4
  */
5
- export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
5
+ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
6
+ include_discussion: import("zod").ZodDefault<import("zod").ZodBoolean>;
7
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
6
8
  observedAt: import("zod").ZodString;
7
9
  currentKp: import("zod").ZodNumber;
8
10
  currentGScale: import("zod").ZodNumber;
@@ -32,23 +34,40 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
32
34
  label: import("zod").ZodString;
33
35
  }, import("zod/v4/core").$strip>;
34
36
  R: import("zod").ZodObject<{
35
- scale: import("zod").ZodNumber;
36
- text: import("zod").ZodString;
37
- label: import("zod").ZodString;
37
+ scale: import("zod").ZodNullable<import("zod").ZodNumber>;
38
+ text: import("zod").ZodNullable<import("zod").ZodString>;
39
+ label: import("zod").ZodNullable<import("zod").ZodString>;
40
+ minorProbPercent: import("zod").ZodNullable<import("zod").ZodNumber>;
41
+ majorProbPercent: import("zod").ZodNullable<import("zod").ZodNumber>;
38
42
  }, import("zod/v4/core").$strip>;
39
43
  S: import("zod").ZodObject<{
40
- scale: import("zod").ZodNumber;
41
- text: import("zod").ZodString;
42
- label: import("zod").ZodString;
44
+ scale: import("zod").ZodNullable<import("zod").ZodNumber>;
45
+ text: import("zod").ZodNullable<import("zod").ZodString>;
46
+ label: import("zod").ZodNullable<import("zod").ZodString>;
47
+ probPercent: import("zod").ZodNullable<import("zod").ZodNumber>;
43
48
  }, import("zod/v4/core").$strip>;
44
49
  }, import("zod/v4/core").$strip>>;
45
50
  summary: import("zod").ZodString;
51
+ discussion: import("zod").ZodNullable<import("zod").ZodObject<{
52
+ issued: import("zod").ZodNullable<import("zod").ZodString>;
53
+ sections: import("zod").ZodArray<import("zod").ZodObject<{
54
+ topic: import("zod").ZodString;
55
+ summary: import("zod").ZodNullable<import("zod").ZodString>;
56
+ forecast: import("zod").ZodNullable<import("zod").ZodString>;
57
+ }, import("zod/v4/core").$strip>>;
58
+ }, import("zod/v4/core").$strip>>;
46
59
  }, import("zod/v4/core").$strip>, readonly [{
47
60
  readonly reason: "feed_unavailable";
48
61
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
49
- readonly when: "SWPC endpoint returns non-OK status or times out after retries.";
62
+ readonly when: "SWPC feed returns 5xx or 429, times out, or answers with a body that is not parseable JSON. Retried before failing.";
50
63
  readonly retryable: true;
51
64
  readonly recovery: "Retry in 30–60 seconds; SWPC feeds occasionally lag during high-activity events.";
65
+ }, {
66
+ readonly reason: "feed_moved";
67
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
68
+ readonly when: "SWPC feed path returns a permanent 4xx (404, 410, 401, 403), or a feed answers without the shape it is documented to have — the scales feed no longer carrying its \"0\" (today) period, or the forecast discussion carrying no topic section. Fails in one attempt.";
69
+ readonly retryable: false;
70
+ readonly recovery: "Retrying will not help — the SWPC feed path no longer resolves or no longer has the expected shape; the feed URL needs updating against SWPC current inventory.";
52
71
  }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
53
72
  active_only: import("zod").ZodDefault<import("zod").ZodBoolean>;
54
73
  max_age_hours: import("zod").ZodDefault<import("zod").ZodNumber>;
@@ -66,6 +85,7 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
66
85
  level: import("zod").ZodNumber;
67
86
  noaaScale: import("zod").ZodNullable<import("zod").ZodString>;
68
87
  cancelled: import("zod").ZodBoolean;
88
+ serialNumber: import("zod").ZodNullable<import("zod").ZodString>;
69
89
  phenomenon: import("zod").ZodString;
70
90
  issueDatetime: import("zod").ZodString;
71
91
  validFrom: import("zod").ZodNullable<import("zod").ZodString>;
@@ -73,15 +93,32 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
73
93
  message: import("zod").ZodString;
74
94
  }, import("zod/v4/core").$strip>>;
75
95
  totalCount: import("zod").ZodNumber;
96
+ activeOnly: import("zod").ZodBoolean;
76
97
  fetchedAt: import("zod").ZodString;
77
98
  }, import("zod/v4/core").$strip>, readonly [{
78
99
  readonly reason: "feed_unavailable";
79
100
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
80
- readonly when: "SWPC endpoint returns non-OK status or times out after retries.";
101
+ readonly when: "SWPC feed returns 5xx or 429, times out, or answers with a body that is not parseable JSON. Retried before failing.";
81
102
  readonly retryable: true;
82
103
  readonly recovery: "Retry in 30–60 seconds; SWPC feeds occasionally lag during high-activity events.";
104
+ }, {
105
+ readonly reason: "feed_moved";
106
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
107
+ readonly when: "SWPC feed path returns a permanent 4xx (404, 410, 401, 403). Fails in one attempt.";
108
+ readonly retryable: false;
109
+ readonly recovery: "Retrying will not help — the SWPC feed path no longer resolves or no longer has the expected shape; the feed URL needs updating against SWPC current inventory.";
83
110
  }], {
84
111
  readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
112
+ readonly appliedWindowHours: import("zod").ZodOptional<import("zod").ZodNumber>;
113
+ readonly appliedCutoff: import("zod").ZodOptional<import("zod").ZodString>;
114
+ readonly exclusions: import("zod").ZodOptional<import("zod").ZodObject<{
115
+ agedOut: import("zod").ZodNumber;
116
+ productType: import("zod").ZodNumber;
117
+ cancellationRecord: import("zod").ZodNumber;
118
+ cancelledBySerial: import("zod").ZodNumber;
119
+ superseded: import("zod").ZodNumber;
120
+ validityElapsed: import("zod").ZodNumber;
121
+ }, import("zod/v4/core").$strip>>;
85
122
  }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
86
123
  window_days: import("zod").ZodDefault<import("zod").ZodNumber>;
87
124
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -107,11 +144,21 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
107
144
  }, import("zod/v4/core").$strip>, readonly [{
108
145
  readonly reason: "feed_unavailable";
109
146
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
110
- readonly when: "SWPC endpoint returns non-OK status or times out after retries.";
147
+ readonly when: "SWPC feed returns 5xx or 429, times out, or answers with a body that is not parseable JSON. Retried before failing.";
111
148
  readonly retryable: true;
112
149
  readonly recovery: "Retry in 30–60 seconds; SWPC feeds occasionally lag during high-activity events.";
150
+ }, {
151
+ readonly reason: "feed_moved";
152
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
153
+ readonly when: "SWPC feed path returns a permanent 4xx (404, 410, 401, 403). Fails in one attempt.";
154
+ readonly retryable: false;
155
+ readonly recovery: "Retrying will not help — the SWPC feed path no longer resolves or no longer has the expected shape; the feed URL needs updating against SWPC current inventory.";
113
156
  }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
114
157
  window_hours: import("zod").ZodDefault<import("zod").ZodNumber>;
158
+ resolution: import("zod").ZodDefault<import("zod").ZodEnum<{
159
+ full: "full";
160
+ reduced: "reduced";
161
+ }>>;
115
162
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
116
163
  plasma: import("zod").ZodArray<import("zod").ZodObject<{
117
164
  timeTag: import("zod").ZodString;
@@ -146,32 +193,66 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
146
193
  bzStatus: import("zod").ZodString;
147
194
  plasmaCount: import("zod").ZodNumber;
148
195
  magCount: import("zod").ZodNumber;
196
+ bzMinInWindow: import("zod").ZodNullable<import("zod").ZodNumber>;
197
+ bzMinTimeTag: import("zod").ZodNullable<import("zod").ZodString>;
149
198
  latestFeedPlasmaTime: import("zod").ZodNullable<import("zod").ZodString>;
150
199
  latestFeedMagTime: import("zod").ZodNullable<import("zod").ZodString>;
151
200
  feedStalenessHours: import("zod").ZodNullable<import("zod").ZodNumber>;
152
201
  }, import("zod/v4/core").$strip>, readonly [{
153
202
  readonly reason: "feed_unavailable";
154
203
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
155
- readonly when: "SWPC endpoint returns non-OK status or times out after retries.";
204
+ readonly when: "SWPC feed returns 5xx or 429, times out, or answers with a body that is not parseable JSON. Retried before failing.";
156
205
  readonly retryable: true;
157
206
  readonly recovery: "Retry in 30–60 seconds; SWPC feeds occasionally lag during high-activity events.";
207
+ }, {
208
+ readonly reason: "feed_moved";
209
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
210
+ readonly when: "SWPC feed path returns a permanent 4xx (404, 410, 401, 403). Fails in one attempt.";
211
+ readonly retryable: false;
212
+ readonly recovery: "Retrying will not help — the SWPC feed path no longer resolves or no longer has the expected shape; the feed URL needs updating against SWPC current inventory.";
158
213
  }], {
159
214
  readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
215
+ readonly plasmaBucketRecords: import("zod").ZodOptional<import("zod").ZodNumber>;
216
+ readonly plasmaWindowRecords: import("zod").ZodOptional<import("zod").ZodNumber>;
217
+ readonly magBucketRecords: import("zod").ZodOptional<import("zod").ZodNumber>;
218
+ readonly magWindowRecords: import("zod").ZodOptional<import("zod").ZodNumber>;
160
219
  }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
161
220
  include_regions: import("zod").ZodDefault<import("zod").ZodBoolean>;
221
+ flare_hours: import("zod").ZodDefault<import("zod").ZodNumber>;
162
222
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
163
223
  latestXray: import("zod").ZodNullable<import("zod").ZodObject<{
164
224
  timeTag: import("zod").ZodString;
165
225
  fluxWm2: import("zod").ZodString;
226
+ fluxWm2Value: import("zod").ZodNumber;
166
227
  flareClass: import("zod").ZodString;
228
+ flareClassFull: import("zod").ZodNullable<import("zod").ZodString>;
167
229
  satellite: import("zod").ZodNumber;
168
230
  }, import("zod/v4/core").$strip>>;
169
231
  recentXray: import("zod").ZodArray<import("zod").ZodObject<{
170
232
  timeTag: import("zod").ZodString;
171
233
  fluxWm2: import("zod").ZodString;
234
+ fluxWm2Value: import("zod").ZodNumber;
172
235
  flareClass: import("zod").ZodString;
236
+ flareClassFull: import("zod").ZodNullable<import("zod").ZodString>;
173
237
  satellite: import("zod").ZodNumber;
174
238
  }, import("zod/v4/core").$strip>>;
239
+ recentFlares: import("zod").ZodArray<import("zod").ZodObject<{
240
+ beginTime: import("zod").ZodString;
241
+ maxTime: import("zod").ZodString;
242
+ endTime: import("zod").ZodNullable<import("zod").ZodString>;
243
+ beginClass: import("zod").ZodString;
244
+ maxClass: import("zod").ZodString;
245
+ endClass: import("zod").ZodNullable<import("zod").ZodString>;
246
+ peakFluxWm2: import("zod").ZodNumber;
247
+ rScale: import("zod").ZodNumber;
248
+ satellite: import("zod").ZodNumber;
249
+ }, import("zod/v4/core").$strip>>;
250
+ f107: import("zod").ZodNullable<import("zod").ZodObject<{
251
+ observedTime: import("zod").ZodString;
252
+ fluxSfu: import("zod").ZodNumber;
253
+ ninetyDayMeanSfu: import("zod").ZodNullable<import("zod").ZodNumber>;
254
+ reportingSchedule: import("zod").ZodString;
255
+ }, import("zod/v4/core").$strip>>;
175
256
  probabilities: import("zod").ZodArray<import("zod").ZodObject<{
176
257
  date: import("zod").ZodString;
177
258
  cClass1Day: import("zod").ZodNumber;
@@ -208,10 +289,18 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
208
289
  }, import("zod/v4/core").$strip>, readonly [{
209
290
  readonly reason: "feed_unavailable";
210
291
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
211
- readonly when: "SWPC endpoint returns non-OK status or times out after retries.";
292
+ readonly when: "SWPC feed returns 5xx or 429, times out, or answers with a body that is not parseable JSON. Retried before failing.";
212
293
  readonly retryable: true;
213
294
  readonly recovery: "Retry in 30–60 seconds; SWPC feeds occasionally lag during high-activity events.";
214
- }], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
295
+ }, {
296
+ readonly reason: "feed_moved";
297
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
298
+ readonly when: "SWPC feed path returns a permanent 4xx (404, 410, 401, 403). Fails in one attempt.";
299
+ readonly retryable: false;
300
+ readonly recovery: "Retrying will not help — the SWPC feed path no longer resolves or no longer has the expected shape; the feed URL needs updating against SWPC current inventory.";
301
+ }], {
302
+ readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
303
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
215
304
  latitude: import("zod").ZodOptional<import("zod").ZodNumber>;
216
305
  longitude: import("zod").ZodOptional<import("zod").ZodNumber>;
217
306
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -220,10 +309,12 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
220
309
  localLookup: import("zod").ZodNullable<import("zod").ZodObject<{
221
310
  requestedLatitude: import("zod").ZodNumber;
222
311
  requestedLongitude: import("zod").ZodNumber;
312
+ geomagneticLatitude: import("zod").ZodNumber;
223
313
  gridLatitude: import("zod").ZodNumber;
224
314
  gridLongitude: import("zod").ZodNumber;
225
315
  auroraPercent: import("zod").ZodNumber;
226
316
  minKpRequired: import("zod").ZodNumber;
317
+ minGScale: import("zod").ZodNullable<import("zod").ZodNumber>;
227
318
  verdict: import("zod").ZodString;
228
319
  }, import("zod/v4/core").$strip>>;
229
320
  gridPointCount: import("zod").ZodNumber;
@@ -232,9 +323,15 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
232
323
  }, import("zod/v4/core").$strip>, readonly [{
233
324
  readonly reason: "feed_unavailable";
234
325
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
235
- readonly when: "SWPC endpoint returns non-OK status or times out after retries.";
326
+ readonly when: "SWPC feed returns 5xx or 429, times out, or answers with a body that is not parseable JSON. Retried before failing.";
236
327
  readonly retryable: true;
237
328
  readonly recovery: "Retry in 30–60 seconds; SWPC feeds occasionally lag during high-activity events.";
329
+ }, {
330
+ readonly reason: "feed_moved";
331
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
332
+ readonly when: "SWPC feed path returns a permanent 4xx (404, 410, 401, 403). Fails in one attempt.";
333
+ readonly retryable: false;
334
+ readonly recovery: "Retrying will not help — the SWPC feed path no longer resolves or no longer has the expected shape; the feed URL needs updating against SWPC current inventory.";
238
335
  }, {
239
336
  readonly reason: "invalid_coordinates";
240
337
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO9B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO9B,CAAC"}