@cyanheads/earthquake-mcp-server 0.2.0 → 0.3.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 (47) hide show
  1. package/CLAUDE.md +2 -2
  2. package/README.md +18 -9
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/mcp-server/resources/definitions/earthquake-event.resource.d.ts +72 -4
  6. package/dist/mcp-server/resources/definitions/earthquake-event.resource.d.ts.map +1 -1
  7. package/dist/mcp-server/resources/definitions/earthquake-event.resource.js +52 -8
  8. package/dist/mcp-server/resources/definitions/earthquake-event.resource.js.map +1 -1
  9. package/dist/mcp-server/tools/definitions/earthquake-count.tool.d.ts +21 -1
  10. package/dist/mcp-server/tools/definitions/earthquake-count.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/earthquake-count.tool.js +83 -5
  12. package/dist/mcp-server/tools/definitions/earthquake-count.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/earthquake-get-event.tool.d.ts +65 -3
  14. package/dist/mcp-server/tools/definitions/earthquake-get-event.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/earthquake-get-event.tool.js +49 -10
  16. package/dist/mcp-server/tools/definitions/earthquake-get-event.tool.js.map +1 -1
  17. package/dist/mcp-server/tools/definitions/earthquake-get-feed.tool.d.ts +14 -4
  18. package/dist/mcp-server/tools/definitions/earthquake-get-feed.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/earthquake-get-feed.tool.js +17 -1
  20. package/dist/mcp-server/tools/definitions/earthquake-get-feed.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/earthquake-search.tool.d.ts +27 -4
  22. package/dist/mcp-server/tools/definitions/earthquake-search.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/earthquake-search.tool.js +85 -7
  24. package/dist/mcp-server/tools/definitions/earthquake-search.tool.js.map +1 -1
  25. package/dist/mcp-server/tools/fdsn-error.d.ts +33 -0
  26. package/dist/mcp-server/tools/fdsn-error.d.ts.map +1 -0
  27. package/dist/mcp-server/tools/fdsn-error.js +84 -0
  28. package/dist/mcp-server/tools/fdsn-error.js.map +1 -0
  29. package/dist/mcp-server/tools/query-params.d.ts +8 -1
  30. package/dist/mcp-server/tools/query-params.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/query-params.js +19 -1
  32. package/dist/mcp-server/tools/query-params.js.map +1 -1
  33. package/dist/mcp-server/tools/schemas.d.ts +65 -3
  34. package/dist/mcp-server/tools/schemas.d.ts.map +1 -1
  35. package/dist/mcp-server/tools/schemas.js +246 -12
  36. package/dist/mcp-server/tools/schemas.js.map +1 -1
  37. package/dist/services/emsc/emsc-service.d.ts.map +1 -1
  38. package/dist/services/emsc/emsc-service.js +14 -3
  39. package/dist/services/emsc/emsc-service.js.map +1 -1
  40. package/dist/services/usgs/types.d.ts +125 -4
  41. package/dist/services/usgs/types.d.ts.map +1 -1
  42. package/dist/services/usgs/usgs-service.d.ts +11 -3
  43. package/dist/services/usgs/usgs-service.d.ts.map +1 -1
  44. package/dist/services/usgs/usgs-service.js +115 -3
  45. package/dist/services/usgs/usgs-service.js.map +1 -1
  46. package/package.json +2 -2
  47. package/server.json +3 -3
@@ -27,20 +27,82 @@ export declare const earthquakeGetEvent: import("@cyanheads/mcp-ts-core").ToolDe
27
27
  orange: "orange";
28
28
  red: "red";
29
29
  }>>;
30
- tsunami: z.ZodNumber;
30
+ tsunami: z.ZodNullable<z.ZodNumber>;
31
31
  significance: z.ZodNullable<z.ZodNumber>;
32
- status: z.ZodEnum<{
32
+ status: z.ZodNullable<z.ZodEnum<{
33
33
  automatic: "automatic";
34
34
  reviewed: "reviewed";
35
35
  deleted: "deleted";
36
- }>;
36
+ }>>;
37
+ source_catalog: z.ZodOptional<z.ZodString>;
38
+ auth: z.ZodOptional<z.ZodString>;
39
+ event_type: z.ZodOptional<z.ZodString>;
37
40
  event_url: z.ZodOptional<z.ZodString>;
38
41
  detail_url: z.ZodOptional<z.ZodString>;
39
42
  }, z.core.$strip>;
43
+ detail: z.ZodOptional<z.ZodObject<{
44
+ losspager: z.ZodOptional<z.ZodObject<{
45
+ alert_level: z.ZodOptional<z.ZodString>;
46
+ report_url: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strip>>;
48
+ shakemap: z.ZodOptional<z.ZodObject<{
49
+ max_mmi: z.ZodOptional<z.ZodNumber>;
50
+ max_pga: z.ZodOptional<z.ZodNumber>;
51
+ max_pgv: z.ZodOptional<z.ZodNumber>;
52
+ intensity_map_url: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strip>>;
54
+ dyfi: z.ZodOptional<z.ZodObject<{
55
+ responses: z.ZodOptional<z.ZodNumber>;
56
+ max_cdi: z.ZodOptional<z.ZodNumber>;
57
+ map_url: z.ZodOptional<z.ZodString>;
58
+ }, z.core.$strip>>;
59
+ moment_tensor: z.ZodOptional<z.ZodObject<{
60
+ scalar_moment_nm: z.ZodOptional<z.ZodNumber>;
61
+ derived_depth_km: z.ZodOptional<z.ZodNumber>;
62
+ nodal_plane_1: z.ZodOptional<z.ZodObject<{
63
+ strike: z.ZodNumber;
64
+ dip: z.ZodNumber;
65
+ rake: z.ZodNumber;
66
+ }, z.core.$strip>>;
67
+ nodal_plane_2: z.ZodOptional<z.ZodObject<{
68
+ strike: z.ZodNumber;
69
+ dip: z.ZodNumber;
70
+ rake: z.ZodNumber;
71
+ }, z.core.$strip>>;
72
+ }, z.core.$strip>>;
73
+ ground_failure: z.ZodOptional<z.ZodObject<{
74
+ landslide_alert: z.ZodOptional<z.ZodString>;
75
+ liquefaction_alert: z.ZodOptional<z.ZodString>;
76
+ }, z.core.$strip>>;
77
+ origin: z.ZodOptional<z.ZodObject<{
78
+ azimuthal_gap_deg: z.ZodOptional<z.ZodNumber>;
79
+ num_stations_used: z.ZodOptional<z.ZodNumber>;
80
+ horizontal_error_km: z.ZodOptional<z.ZodNumber>;
81
+ depth_error_km: z.ZodOptional<z.ZodNumber>;
82
+ review_status: z.ZodOptional<z.ZodString>;
83
+ }, z.core.$strip>>;
84
+ finite_fault: z.ZodOptional<z.ZodObject<{
85
+ rupture_length_km: z.ZodOptional<z.ZodNumber>;
86
+ rupture_width_km: z.ZodOptional<z.ZodNumber>;
87
+ model_url: z.ZodOptional<z.ZodString>;
88
+ }, z.core.$strip>>;
89
+ }, z.core.$strip>>;
40
90
  }, z.core.$strip>, readonly [{
41
91
  readonly reason: "not_found";
42
92
  readonly code: JsonRpcErrorCode.NotFound;
43
93
  readonly when: "No event matches the provided event_id.";
44
94
  readonly recovery: string;
95
+ }, {
96
+ readonly reason: "source_unavailable";
97
+ readonly code: JsonRpcErrorCode.ServiceUnavailable;
98
+ readonly when: "The USGS event API returns a 5xx, serves HTML, or is unreachable.";
99
+ readonly retryable: true;
100
+ readonly recovery: string;
101
+ }, {
102
+ readonly reason: "source_timeout";
103
+ readonly code: JsonRpcErrorCode.Timeout;
104
+ readonly when: "The USGS event API did not answer before the request deadline.";
105
+ readonly retryable: true;
106
+ readonly recovery: string;
45
107
  }], undefined>;
46
108
  //# sourceMappingURL=earthquake-get-event.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"earthquake-get-event.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-get-event.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAK3E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA+D7B,CAAC"}
1
+ {"version":3,"file":"earthquake-get-event.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-get-event.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAS3E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2G7B,CAAC"}
@@ -4,13 +4,18 @@
4
4
  */
5
5
  import { tool, z } from '@cyanheads/mcp-ts-core';
6
6
  import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
7
- import { EarthquakeEventSchema, formatEvent } from '../../../mcp-server/tools/schemas.js';
7
+ import { EarthquakeDetailSchema, EarthquakeEventSchema, formatEvent, formatEventDetail, } from '../../../mcp-server/tools/schemas.js';
8
8
  import { getUsgsService } from '../../../services/usgs/usgs-service.js';
9
9
  export const earthquakeGetEvent = tool('earthquake_get_event', {
10
10
  title: 'Get Earthquake Event Detail',
11
11
  description: 'Fetch detail for a specific earthquake by USGS event ID. ' +
12
- 'Returns felt reports count (DYFI), ShakeMap maximum intensity (MMI), ' +
13
- 'PAGER alert level, tsunami flag, and magnitude type. ' +
12
+ 'Returns the same normalized event a search result carries, plus a projection of the ' +
13
+ 'analysis products only the single-event response holds: PAGER impact alert and report link, ' +
14
+ 'ShakeMap peak intensity and ground motion, DYFI felt-report totals, the moment-tensor focal ' +
15
+ 'mechanism, landslide and liquefaction alerts, origin quality (azimuthal gap, station count, ' +
16
+ 'location uncertainty), and finite-fault rupture dimensions. ' +
17
+ 'Products are omitted when USGS produced none — a small automatic event typically has no ' +
18
+ 'detail at all, while a large reviewed one has most of it. ' +
14
19
  'Event IDs appear in the "id" field of earthquake_get_feed and earthquake_search results. ' +
15
20
  'This tool is USGS-only — EMSC events have no per-event detail endpoint.',
16
21
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
@@ -22,6 +27,8 @@ export const earthquakeGetEvent = tool('earthquake_get_event', {
22
27
  }),
23
28
  output: z.object({
24
29
  event: EarthquakeEventSchema.describe('Full earthquake event detail.'),
30
+ detail: EarthquakeDetailSchema.optional().describe('Analysis products USGS attached to this event. Absent when the event carries none — ' +
31
+ 'that means no product was produced, not that impact was zero.'),
25
32
  }),
26
33
  errors: [
27
34
  {
@@ -31,28 +38,60 @@ export const earthquakeGetEvent = tool('earthquake_get_event', {
31
38
  recovery: 'Verify the event ID from a feed or search result. ' +
32
39
  'IDs are network-specific strings like "us6000sznj" or "hv74966427".',
33
40
  },
41
+ {
42
+ reason: 'source_unavailable',
43
+ code: JsonRpcErrorCode.ServiceUnavailable,
44
+ when: 'The USGS event API returns a 5xx, serves HTML, or is unreachable.',
45
+ retryable: true,
46
+ recovery: 'Retry after a short delay. The same event also appears in earthquake_search and ' +
47
+ 'earthquake_get_feed results, which carry the normalized record without the products.',
48
+ },
49
+ {
50
+ reason: 'source_timeout',
51
+ code: JsonRpcErrorCode.Timeout,
52
+ when: 'The USGS event API did not answer before the request deadline.',
53
+ retryable: true,
54
+ recovery: 'Retry the same event ID — a single-event lookup carries no filters to reduce. If it ' +
55
+ 'keeps timing out, read the event from an earthquake_search or earthquake_get_feed result.',
56
+ },
34
57
  ],
35
58
  async handler(input, ctx) {
36
59
  ctx.log.info('Fetching earthquake event detail', { event_id: input.event_id });
37
- let event;
60
+ let result;
38
61
  try {
39
- event = await getUsgsService().getEvent(input.event_id, ctx);
62
+ result = await getUsgsService().getEvent(input.event_id, ctx);
40
63
  }
41
64
  catch (err) {
42
65
  if (err instanceof McpError && err.code === JsonRpcErrorCode.NotFound) {
43
- throw ctx.fail('not_found', `No earthquake event found for ID "${input.event_id}". Verify the ID from a feed or search result.`);
66
+ throw ctx.fail('not_found', `No earthquake event found for ID "${input.event_id}". Verify the ID from a feed or search result.`, { ...ctx.recoveryFor('not_found') });
67
+ }
68
+ if (err instanceof McpError && err.code === JsonRpcErrorCode.ServiceUnavailable) {
69
+ throw ctx.fail('source_unavailable', err.message, {
70
+ ...ctx.recoveryFor('source_unavailable'),
71
+ });
72
+ }
73
+ // A timeout classifies as Timeout, not ServiceUnavailable — it needs its own
74
+ // branch or it bypasses the contract and reaches the caller with no recovery hint.
75
+ if (err instanceof McpError && err.code === JsonRpcErrorCode.Timeout) {
76
+ throw ctx.fail('source_timeout', err.message, {
77
+ ...ctx.recoveryFor('source_timeout'),
78
+ });
44
79
  }
45
80
  throw err;
46
81
  }
47
82
  ctx.log.info('Event fetched', {
48
83
  event_id: input.event_id,
49
- magnitude: event.magnitude,
50
- place: event.place,
84
+ magnitude: result.event.magnitude,
85
+ place: result.event.place,
86
+ products: result.detail != null ? Object.keys(result.detail) : [],
51
87
  });
52
- return { event };
88
+ return {
89
+ event: result.event,
90
+ ...(result.detail ? { detail: result.detail } : {}),
91
+ };
53
92
  },
54
93
  format: (result) => {
55
- const lines = formatEvent(result.event);
94
+ const lines = [...formatEvent(result.event), ...formatEventDetail(result.detail)];
56
95
  return [{ type: 'text', text: lines.join('\n') }];
57
96
  },
58
97
  });
@@ -1 +1 @@
1
- {"version":3,"file":"earthquake-get-event.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-get-event.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE;IAC7D,KAAK,EAAE,6BAA6B;IACpC,WAAW,EACT,2DAA2D;QAC3D,uEAAuE;QACvE,uDAAuD;QACvD,2FAA2F;QAC3F,yEAAyE;IAC3E,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAE9E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,oDAAoD;YAClD,+EAA+E,CAClF;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,qBAAqB,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KACvE,CAAC;IAEF,MAAM,EAAE;QACN;YACE,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,yCAAyC;YAC/C,QAAQ,EACN,oDAAoD;gBACpD,qEAAqE;SACxE;KACF;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE/E,IAAI,KAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBACtE,MAAM,GAAG,CAAC,IAAI,CACZ,WAAW,EACX,qCAAqC,KAAK,CAAC,QAAQ,gDAAgD,CACpG,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"earthquake-get-event.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-get-event.tool.ts"],"names":[],"mappings":"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"}
@@ -43,13 +43,16 @@ export declare const earthquakeGetFeed: import("@cyanheads/mcp-ts-core").ToolDef
43
43
  orange: "orange";
44
44
  red: "red";
45
45
  }>>;
46
- tsunami: z.ZodNumber;
46
+ tsunami: z.ZodNullable<z.ZodNumber>;
47
47
  significance: z.ZodNullable<z.ZodNumber>;
48
- status: z.ZodEnum<{
48
+ status: z.ZodNullable<z.ZodEnum<{
49
49
  automatic: "automatic";
50
50
  reviewed: "reviewed";
51
51
  deleted: "deleted";
52
- }>;
52
+ }>>;
53
+ source_catalog: z.ZodOptional<z.ZodString>;
54
+ auth: z.ZodOptional<z.ZodString>;
55
+ event_type: z.ZodOptional<z.ZodString>;
53
56
  event_url: z.ZodOptional<z.ZodString>;
54
57
  detail_url: z.ZodOptional<z.ZodString>;
55
58
  }, z.core.$strip>>;
@@ -57,8 +60,15 @@ export declare const earthquakeGetFeed: import("@cyanheads/mcp-ts-core").ToolDef
57
60
  }, z.core.$strip>, readonly [{
58
61
  readonly reason: "feed_unavailable";
59
62
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
60
- readonly when: "USGS feed endpoint returns non-2xx or times out.";
63
+ readonly when: "USGS feed endpoint returns a 5xx, HTML, or is unreachable.";
64
+ readonly retryable: true;
61
65
  readonly recovery: "Try a smaller time_window, or use earthquake_search as a fallback.";
66
+ }, {
67
+ readonly reason: "feed_timeout";
68
+ readonly code: JsonRpcErrorCode.Timeout;
69
+ readonly when: "USGS feed endpoint did not answer before the request deadline.";
70
+ readonly retryable: true;
71
+ readonly recovery: string;
62
72
  }], {
63
73
  readonly totalCount: z.ZodOptional<z.ZodNumber>;
64
74
  readonly truncated: z.ZodOptional<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"earthquake-get-feed.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-get-feed.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAU3E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6M5B,CAAC"}
1
+ {"version":3,"file":"earthquake-get-feed.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-get-feed.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAU3E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8N5B,CAAC"}
@@ -95,9 +95,18 @@ export const earthquakeGetFeed = tool('earthquake_get_feed', {
95
95
  {
96
96
  reason: 'feed_unavailable',
97
97
  code: JsonRpcErrorCode.ServiceUnavailable,
98
- when: 'USGS feed endpoint returns non-2xx or times out.',
98
+ when: 'USGS feed endpoint returns a 5xx, HTML, or is unreachable.',
99
+ retryable: true,
99
100
  recovery: 'Try a smaller time_window, or use earthquake_search as a fallback.',
100
101
  },
102
+ {
103
+ reason: 'feed_timeout',
104
+ code: JsonRpcErrorCode.Timeout,
105
+ when: 'USGS feed endpoint did not answer before the request deadline.',
106
+ retryable: true,
107
+ recovery: 'Retry the call, or request a smaller time_window — the "month" and "all" feeds are ' +
108
+ 'the largest documents and the slowest to transfer.',
109
+ },
101
110
  ],
102
111
  async handler(input, ctx) {
103
112
  ctx.log.info('Fetching USGS feed', {
@@ -116,6 +125,13 @@ export const earthquakeGetFeed = tool('earthquake_get_feed', {
116
125
  ...ctx.recoveryFor('feed_unavailable'),
117
126
  });
118
127
  }
128
+ // A timeout classifies as Timeout, not ServiceUnavailable — it needs its own
129
+ // branch or it bypasses the contract and reaches the caller with no recovery hint.
130
+ if (err instanceof McpError && err.code === JsonRpcErrorCode.Timeout) {
131
+ throw ctx.fail('feed_timeout', err.message, {
132
+ ...ctx.recoveryFor('feed_timeout'),
133
+ });
134
+ }
119
135
  throw err;
120
136
  }
121
137
  ctx.log.info('Feed fetched', {
@@ -1 +1 @@
1
- {"version":3,"file":"earthquake-get-feed.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-get-feed.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"earthquake-get-feed.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-get-feed.tool.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export declare const earthquakeSearch: import("@cyanheads/mcp-ts-core").ToolDefi
22
22
  }>>;
23
23
  min_felt: z.ZodOptional<z.ZodNumber>;
24
24
  min_significance: z.ZodOptional<z.ZodNumber>;
25
+ event_type: z.ZodOptional<z.ZodString>;
25
26
  source: z.ZodDefault<z.ZodEnum<{
26
27
  usgs: "usgs";
27
28
  emsc: "emsc";
@@ -60,13 +61,16 @@ export declare const earthquakeSearch: import("@cyanheads/mcp-ts-core").ToolDefi
60
61
  orange: "orange";
61
62
  red: "red";
62
63
  }>>;
63
- tsunami: z.ZodNumber;
64
+ tsunami: z.ZodNullable<z.ZodNumber>;
64
65
  significance: z.ZodNullable<z.ZodNumber>;
65
- status: z.ZodEnum<{
66
+ status: z.ZodNullable<z.ZodEnum<{
66
67
  automatic: "automatic";
67
68
  reviewed: "reviewed";
68
69
  deleted: "deleted";
69
- }>;
70
+ }>>;
71
+ source_catalog: z.ZodOptional<z.ZodString>;
72
+ auth: z.ZodOptional<z.ZodString>;
73
+ event_type: z.ZodOptional<z.ZodString>;
70
74
  event_url: z.ZodOptional<z.ZodString>;
71
75
  detail_url: z.ZodOptional<z.ZodString>;
72
76
  }, z.core.$strip>>;
@@ -78,13 +82,31 @@ export declare const earthquakeSearch: import("@cyanheads/mcp-ts-core").ToolDefi
78
82
  }, {
79
83
  readonly reason: "source_unavailable";
80
84
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
81
- readonly when: "Selected source API returns non-2xx or times out.";
85
+ readonly when: "Selected source API returns a 5xx or is unreachable.";
86
+ readonly retryable: true;
82
87
  readonly recovery: "Try the other source (usgs or emsc) or retry after a short delay.";
88
+ }, {
89
+ readonly reason: "source_timeout";
90
+ readonly code: JsonRpcErrorCode.Timeout;
91
+ readonly when: "Selected source API did not answer before the request deadline.";
92
+ readonly retryable: true;
93
+ readonly recovery: string;
94
+ }, {
95
+ readonly reason: "upstream_rejected";
96
+ readonly code: JsonRpcErrorCode.InvalidParams;
97
+ readonly when: "The source API rejected the query parameters and explained why in its response body.";
98
+ readonly recovery: string;
99
+ }, {
100
+ readonly reason: "upstream_rejected_no_reason";
101
+ readonly code: JsonRpcErrorCode.InvalidParams;
102
+ readonly when: "The source API rejected the query but its response body carried no usable explanation.";
103
+ readonly recovery: string;
83
104
  }], {
84
105
  readonly totalCount: z.ZodOptional<z.ZodNumber>;
85
106
  readonly truncated: z.ZodOptional<z.ZodBoolean>;
86
107
  readonly nextOffset: z.ZodOptional<z.ZodNumber>;
87
108
  readonly notice: z.ZodOptional<z.ZodString>;
109
+ readonly ignoredFilters: z.ZodOptional<z.ZodArray<z.ZodString>>;
88
110
  readonly queryEcho: z.ZodOptional<z.ZodObject<{
89
111
  start_time: z.ZodOptional<z.ZodString>;
90
112
  end_time: z.ZodOptional<z.ZodString>;
@@ -98,6 +120,7 @@ export declare const earthquakeSearch: import("@cyanheads/mcp-ts-core").ToolDefi
98
120
  alert_level: z.ZodOptional<z.ZodString>;
99
121
  min_felt: z.ZodOptional<z.ZodNumber>;
100
122
  min_significance: z.ZodOptional<z.ZodNumber>;
123
+ event_type: z.ZodOptional<z.ZodString>;
101
124
  source: z.ZodEnum<{
102
125
  usgs: "usgs";
103
126
  emsc: "emsc";
@@ -1 +1 @@
1
- {"version":3,"file":"earthquake-search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-search.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAQ3E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+X3B,CAAC"}
1
+ {"version":3,"file":"earthquake-search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-search.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAS3E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8d3B,CAAC"}
@@ -5,16 +5,21 @@
5
5
  import { tool, z } from '@cyanheads/mcp-ts-core';
6
6
  import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
7
7
  import { getServerConfig } from '../../../config/server-config.js';
8
- import { buildQueryParams } from '../../../mcp-server/tools/query-params.js';
8
+ import { upstreamRejection } from '../../../mcp-server/tools/fdsn-error.js';
9
+ import { buildQueryParams, ignoredUsgsFilters } from '../../../mcp-server/tools/query-params.js';
9
10
  import { EarthquakeEventSchema, formatEvent } from '../../../mcp-server/tools/schemas.js';
10
11
  import { getEmscService } from '../../../services/emsc/emsc-service.js';
11
12
  import { getUsgsService } from '../../../services/usgs/usgs-service.js';
12
13
  export const earthquakeSearch = tool('earthquake_search', {
13
14
  title: 'Search Earthquakes',
14
15
  description: 'Search earthquakes by time range, magnitude, depth, location radius, PAGER alert level, or felt reports. ' +
15
- 'Supports USGS (global, richer metadata: PAGER, DYFI, ShakeMap) and EMSC (European-Mediterranean, independent catalog). ' +
16
+ 'Supports USGS (global, richer metadata: PAGER, DYFI, ShakeMap) and EMSC, an independent global ' +
17
+ 'catalog operated by the European-Mediterranean Seismological Centre. ' +
16
18
  'For location-based queries, provide latitude, longitude, and radius_km together. ' +
17
- 'USGS-specific filters (alert_level, min_felt, min_significance) are ignored when source=emsc. ' +
19
+ 'Both catalogs include non-tectonic records (quarry blasts, explosions) every event carries ' +
20
+ 'its event_type, and event_type="earthquake" filters the rest out on USGS. ' +
21
+ 'USGS-specific filters (alert_level, event_type, min_felt, min_significance) are not sent when ' +
22
+ 'source=emsc — the response names them in ignoredFilters. ' +
18
23
  'Use earthquake_count first to gauge result size before requesting large result sets. ' +
19
24
  'A single call returns at most 20,000 events; larger result sets are retrieved by paging with ' +
20
25
  'offset, which is passed straight through to the upstream FDSN API. When a result is capped, ' +
@@ -84,13 +89,22 @@ export const earthquakeSearch = tool('earthquake_search', {
84
89
  .describe('Minimum USGS significance score (0–2000+). ' +
85
90
  'Combines magnitude, felt reports, and PAGER estimates. ' +
86
91
  'Significant events typically score 600+. Only available from USGS.'),
92
+ event_type: z
93
+ .string()
94
+ .optional()
95
+ .describe('Filter by upstream event classification, e.g. "earthquake" to exclude quarry blasts and ' +
96
+ 'explosions, or "quarry blast" to see only those. Matched verbatim against the USGS ' +
97
+ 'catalog, which accepts any string and returns zero matches for an unrecognized one. ' +
98
+ 'Only available from USGS.'),
87
99
  source: z
88
100
  .enum(['usgs', 'emsc'])
89
101
  .default('usgs')
90
- .describe('Data source. ' +
102
+ .describe('Data source. Both catalogs are global. ' +
91
103
  '"usgs" covers global events with PAGER, DYFI, and ShakeMap metadata. ' +
92
- '"emsc" covers the European-Mediterranean region with an independent catalog ' +
93
- 'useful for cross-verification or European-focused queries.'),
104
+ '"emsc" is an independent global catalog operated by the European-Mediterranean ' +
105
+ 'Seismological Centre — use it to cross-check any event, anywhere, against a separate ' +
106
+ 'network. It publishes no PAGER, DYFI, or ShakeMap metadata and no per-event detail ' +
107
+ 'endpoint; its station coverage is densest around Europe and the Mediterranean.'),
94
108
  limit: z
95
109
  .number()
96
110
  .int()
@@ -146,6 +160,12 @@ export const earthquakeSearch = tool('earthquake_search', {
146
160
  .optional()
147
161
  .describe('Recovery guidance when results are empty or capped — how to broaden filters or get the full count. ' +
148
162
  'Absent when the result set is non-empty and within the limit.'),
163
+ ignoredFilters: z
164
+ .array(z.string().describe('Name of an input filter that was not applied.'))
165
+ .optional()
166
+ .describe('USGS-only filters supplied in the input but not sent upstream because source=emsc ' +
167
+ 'does not support them. The result set is NOT constrained by these — re-run with ' +
168
+ 'source=usgs to apply them. Absent when every supplied filter was applied.'),
149
169
  queryEcho: z
150
170
  .object({
151
171
  start_time: z
@@ -178,6 +198,10 @@ export const earthquakeSearch = tool('earthquake_search', {
178
198
  .number()
179
199
  .optional()
180
200
  .describe('Significance filter sent upstream. Absent for EMSC — not supported there.'),
201
+ event_type: z
202
+ .string()
203
+ .optional()
204
+ .describe('Event-type filter sent upstream. Absent for EMSC — not supported there.'),
181
205
  source: z.enum(['usgs', 'emsc']).describe('Data source queried.'),
182
206
  limit: z.number().describe('Effective result limit sent upstream.'),
183
207
  offset: z
@@ -196,6 +220,10 @@ export const earthquakeSearch = tool('earthquake_search', {
196
220
  .map(([key, value]) => `${key}=${String(value)}`)
197
221
  .join(' · ')}`,
198
222
  },
223
+ ignoredFilters: {
224
+ render: (f) => `**Ignored filters (not supported by EMSC, not sent upstream):** ${(f ?? []).join(', ')} — ` +
225
+ 'these results are NOT constrained by the listed filters. Re-run with source=usgs to apply them.',
226
+ },
199
227
  },
200
228
  errors: [
201
229
  {
@@ -207,9 +235,33 @@ export const earthquakeSearch = tool('earthquake_search', {
207
235
  {
208
236
  reason: 'source_unavailable',
209
237
  code: JsonRpcErrorCode.ServiceUnavailable,
210
- when: 'Selected source API returns non-2xx or times out.',
238
+ when: 'Selected source API returns a 5xx or is unreachable.',
239
+ retryable: true,
211
240
  recovery: 'Try the other source (usgs or emsc) or retry after a short delay.',
212
241
  },
242
+ {
243
+ reason: 'source_timeout',
244
+ code: JsonRpcErrorCode.Timeout,
245
+ when: 'Selected source API did not answer before the request deadline.',
246
+ retryable: true,
247
+ recovery: 'Narrow the time range, raise min_magnitude, or lower limit so the upstream query ' +
248
+ 'returns faster, then retry. Use earthquake_count first to size the match set.',
249
+ },
250
+ {
251
+ reason: 'upstream_rejected',
252
+ code: JsonRpcErrorCode.InvalidParams,
253
+ when: 'The source API rejected the query parameters and explained why in its response body.',
254
+ recovery: 'Read the upstream reason in the error message — it names the offending parameter and ' +
255
+ 'the accepted format. Correct that parameter and call again.',
256
+ },
257
+ {
258
+ reason: 'upstream_rejected_no_reason',
259
+ code: JsonRpcErrorCode.InvalidParams,
260
+ when: 'The source API rejected the query but its response body carried no usable explanation.',
261
+ recovery: 'The service named no offending parameter. Re-check the parameters you supplied — ' +
262
+ 'time range format, magnitude bounds, and the lat/lon/radius trio are the usual causes — ' +
263
+ 'or retry with the other source to see whether it accepts the same query.',
264
+ },
213
265
  ],
214
266
  async handler(input, ctx) {
215
267
  // Validate radius params — all three must be provided together
@@ -249,6 +301,26 @@ export const earthquakeSearch = tool('earthquake_search', {
249
301
  ...ctx.recoveryFor('source_unavailable'),
250
302
  });
251
303
  }
304
+ // A timeout classifies as Timeout, not ServiceUnavailable — it needs its own
305
+ // branch or it bypasses the contract and reaches the caller with no recovery hint.
306
+ if (err instanceof McpError && err.code === JsonRpcErrorCode.Timeout) {
307
+ throw ctx.fail('source_timeout', err.message, {
308
+ ...ctx.recoveryFor('source_timeout'),
309
+ });
310
+ }
311
+ // A 4xx means the upstream rejected the parameters, and its body usually says
312
+ // which one. The framework leaves that body out of the message, so fold it in
313
+ // here — otherwise content[]-only clients see a bare status code. A body with no
314
+ // usable reason still gets a contract reason of its own, so the raw upstream text
315
+ // (which echoes an internal hostname) never substitutes for an explanation.
316
+ const rejection = upstreamRejection(err);
317
+ if (rejection) {
318
+ const source = input.source.toUpperCase();
319
+ if (rejection.reason != null) {
320
+ throw ctx.fail('upstream_rejected', `${source} rejected the query: ${rejection.reason}`, { ...ctx.recoveryFor('upstream_rejected'), status: rejection.status }, { cause: err });
321
+ }
322
+ throw ctx.fail('upstream_rejected_no_reason', `${source} rejected the query (HTTP ${rejection.status}) — the service gave no reason.`, { ...ctx.recoveryFor('upstream_rejected_no_reason'), status: rejection.status }, { cause: err });
323
+ }
252
324
  throw err;
253
325
  }
254
326
  ctx.log.info('Search completed', { source: input.source, count: result.count });
@@ -271,12 +343,18 @@ export const earthquakeSearch = tool('earthquake_search', {
271
343
  ...(isUsgs && params.minSignificance != null
272
344
  ? { min_significance: params.minSignificance }
273
345
  : {}),
346
+ ...(isUsgs && params.eventType != null ? { event_type: params.eventType } : {}),
274
347
  source: input.source,
275
348
  limit,
276
349
  ...(input.offset != null ? { offset: input.offset } : {}),
277
350
  order_by: input.order_by,
278
351
  },
279
352
  });
353
+ // An absence from queryEcho is too quiet a signal that a supplied filter never
354
+ // constrained the results — name the dropped filters outright.
355
+ const ignoredFilters = ignoredUsgsFilters(input, input.source);
356
+ if (ignoredFilters.length > 0)
357
+ ctx.enrich({ ignoredFilters });
280
358
  // Offsets are 1-based upstream, so the events consumed through this page are
281
359
  // (offset - 1) + count and the next page starts at offset + count. A full page
282
360
  // that exactly exhausts a known total is the last page, not a truncated one.
@@ -1 +1 @@
1
- {"version":3,"file":"earthquake-search.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-search.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"earthquake-search.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/earthquake-search.tool.ts"],"names":[],"mappings":"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"}