@cyanheads/epa-mcp-server 0.2.0 → 0.3.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 (48) hide show
  1. package/CLAUDE.md +2 -2
  2. package/Dockerfile +10 -6
  3. package/LICENSE +201 -0
  4. package/README.md +24 -9
  5. package/changelog/0.2.x/0.2.1.md +31 -0
  6. package/changelog/0.3.x/0.3.0.md +13 -0
  7. package/dist/config/server-config.d.ts +1 -0
  8. package/dist/config/server-config.d.ts.map +1 -1
  9. package/dist/config/server-config.js +7 -0
  10. package/dist/config/server-config.js.map +1 -1
  11. package/dist/index.js +7 -4
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/get-air-quality.tool.d.ts.map +1 -1
  14. package/dist/mcp-server/tools/definitions/get-air-quality.tool.js +37 -35
  15. package/dist/mcp-server/tools/definitions/get-air-quality.tool.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/get-ejscreen.tool.d.ts +73 -0
  17. package/dist/mcp-server/tools/definitions/get-ejscreen.tool.d.ts.map +1 -0
  18. package/dist/mcp-server/tools/definitions/get-ejscreen.tool.js +273 -0
  19. package/dist/mcp-server/tools/definitions/get-ejscreen.tool.js.map +1 -0
  20. package/dist/mcp-server/tools/definitions/get-tri-releases.tool.d.ts +4 -0
  21. package/dist/mcp-server/tools/definitions/get-tri-releases.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/get-tri-releases.tool.js +26 -2
  23. package/dist/mcp-server/tools/definitions/get-tri-releases.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/index.d.ts +139 -2
  25. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  26. package/dist/mcp-server/tools/definitions/index.js +4 -1
  27. package/dist/mcp-server/tools/definitions/index.js.map +1 -1
  28. package/dist/services/airnow/airnow-service.d.ts.map +1 -1
  29. package/dist/services/airnow/airnow-service.js +5 -4
  30. package/dist/services/airnow/airnow-service.js.map +1 -1
  31. package/dist/services/dmap/dmap-service.d.ts +10 -0
  32. package/dist/services/dmap/dmap-service.d.ts.map +1 -1
  33. package/dist/services/dmap/dmap-service.js +81 -5
  34. package/dist/services/dmap/dmap-service.js.map +1 -1
  35. package/dist/services/dmap/types.d.ts +36 -4
  36. package/dist/services/dmap/types.d.ts.map +1 -1
  37. package/dist/services/echo/echo-service.js +1 -1
  38. package/dist/services/echo/echo-service.js.map +1 -1
  39. package/dist/services/ejscreen/ejscreen-service.d.ts +38 -0
  40. package/dist/services/ejscreen/ejscreen-service.d.ts.map +1 -0
  41. package/dist/services/ejscreen/ejscreen-service.js +258 -0
  42. package/dist/services/ejscreen/ejscreen-service.js.map +1 -0
  43. package/dist/services/ejscreen/types.d.ts +63 -0
  44. package/dist/services/ejscreen/types.d.ts.map +1 -0
  45. package/dist/services/ejscreen/types.js +9 -0
  46. package/dist/services/ejscreen/types.js.map +1 -0
  47. package/package.json +5 -3
  48. package/server.json +17 -3
@@ -1 +1 @@
1
- {"version":3,"file":"get-air-quality.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-air-quality.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-air-quality.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-air-quality.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @fileoverview Tool for retrieving EJScreen environmental-justice indicators for a
3
+ * point + buffer, backed by the community-maintained EJAM API.
4
+ * @module mcp-server/tools/definitions/get-ejscreen.tool
5
+ */
6
+ import { z } from '@cyanheads/mcp-ts-core';
7
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
8
+ export declare const getEjscreenTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
9
+ latitude: z.ZodNumber;
10
+ longitude: z.ZodNumber;
11
+ distance: z.ZodDefault<z.ZodNumber>;
12
+ unit: z.ZodDefault<z.ZodEnum<{
13
+ miles: "miles";
14
+ kilometers: "kilometers";
15
+ }>>;
16
+ }, z.core.$strip>, z.ZodObject<{
17
+ location: z.ZodObject<{
18
+ latitude: z.ZodNumber;
19
+ longitude: z.ZodNumber;
20
+ bufferMiles: z.ZodNumber;
21
+ state: z.ZodOptional<z.ZodString>;
22
+ stateName: z.ZodOptional<z.ZodString>;
23
+ population: z.ZodOptional<z.ZodNumber>;
24
+ blockGroupCount: z.ZodOptional<z.ZodNumber>;
25
+ }, z.core.$strip>;
26
+ environmental: z.ZodArray<z.ZodObject<{
27
+ code: z.ZodString;
28
+ label: z.ZodString;
29
+ value: z.ZodNumber;
30
+ unit: z.ZodOptional<z.ZodString>;
31
+ usPercentile: z.ZodOptional<z.ZodNumber>;
32
+ statePercentile: z.ZodOptional<z.ZodNumber>;
33
+ ejIndex: z.ZodOptional<z.ZodNumber>;
34
+ ejIndexUsPercentile: z.ZodOptional<z.ZodNumber>;
35
+ ejIndexStatePercentile: z.ZodOptional<z.ZodNumber>;
36
+ }, z.core.$strip>>;
37
+ demographic: z.ZodArray<z.ZodObject<{
38
+ code: z.ZodString;
39
+ label: z.ZodString;
40
+ percent: z.ZodNumber;
41
+ usPercentile: z.ZodOptional<z.ZodNumber>;
42
+ statePercentile: z.ZodOptional<z.ZodNumber>;
43
+ }, z.core.$strip>>;
44
+ demographicIndex: z.ZodOptional<z.ZodObject<{
45
+ value: z.ZodNumber;
46
+ usPercentile: z.ZodOptional<z.ZodNumber>;
47
+ statePercentile: z.ZodOptional<z.ZodNumber>;
48
+ }, z.core.$strip>>;
49
+ supplementalDemographicIndex: z.ZodOptional<z.ZodObject<{
50
+ value: z.ZodNumber;
51
+ usPercentile: z.ZodOptional<z.ZodNumber>;
52
+ statePercentile: z.ZodOptional<z.ZodNumber>;
53
+ }, z.core.$strip>>;
54
+ reportUrl: z.ZodOptional<z.ZodString>;
55
+ coverage: z.ZodObject<{
56
+ valid: z.ZodBoolean;
57
+ note: z.ZodOptional<z.ZodString>;
58
+ }, z.core.$strip>;
59
+ dataSource: z.ZodString;
60
+ }, z.core.$strip>, readonly [{
61
+ readonly reason: "buffer_too_large";
62
+ readonly code: JsonRpcErrorCode.ValidationError;
63
+ readonly when: "The buffer radius exceeds the EJAM API cap of 15 miles (after converting kilometers to miles).";
64
+ readonly recovery: "Reduce distance so the miles-equivalent is 15 or less (about 24 km) and retry.";
65
+ }, {
66
+ readonly reason: "upstream_rejected";
67
+ readonly code: JsonRpcErrorCode.ValidationError;
68
+ readonly when: "The EJAM API rejected the request, typically for invalid coordinates.";
69
+ readonly recovery: "Check that latitude and longitude are valid decimal-degree US coordinates and retry.";
70
+ }], {
71
+ readonly notice: z.ZodOptional<z.ZodString>;
72
+ }>;
73
+ //# sourceMappingURL=get-ejscreen.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-ejscreen.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-ejscreen.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+S1B,CAAC"}
@@ -0,0 +1,273 @@
1
+ /**
2
+ * @fileoverview Tool for retrieving EJScreen environmental-justice indicators for a
3
+ * point + buffer, backed by the community-maintained EJAM API.
4
+ * @module mcp-server/tools/definitions/get-ejscreen.tool
5
+ */
6
+ import { tool, z } from '@cyanheads/mcp-ts-core';
7
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
8
+ import { getEjscreenService } from '../../../services/ejscreen/ejscreen-service.js';
9
+ /** Miles-per-kilometer conversion factor. */
10
+ const MILES_PER_KM = 0.621371;
11
+ /** The EJAM API caps the buffer at 15 miles. */
12
+ const MAX_BUFFER_MILES = 15;
13
+ export const getEjscreenTool = tool('epa_get_ejscreen', {
14
+ title: 'Get EJScreen Environmental Justice Indicators',
15
+ description: 'Get EJScreen environmental-justice indicators for a point and surrounding buffer. Returns the 13 EJScreen environmental indicators (PM2.5, ozone, diesel particulate, NO2, lead paint, traffic proximity, Superfund/RMP/hazardous-waste/wastewater proximity, underground storage tanks, drinking-water non-compliance, and RSEI toxic air releases) and 6 demographic indicators (people of color, low income, limited English, less than high school, under 5, over 64), each with national and state percentiles plus EJ Index values, along with the Demographic Index and Supplemental Demographic Index. Data is EJScreen v2.2 (2022) served via the community-maintained EJAM API (api.ejanalysis.com, Public Environmental Data Partners), which rehosts EJScreen after EPA discontinued public access in 2025 — not a live EPA endpoint. Provide latitude, longitude, and a buffer distance (default 1 mile, max 15 miles). Points outside US coverage return a coverage note instead of indicators.',
16
+ annotations: { readOnlyHint: true, openWorldHint: true, idempotentHint: true },
17
+ input: z.object({
18
+ latitude: z.number().min(-90).max(90).describe('Latitude in decimal degrees.'),
19
+ longitude: z.number().min(-180).max(180).describe('Longitude in decimal degrees.'),
20
+ distance: z
21
+ .number()
22
+ .positive()
23
+ .default(1)
24
+ .describe('Buffer radius around the point, in the given unit (default 1). The miles-equivalent must be 15 or less.'),
25
+ unit: z
26
+ .enum(['miles', 'kilometers'])
27
+ .default('miles')
28
+ .describe('Unit for distance. Kilometers are converted to miles (× 0.621371) before the request.'),
29
+ }),
30
+ output: z.object({
31
+ location: z
32
+ .object({
33
+ latitude: z.number().describe('Latitude of the queried point in decimal degrees.'),
34
+ longitude: z.number().describe('Longitude of the queried point in decimal degrees.'),
35
+ bufferMiles: z
36
+ .number()
37
+ .describe('Buffer radius in miles used for the query (kilometers inputs converted first).'),
38
+ state: z
39
+ .string()
40
+ .optional()
41
+ .describe('2-letter state abbreviation for the area (e.g. "MD"). Absent when out of coverage.'),
42
+ stateName: z
43
+ .string()
44
+ .optional()
45
+ .describe('Full state name (e.g. "Maryland"). Absent when out of coverage.'),
46
+ population: z
47
+ .number()
48
+ .optional()
49
+ .describe('Area-weighted population within the buffer. Absent when out of coverage.'),
50
+ blockGroupCount: z
51
+ .number()
52
+ .optional()
53
+ .describe('Number of census block groups intersecting the buffer. Absent when out of coverage.'),
54
+ })
55
+ .describe('The queried location and buffer context.'),
56
+ environmental: z
57
+ .array(z
58
+ .object({
59
+ code: z
60
+ .string()
61
+ .describe('EJScreen environmental indicator code (e.g. "pm", "o3", "proximity.npl").'),
62
+ label: z.string().describe('Human-readable indicator name.'),
63
+ value: z.number().describe('Raw indicator value, in the unit given by the unit field.'),
64
+ unit: z.string().optional().describe('Unit or scale of the raw value.'),
65
+ usPercentile: z
66
+ .number()
67
+ .optional()
68
+ .describe('National percentile (0–100) for the raw value.'),
69
+ statePercentile: z
70
+ .number()
71
+ .optional()
72
+ .describe('State percentile (0–100) for the raw value.'),
73
+ ejIndex: z
74
+ .number()
75
+ .optional()
76
+ .describe('EJ Index (raw) — the indicator combined with the demographic index.'),
77
+ ejIndexUsPercentile: z
78
+ .number()
79
+ .optional()
80
+ .describe('National percentile (0–100) of the EJ Index.'),
81
+ ejIndexStatePercentile: z
82
+ .number()
83
+ .optional()
84
+ .describe('State percentile (0–100) of the EJ Index.'),
85
+ })
86
+ .describe('One environmental indicator with percentiles and its EJ Index.'))
87
+ .describe('EJScreen environmental indicators present for the area. Empty when out of coverage.'),
88
+ demographic: z
89
+ .array(z
90
+ .object({
91
+ code: z
92
+ .string()
93
+ .describe('EJScreen demographic indicator code (e.g. "pctmin", "pctlowinc").'),
94
+ label: z.string().describe('Human-readable indicator name.'),
95
+ percent: z
96
+ .number()
97
+ .describe('Share of the buffer population, as a percentage (0–100).'),
98
+ usPercentile: z
99
+ .number()
100
+ .optional()
101
+ .describe('National percentile (0–100) for the share.'),
102
+ statePercentile: z
103
+ .number()
104
+ .optional()
105
+ .describe('State percentile (0–100) for the share.'),
106
+ })
107
+ .describe('One demographic indicator with percentiles.'))
108
+ .describe('EJScreen demographic indicators present for the area. Empty when out of coverage.'),
109
+ demographicIndex: z
110
+ .object({
111
+ value: z
112
+ .number()
113
+ .describe('Demographic Index raw value (average of low-income and people-of-color shares).'),
114
+ usPercentile: z
115
+ .number()
116
+ .optional()
117
+ .describe('National percentile (0–100) of the Demographic Index.'),
118
+ statePercentile: z
119
+ .number()
120
+ .optional()
121
+ .describe('State percentile (0–100) of the Demographic Index.'),
122
+ })
123
+ .optional()
124
+ .describe('EJScreen Demographic Index. Absent when out of coverage.'),
125
+ supplementalDemographicIndex: z
126
+ .object({
127
+ value: z
128
+ .number()
129
+ .describe('Supplemental Demographic Index raw value (five-factor average).'),
130
+ usPercentile: z
131
+ .number()
132
+ .optional()
133
+ .describe('National percentile (0–100) of the Supplemental Demographic Index.'),
134
+ statePercentile: z
135
+ .number()
136
+ .optional()
137
+ .describe('State percentile (0–100) of the Supplemental Demographic Index.'),
138
+ })
139
+ .optional()
140
+ .describe('EJScreen Supplemental Demographic Index. Absent when out of coverage.'),
141
+ reportUrl: z
142
+ .string()
143
+ .optional()
144
+ .describe('Link (absolute URL) to the full EJScreen report for this point and buffer.'),
145
+ coverage: z
146
+ .object({
147
+ valid: z
148
+ .boolean()
149
+ .describe('True when EJScreen returned indicators for the point; false when the point is outside coverage.'),
150
+ note: z
151
+ .string()
152
+ .optional()
153
+ .describe('Explanation from EJScreen when coverage is unavailable (e.g. point outside the US).'),
154
+ })
155
+ .describe('Whether EJScreen data was available for the point.'),
156
+ dataSource: z.string().describe('Provenance and vintage of the data.'),
157
+ }),
158
+ enrichment: {
159
+ notice: z
160
+ .string()
161
+ .optional()
162
+ .describe('Guidance when the point is outside EJScreen coverage and no indicators were returned.'),
163
+ },
164
+ errors: [
165
+ {
166
+ reason: 'buffer_too_large',
167
+ code: JsonRpcErrorCode.ValidationError,
168
+ when: 'The buffer radius exceeds the EJAM API cap of 15 miles (after converting kilometers to miles).',
169
+ recovery: 'Reduce distance so the miles-equivalent is 15 or less (about 24 km) and retry.',
170
+ },
171
+ {
172
+ reason: 'upstream_rejected',
173
+ code: JsonRpcErrorCode.ValidationError,
174
+ when: 'The EJAM API rejected the request, typically for invalid coordinates.',
175
+ recovery: 'Check that latitude and longitude are valid decimal-degree US coordinates and retry.',
176
+ },
177
+ ],
178
+ async handler(input, ctx) {
179
+ const bufferMiles = input.unit === 'kilometers' ? input.distance * MILES_PER_KM : input.distance;
180
+ if (bufferMiles > MAX_BUFFER_MILES) {
181
+ throw ctx.fail('buffer_too_large', `Buffer of ${bufferMiles.toFixed(2)} miles exceeds the EJAM API limit of ${MAX_BUFFER_MILES} miles.`, { ...ctx.recoveryFor('buffer_too_large') });
182
+ }
183
+ ctx.log.info('epa_get_ejscreen', {
184
+ lat: input.latitude,
185
+ lon: input.longitude,
186
+ bufferMiles,
187
+ });
188
+ const result = await getEjscreenService().getIndicators({ latitude: input.latitude, longitude: input.longitude, bufferMiles }, ctx);
189
+ ctx.log.info('epa_get_ejscreen completed', {
190
+ valid: result.coverage.valid,
191
+ environmental: result.environmental.length,
192
+ demographic: result.demographic.length,
193
+ });
194
+ if (!result.coverage.valid) {
195
+ ctx.enrich.notice(result.coverage.note
196
+ ? `EJScreen has no coverage for this point: ${result.coverage.note}`
197
+ : `EJScreen returned no indicators for lat=${input.latitude}, lon=${input.longitude}. EJScreen covers US locations only — verify the point is within the United States.`);
198
+ }
199
+ return result;
200
+ },
201
+ format: (result) => {
202
+ const lines = [];
203
+ const loc = result.location;
204
+ const place = loc.stateName ?? loc.state;
205
+ lines.push(`## EJScreen Environmental Justice — ${loc.latitude}, ${loc.longitude}${place ? ` (${place})` : ''}`);
206
+ lines.push(`**Buffer:** ${loc.bufferMiles} miles`);
207
+ if (loc.state)
208
+ lines.push(`**State:** ${loc.state}`);
209
+ if (loc.stateName)
210
+ lines.push(`**State name:** ${loc.stateName}`);
211
+ if (loc.population !== undefined)
212
+ lines.push(`**Population in buffer:** ${loc.population}`);
213
+ if (loc.blockGroupCount !== undefined) {
214
+ lines.push(`**Block groups intersected:** ${loc.blockGroupCount}`);
215
+ }
216
+ lines.push(`**Coverage valid:** ${result.coverage.valid ? 'yes' : 'no'}`);
217
+ if (result.coverage.note)
218
+ lines.push(`> ${result.coverage.note}`);
219
+ if (result.environmental.length > 0) {
220
+ lines.push('\n### Environmental indicators');
221
+ for (const e of result.environmental) {
222
+ const parts = [`**${e.label}** (\`${e.code}\`): ${e.value}${e.unit ? ` ${e.unit}` : ''}`];
223
+ if (e.usPercentile !== undefined)
224
+ parts.push(`US pctile ${e.usPercentile}`);
225
+ if (e.statePercentile !== undefined)
226
+ parts.push(`state pctile ${e.statePercentile}`);
227
+ if (e.ejIndex !== undefined)
228
+ parts.push(`EJ Index ${e.ejIndex}`);
229
+ if (e.ejIndexUsPercentile !== undefined) {
230
+ parts.push(`EJ Index US pctile ${e.ejIndexUsPercentile}`);
231
+ }
232
+ if (e.ejIndexStatePercentile !== undefined) {
233
+ parts.push(`EJ Index state pctile ${e.ejIndexStatePercentile}`);
234
+ }
235
+ lines.push(`- ${parts.join(' · ')}`);
236
+ }
237
+ }
238
+ if (result.demographic.length > 0) {
239
+ lines.push('\n### Demographic indicators');
240
+ for (const d of result.demographic) {
241
+ const parts = [`**${d.label}** (\`${d.code}\`): ${d.percent}%`];
242
+ if (d.usPercentile !== undefined)
243
+ parts.push(`US pctile ${d.usPercentile}`);
244
+ if (d.statePercentile !== undefined)
245
+ parts.push(`state pctile ${d.statePercentile}`);
246
+ lines.push(`- ${parts.join(' · ')}`);
247
+ }
248
+ }
249
+ if (result.demographicIndex) {
250
+ const di = result.demographicIndex;
251
+ const parts = [`**Demographic Index:** ${di.value}`];
252
+ if (di.usPercentile !== undefined)
253
+ parts.push(`US pctile ${di.usPercentile}`);
254
+ if (di.statePercentile !== undefined)
255
+ parts.push(`state pctile ${di.statePercentile}`);
256
+ lines.push(`\n${parts.join(' · ')}`);
257
+ }
258
+ if (result.supplementalDemographicIndex) {
259
+ const si = result.supplementalDemographicIndex;
260
+ const parts = [`**Supplemental Demographic Index:** ${si.value}`];
261
+ if (si.usPercentile !== undefined)
262
+ parts.push(`US pctile ${si.usPercentile}`);
263
+ if (si.statePercentile !== undefined)
264
+ parts.push(`state pctile ${si.statePercentile}`);
265
+ lines.push(parts.join(' · '));
266
+ }
267
+ if (result.reportUrl)
268
+ lines.push(`\n**EJScreen report:** ${result.reportUrl}`);
269
+ lines.push(`\n_Source: ${result.dataSource}_`);
270
+ return [{ type: 'text', text: lines.join('\n') }];
271
+ },
272
+ });
273
+ //# sourceMappingURL=get-ejscreen.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-ejscreen.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-ejscreen.tool.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,10 @@ export declare const getTriReleasesTool: import("@cyanheads/mcp-ts-core").ToolDe
14
14
  chemicalName: z.ZodString;
15
15
  reportingYear: z.ZodNumber;
16
16
  totalReleasesInLbs: z.ZodOptional<z.ZodNumber>;
17
+ releasesToAirInLbs: z.ZodOptional<z.ZodNumber>;
18
+ releasesToWaterInLbs: z.ZodOptional<z.ZodNumber>;
19
+ releasesToLandInLbs: z.ZodOptional<z.ZodNumber>;
20
+ releasesToUndergroundInjectionInLbs: z.ZodOptional<z.ZodNumber>;
17
21
  }, z.core.$strip>>;
18
22
  facilityId: z.ZodString;
19
23
  message: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"get-tri-releases.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tri-releases.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;cA0G7B,CAAC"}
1
+ {"version":3,"file":"get-tri-releases.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tri-releases.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;cAgJ7B,CAAC"}
@@ -36,7 +36,23 @@ export const getTriReleasesTool = tool('epa_get_tri_releases', {
36
36
  totalReleasesInLbs: z
37
37
  .number()
38
38
  .optional()
39
- .describe('One-time release quantity in pounds (from tri_reporting_form)'),
39
+ .describe('TRI one-time / non-routine release quantity in pounds (spills, accidents) — a distinct TRI category, NOT the sum of the per-medium routine releases below.'),
40
+ releasesToAirInLbs: z
41
+ .number()
42
+ .optional()
43
+ .describe('On-site routine air releases (fugitive + stack emissions) in pounds, summed across air release types for this submission.'),
44
+ releasesToWaterInLbs: z
45
+ .number()
46
+ .optional()
47
+ .describe('On-site routine releases to surface water in pounds, summed across all reported outfalls for this submission.'),
48
+ releasesToLandInLbs: z
49
+ .number()
50
+ .optional()
51
+ .describe('On-site routine land releases in pounds — landfills, land treatment, surface impoundment, and other on-site disposal, summed for this submission.'),
52
+ releasesToUndergroundInjectionInLbs: z
53
+ .number()
54
+ .optional()
55
+ .describe('On-site routine releases via underground injection wells in pounds, summed across injection well classes for this submission.'),
40
56
  })
41
57
  .describe('Per-chemical TRI release record for this facility and year'))
42
58
  .describe('Per-chemical annual TRI release records for the queried facility'),
@@ -83,8 +99,16 @@ export const getTriReleasesTool = tool('epa_get_tri_releases', {
83
99
  for (const r of result.releases) {
84
100
  lines.push(`\n### ${r.chemicalName} (${r.reportingYear})`);
85
101
  lines.push(`**Facility ID:** ${r.facilityId}`);
102
+ if (r.releasesToAirInLbs !== undefined)
103
+ lines.push(`**Air Releases:** ${r.releasesToAirInLbs.toLocaleString()} lbs`);
104
+ if (r.releasesToWaterInLbs !== undefined)
105
+ lines.push(`**Water Releases:** ${r.releasesToWaterInLbs.toLocaleString()} lbs`);
106
+ if (r.releasesToLandInLbs !== undefined)
107
+ lines.push(`**Land Releases:** ${r.releasesToLandInLbs.toLocaleString()} lbs`);
108
+ if (r.releasesToUndergroundInjectionInLbs !== undefined)
109
+ lines.push(`**Underground Injection:** ${r.releasesToUndergroundInjectionInLbs.toLocaleString()} lbs`);
86
110
  if (r.totalReleasesInLbs !== undefined)
87
- lines.push(`**Release Quantity:** ${r.totalReleasesInLbs.toLocaleString()} lbs`);
111
+ lines.push(`**One-Time / Non-Routine Release:** ${r.totalReleasesInLbs.toLocaleString()} lbs`);
88
112
  }
89
113
  return [{ type: 'text', text: lines.join('\n') }];
90
114
  },
@@ -1 +1 @@
1
- {"version":3,"file":"get-tri-releases.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tri-releases.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-tri-releases.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tri-releases.tool.ts"],"names":[],"mappings":"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"}