@cyanheads/epa-mcp-server 0.4.0 → 0.4.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.
- package/AGENTS.md +5 -5
- package/CLAUDE.md +5 -5
- package/Dockerfile +3 -3
- package/README.md +24 -19
- package/changelog/0.4.x/0.4.1.md +34 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/resources/definitions/facility.resource.d.ts +8 -1
- package/dist/mcp-server/resources/definitions/facility.resource.d.ts.map +1 -1
- package/dist/mcp-server/resources/definitions/facility.resource.js +13 -7
- package/dist/mcp-server/resources/definitions/facility.resource.js.map +1 -1
- package/dist/mcp-server/resources/definitions/index.d.ts +7 -1
- package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-facility.tool.d.ts +30 -2
- package/dist/mcp-server/tools/definitions/get-facility.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-facility.tool.js +208 -43
- package/dist/mcp-server/tools/definitions/get-facility.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tri-releases.tool.d.ts +4 -2
- package/dist/mcp-server/tools/definitions/get-tri-releases.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tri-releases.tool.js +12 -5
- package/dist/mcp-server/tools/definitions/get-tri-releases.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +116 -16
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-facilities.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-facilities.tool.js +34 -16
- package/dist/mcp-server/tools/definitions/search-facilities.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-superfund.tool.d.ts +3 -1
- package/dist/mcp-server/tools/definitions/search-superfund.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-superfund.tool.js +11 -1
- package/dist/mcp-server/tools/definitions/search-superfund.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-tri-releases.tool.d.ts +7 -0
- package/dist/mcp-server/tools/definitions/search-tri-releases.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-tri-releases.tool.js +21 -9
- package/dist/mcp-server/tools/definitions/search-tri-releases.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-violations.tool.d.ts +20 -3
- package/dist/mcp-server/tools/definitions/search-violations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-violations.tool.js +84 -15
- package/dist/mcp-server/tools/definitions/search-violations.tool.js.map +1 -1
- package/dist/services/airnow/airnow-service.d.ts.map +1 -1
- package/dist/services/airnow/airnow-service.js +9 -3
- package/dist/services/airnow/airnow-service.js.map +1 -1
- package/dist/services/call-budget.d.ts +22 -0
- package/dist/services/call-budget.d.ts.map +1 -0
- package/dist/services/call-budget.js +28 -0
- package/dist/services/call-budget.js.map +1 -0
- package/dist/services/dmap/dmap-service.d.ts +43 -13
- package/dist/services/dmap/dmap-service.d.ts.map +1 -1
- package/dist/services/dmap/dmap-service.js +270 -68
- package/dist/services/dmap/dmap-service.js.map +1 -1
- package/dist/services/echo/echo-service.d.ts +38 -11
- package/dist/services/echo/echo-service.d.ts.map +1 -1
- package/dist/services/echo/echo-service.js +417 -223
- package/dist/services/echo/echo-service.js.map +1 -1
- package/dist/services/echo/types.d.ts +167 -80
- package/dist/services/echo/types.d.ts.map +1 -1
- package/dist/services/ejscreen/ejscreen-service.d.ts.map +1 -1
- package/dist/services/ejscreen/ejscreen-service.js +9 -3
- package/dist/services/ejscreen/ejscreen-service.js.map +1 -1
- package/package.json +6 -6
- package/server.json +3 -3
|
@@ -9,11 +9,12 @@ import { formatLocationLines } from '../format-location.js';
|
|
|
9
9
|
import { getEchoService } from '../../../services/echo/echo-service.js';
|
|
10
10
|
export const getFacilityTool = tool('epa_get_facility', {
|
|
11
11
|
title: 'Get EPA Facility Compliance Profile',
|
|
12
|
-
description:
|
|
12
|
+
description: "Retrieve a full compliance profile for a single EPA-regulated facility by EPA Registry ID. Returns facility metadata, ECHO's facility-level compliance status, a per-statute (CAA, CWA, RCRA, SDWA, and others ECHO tracks) compliance summary, the newest 100 inspections and other compliance monitoring records from the last five years, five years of formal enforcement actions with penalties, the latest TRI release total, and the facility's TRI facility IDs for epa_get_tri_releases. Use epa_search_facilities to discover Registry IDs. For area-level enforcement discovery use epa_search_violations instead.",
|
|
13
13
|
annotations: { readOnlyHint: true, openWorldHint: true, idempotentHint: true },
|
|
14
14
|
input: z.object({
|
|
15
15
|
registry_id: z
|
|
16
16
|
.string()
|
|
17
|
+
.trim()
|
|
17
18
|
.min(1)
|
|
18
19
|
.describe('EPA FRS Registry ID for the facility (obtained from epa_search_facilities)'),
|
|
19
20
|
}),
|
|
@@ -28,87 +29,204 @@ export const getFacilityTool = tool('epa_get_facility', {
|
|
|
28
29
|
fipsCode: z.string().optional().describe('5-digit county FIPS code'),
|
|
29
30
|
latitude: z.number().optional().describe('Latitude in decimal degrees'),
|
|
30
31
|
longitude: z.number().optional().describe('Longitude in decimal degrees'),
|
|
31
|
-
complianceStatus: z
|
|
32
|
+
complianceStatus: z
|
|
33
|
+
.string()
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('ECHO\'s facility-level compliance status, the same value epa_search_facilities returns (e.g. "Significant Violation"). Absent when ECHO assigns none, as for TRI-only facilities, or when ECHO\'s facility search request fails (the notice field then says so).'),
|
|
32
36
|
programs: z
|
|
33
37
|
.object({
|
|
34
|
-
air: z
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
air: z
|
|
39
|
+
.boolean()
|
|
40
|
+
.describe('Has an ICIS-Air record (Clean Air Act stationary-source compliance). Emissions-inventory, risk-management, and greenhouse-gas reporting entries alone do not count.'),
|
|
41
|
+
water: z.boolean().describe('Has an ICIS-NPDES record (Clean Water Act discharge permit)'),
|
|
42
|
+
rcra: z.boolean().describe('Has an RCRAInfo record (RCRA hazardous waste handler)'),
|
|
43
|
+
tri: z
|
|
44
|
+
.boolean()
|
|
45
|
+
.describe('Has a Toxics Release Inventory record — true exactly when triFacilityIds is non-empty'),
|
|
46
|
+
sdwa: z
|
|
47
|
+
.boolean()
|
|
48
|
+
.describe('Has an SDWIS record (Safe Drinking Water Act public water system)'),
|
|
39
49
|
})
|
|
40
|
-
.describe(
|
|
50
|
+
.describe("Program registration flags, from the ECHO systems in the facility's detailed report"),
|
|
51
|
+
triFacilityIds: z
|
|
52
|
+
.array(z.string())
|
|
53
|
+
.describe('15-character TRI facility IDs recorded for this facility, most recently reported first — pass one as facility_id to epa_get_tri_releases for per-chemical releases. A site can carry several from successive operators. Empty when the facility has no TRI record.'),
|
|
41
54
|
triReleasesTransfersInLbs: z
|
|
42
55
|
.number()
|
|
43
56
|
.optional()
|
|
44
|
-
.describe(
|
|
57
|
+
.describe("Total TRI on- and off-site releases and transfers in pounds for triReleasesTransfersYear, ECHO's latest TRI year for this facility. Absent when ECHO holds no TRI history for it."),
|
|
58
|
+
triReleasesTransfersYear: z
|
|
59
|
+
.number()
|
|
60
|
+
.optional()
|
|
61
|
+
.describe('TRI reporting year triReleasesTransfersInLbs covers'),
|
|
45
62
|
compliance: z
|
|
46
63
|
.object({
|
|
47
|
-
mediaStatusCode: z
|
|
64
|
+
mediaStatusCode: z
|
|
65
|
+
.string()
|
|
66
|
+
.optional()
|
|
67
|
+
.describe('Not populated: no ECHO response this tool reads carries a media status code.'),
|
|
48
68
|
mediaStatusDescription: z
|
|
49
69
|
.string()
|
|
50
70
|
.optional()
|
|
51
|
-
.describe('
|
|
71
|
+
.describe('Not populated: no ECHO response this tool reads carries a media status description. See complianceStatus and programCompliance.'),
|
|
52
72
|
quartersInViolation: z
|
|
53
73
|
.number()
|
|
54
74
|
.optional()
|
|
55
|
-
.describe('
|
|
75
|
+
.describe('Quarters (of the last 12) in which any program found the facility in noncompliance'),
|
|
56
76
|
})
|
|
57
77
|
.optional()
|
|
58
|
-
.describe(
|
|
78
|
+
.describe("Facility-level noncompliance count from ECHO's facility search record. Absent when ECHO reports none or the facility search request fails."),
|
|
79
|
+
programCompliance: z
|
|
80
|
+
.array(z
|
|
81
|
+
.object({
|
|
82
|
+
statute: z
|
|
83
|
+
.string()
|
|
84
|
+
.describe('Statute ECHO summarizes, e.g. CAA, CWA, RCRA, SDWA, TSCA, EPCRA'),
|
|
85
|
+
currentStatus: z
|
|
86
|
+
.string()
|
|
87
|
+
.optional()
|
|
88
|
+
.describe('Current compliance status under this statute, e.g. "No Violation Identified"'),
|
|
89
|
+
quartersInNoncompliance: z
|
|
90
|
+
.number()
|
|
91
|
+
.optional()
|
|
92
|
+
.describe('Quarters in noncompliance over the 3-year window (of 12)'),
|
|
93
|
+
quartersInSignificantNoncompliance: z
|
|
94
|
+
.number()
|
|
95
|
+
.optional()
|
|
96
|
+
.describe('Quarters in significant noncompliance over the 3-year window (of 12)'),
|
|
97
|
+
inspections: z
|
|
98
|
+
.number()
|
|
99
|
+
.optional()
|
|
100
|
+
.describe('Inspections or full compliance evaluations over the 5-year window'),
|
|
101
|
+
lastInspectionDate: z
|
|
102
|
+
.string()
|
|
103
|
+
.optional()
|
|
104
|
+
.describe('Date of the latest inspection (MM/DD/YYYY)'),
|
|
105
|
+
informalActions: z
|
|
106
|
+
.number()
|
|
107
|
+
.optional()
|
|
108
|
+
.describe('Informal enforcement actions over the 5-year window'),
|
|
109
|
+
formalActions: z
|
|
110
|
+
.number()
|
|
111
|
+
.optional()
|
|
112
|
+
.describe('Formal enforcement actions over the 5-year window'),
|
|
113
|
+
totalPenaltiesInDollars: z
|
|
114
|
+
.number()
|
|
115
|
+
.optional()
|
|
116
|
+
.describe('Penalties from formal enforcement actions over the 5-year window, in dollars'),
|
|
117
|
+
threeYearPeriodStart: z
|
|
118
|
+
.string()
|
|
119
|
+
.optional()
|
|
120
|
+
.describe('Start of the 3-year window (MM/DD/YYYY)'),
|
|
121
|
+
fiveYearPeriodStart: z
|
|
122
|
+
.string()
|
|
123
|
+
.optional()
|
|
124
|
+
.describe('Start of the 5-year window (MM/DD/YYYY)'),
|
|
125
|
+
periodEnd: z.string().optional().describe('End of both windows (MM/DD/YYYY)'),
|
|
126
|
+
})
|
|
127
|
+
.describe("One statute's enforcement and compliance summary"))
|
|
128
|
+
.describe("ECHO's per-statute enforcement and compliance summary. Empty when the facility is in no compliance-tracked program, as for TRI-only facilities."),
|
|
59
129
|
inspections: z
|
|
60
130
|
.array(z
|
|
61
131
|
.object({
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
132
|
+
category: z
|
|
133
|
+
.string()
|
|
134
|
+
.optional()
|
|
135
|
+
.describe('Kind of record, e.g. "Inspection/Evaluation", "Compliance Investigation", "Information Request", "Offsite Record Review"; absent for RCRA and SDWA records'),
|
|
136
|
+
activityType: z
|
|
137
|
+
.string()
|
|
138
|
+
.optional()
|
|
139
|
+
.describe('Inspection or evaluation type, e.g. "FCE On-Site", "PCE Stack Test", "Compliance Evaluation Inspection"'),
|
|
140
|
+
activityDate: z.string().optional().describe('Date of the record (MM/DD/YYYY)'),
|
|
141
|
+
description: z
|
|
142
|
+
.string()
|
|
143
|
+
.optional()
|
|
144
|
+
.describe('Finding ECHO records for the inspection, when it records one'),
|
|
145
|
+
statute: z.string().optional().describe('Statute the record was under'),
|
|
146
|
+
sourceId: z
|
|
147
|
+
.string()
|
|
148
|
+
.optional()
|
|
149
|
+
.describe('Program ID inspected, e.g. an ICIS-Air ID, NPDES permit, RCRA handler ID, or public water system ID'),
|
|
150
|
+
leadAgency: z.string().optional().describe('Lead agency: EPA, State, or Local'),
|
|
65
151
|
})
|
|
66
|
-
.describe('Single inspection
|
|
67
|
-
.describe('
|
|
152
|
+
.describe('Single inspection or other compliance monitoring record'))
|
|
153
|
+
.describe('Inspections, evaluations, investigations, and other compliance monitoring records over the 5-year window, newest first; at most 100 (inspectionsTotal gives the full count)'),
|
|
154
|
+
inspectionsTotal: z
|
|
155
|
+
.number()
|
|
156
|
+
.describe("Compliance monitoring records in ECHO's 5-year history for this facility; inspections lists the newest 100 when there are more"),
|
|
68
157
|
formalActions: z
|
|
69
158
|
.array(z
|
|
70
159
|
.object({
|
|
71
|
-
caseId: z
|
|
72
|
-
|
|
160
|
+
caseId: z
|
|
161
|
+
.string()
|
|
162
|
+
.optional()
|
|
163
|
+
.describe('Enforcement case identifier; absent when ECHO records the action without one, as for RCRA and SDWA actions'),
|
|
164
|
+
settlementDate: z
|
|
165
|
+
.string()
|
|
166
|
+
.optional()
|
|
167
|
+
.describe('Settlement date of the enforcement case (MM/DD/YYYY)'),
|
|
73
168
|
penaltyAssessedInDollars: z
|
|
74
169
|
.number()
|
|
75
170
|
.optional()
|
|
76
171
|
.describe('Penalty amount assessed in dollars'),
|
|
77
|
-
actionType: z
|
|
172
|
+
actionType: z
|
|
173
|
+
.string()
|
|
174
|
+
.optional()
|
|
175
|
+
.describe('Type of formal enforcement action, e.g. "Administrative Order"'),
|
|
176
|
+
actionDate: z.string().optional().describe('Date of the action (MM/DD/YYYY)'),
|
|
177
|
+
statute: z.string().optional().describe('Statute the action was under'),
|
|
178
|
+
sourceId: z.string().optional().describe('Program ID the action concerns'),
|
|
179
|
+
leadAgency: z.string().optional().describe('Lead agency: EPA, State, or Local'),
|
|
78
180
|
})
|
|
79
|
-
.describe('Single formal enforcement action
|
|
80
|
-
.describe('Formal enforcement actions
|
|
181
|
+
.describe('Single formal enforcement action'))
|
|
182
|
+
.describe('Formal enforcement actions over the 5-year window, newest first'),
|
|
81
183
|
airCompliance: z
|
|
82
184
|
.object({
|
|
83
|
-
programId: z
|
|
84
|
-
|
|
85
|
-
|
|
185
|
+
programId: z
|
|
186
|
+
.string()
|
|
187
|
+
.optional()
|
|
188
|
+
.describe('ICIS-Air ID when the facility has exactly one; absent when it has several'),
|
|
189
|
+
status: z.string().optional().describe('Current Clean Air Act compliance status'),
|
|
190
|
+
statusDate: z
|
|
191
|
+
.string()
|
|
192
|
+
.optional()
|
|
193
|
+
.describe('End of the latest quarter the status covers (MM/DD/YYYY)'),
|
|
86
194
|
})
|
|
87
195
|
.optional()
|
|
88
|
-
.describe('
|
|
196
|
+
.describe('Clean Air Act status. Present only when programs.air is true and ECHO reports a CAA status.'),
|
|
89
197
|
waterCompliance: z
|
|
90
198
|
.object({
|
|
91
|
-
programId: z
|
|
92
|
-
|
|
93
|
-
|
|
199
|
+
programId: z
|
|
200
|
+
.string()
|
|
201
|
+
.optional()
|
|
202
|
+
.describe('Not populated: the CWA program ID is the NPDES permit ID, returned as permitId.'),
|
|
203
|
+
status: z.string().optional().describe('Current Clean Water Act compliance status'),
|
|
204
|
+
permitId: z
|
|
205
|
+
.string()
|
|
206
|
+
.optional()
|
|
207
|
+
.describe('NPDES permit ID when the facility has exactly one; absent when it has several'),
|
|
94
208
|
})
|
|
95
209
|
.optional()
|
|
96
|
-
.describe('
|
|
210
|
+
.describe('Clean Water Act status. Present only when programs.water is true and ECHO reports a CWA status.'),
|
|
97
211
|
}),
|
|
212
|
+
enrichment: {
|
|
213
|
+
notice: z
|
|
214
|
+
.string()
|
|
215
|
+
.optional()
|
|
216
|
+
.describe("Present when ECHO's facility search request failed, so complianceStatus and compliance are missing; every other field comes from the facility's detailed report."),
|
|
217
|
+
},
|
|
98
218
|
errors: [
|
|
99
219
|
{
|
|
100
220
|
reason: 'facility_not_found',
|
|
101
221
|
code: JsonRpcErrorCode.NotFound,
|
|
102
|
-
when: 'ECHO
|
|
222
|
+
when: 'ECHO has no facility for the given Registry ID.',
|
|
103
223
|
recovery: 'Verify the Registry ID using epa_search_facilities and retry with a valid ID.',
|
|
224
|
+
thrownBy: 'service',
|
|
104
225
|
},
|
|
105
226
|
],
|
|
106
227
|
async handler(input, ctx) {
|
|
107
228
|
ctx.log.info('epa_get_facility', { registryId: input.registry_id });
|
|
108
|
-
const profile = await getEchoService().getFacility(input.registry_id
|
|
109
|
-
if (!profile.registryId) {
|
|
110
|
-
throw ctx.fail('facility_not_found', `No facility found for Registry ID "${input.registry_id}".`);
|
|
111
|
-
}
|
|
229
|
+
const profile = await getEchoService().getFacility(input.registry_id, ctx);
|
|
112
230
|
ctx.log.info('epa_get_facility completed', {
|
|
113
231
|
registryId: profile.registryId,
|
|
114
232
|
inspections: profile.inspections.length,
|
|
@@ -129,8 +247,14 @@ export const getFacilityTool = tool('epa_get_facility', {
|
|
|
129
247
|
.join(', ');
|
|
130
248
|
if (activePrograms)
|
|
131
249
|
lines.push(`**Programs:** ${activePrograms}`);
|
|
250
|
+
if (result.triFacilityIds.length > 0) {
|
|
251
|
+
lines.push(`**TRI Facility IDs:** ${result.triFacilityIds.join(', ')} (most recent first; for epa_get_tri_releases)`);
|
|
252
|
+
}
|
|
132
253
|
if (result.triReleasesTransfersInLbs !== undefined) {
|
|
133
|
-
|
|
254
|
+
const year = result.triReleasesTransfersYear !== undefined
|
|
255
|
+
? ` (${result.triReleasesTransfersYear})`
|
|
256
|
+
: '';
|
|
257
|
+
lines.push(`**TRI Releases+Transfers${year}:** ${formatLbs(result.triReleasesTransfersInLbs)}`);
|
|
134
258
|
}
|
|
135
259
|
if (result.compliance) {
|
|
136
260
|
lines.push('\n### Compliance Summary');
|
|
@@ -142,10 +266,41 @@ export const getFacilityTool = tool('epa_get_facility', {
|
|
|
142
266
|
lines.push(`**Quarters in Violation (3yr):** ${result.compliance.quartersInViolation}`);
|
|
143
267
|
}
|
|
144
268
|
}
|
|
269
|
+
if (result.programCompliance.length > 0) {
|
|
270
|
+
lines.push('\n### Program Compliance');
|
|
271
|
+
for (const p of result.programCompliance) {
|
|
272
|
+
const parts = [
|
|
273
|
+
p.currentStatus,
|
|
274
|
+
p.quartersInNoncompliance !== undefined &&
|
|
275
|
+
`Quarters in noncompliance: ${p.quartersInNoncompliance} of 12`,
|
|
276
|
+
p.quartersInSignificantNoncompliance !== undefined &&
|
|
277
|
+
`in significant noncompliance: ${p.quartersInSignificantNoncompliance}`,
|
|
278
|
+
p.inspections !== undefined && `Inspections: ${p.inspections}`,
|
|
279
|
+
p.lastInspectionDate && `last ${p.lastInspectionDate}`,
|
|
280
|
+
p.informalActions !== undefined && `Informal actions: ${p.informalActions}`,
|
|
281
|
+
p.formalActions !== undefined && `Formal actions: ${p.formalActions}`,
|
|
282
|
+
p.totalPenaltiesInDollars !== undefined &&
|
|
283
|
+
`Penalties: $${p.totalPenaltiesInDollars.toLocaleString('en-US')}`,
|
|
284
|
+
p.threeYearPeriodStart && `3-year window from ${p.threeYearPeriodStart}`,
|
|
285
|
+
p.fiveYearPeriodStart && `5-year window from ${p.fiveYearPeriodStart}`,
|
|
286
|
+
p.periodEnd && `through ${p.periodEnd}`,
|
|
287
|
+
].filter(Boolean);
|
|
288
|
+
lines.push(`- **${p.statute}:** ${parts.join(' | ') || 'no summary values'}`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
145
291
|
if (result.inspections.length > 0) {
|
|
146
|
-
|
|
292
|
+
const shown = result.inspectionsTotal > result.inspections.length
|
|
293
|
+
? `newest ${result.inspections.length} of ${result.inspectionsTotal}`
|
|
294
|
+
: `${result.inspectionsTotal}`;
|
|
295
|
+
lines.push(`\n### Inspections (${shown})`);
|
|
147
296
|
for (const insp of result.inspections) {
|
|
148
|
-
const parts = [
|
|
297
|
+
const parts = [
|
|
298
|
+
insp.activityDate,
|
|
299
|
+
[insp.statute, insp.sourceId].filter(Boolean).join(' '),
|
|
300
|
+
[insp.category, insp.activityType].filter(Boolean).join(': '),
|
|
301
|
+
insp.leadAgency && `${insp.leadAgency} lead`,
|
|
302
|
+
insp.description,
|
|
303
|
+
]
|
|
149
304
|
.filter(Boolean)
|
|
150
305
|
.join(' — ');
|
|
151
306
|
lines.push(`- ${parts || 'Inspection record (no detail)'}`);
|
|
@@ -154,10 +309,20 @@ export const getFacilityTool = tool('epa_get_facility', {
|
|
|
154
309
|
if (result.formalActions.length > 0) {
|
|
155
310
|
lines.push('\n### Formal Enforcement Actions');
|
|
156
311
|
for (const fa of result.formalActions) {
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
312
|
+
const where = [fa.actionDate, [fa.statute, fa.sourceId].filter(Boolean).join(' ')]
|
|
313
|
+
.filter(Boolean)
|
|
314
|
+
.join(' — ');
|
|
315
|
+
const details = [
|
|
316
|
+
fa.actionType ?? 'Action',
|
|
317
|
+
fa.penaltyAssessedInDollars !== undefined &&
|
|
318
|
+
`Penalty: $${fa.penaltyAssessedInDollars.toLocaleString('en-US')}`,
|
|
319
|
+
fa.caseId && `Case ${fa.caseId}`,
|
|
320
|
+
fa.settlementDate && `Settled ${fa.settlementDate}`,
|
|
321
|
+
fa.leadAgency && `${fa.leadAgency} lead`,
|
|
322
|
+
]
|
|
323
|
+
.filter(Boolean)
|
|
324
|
+
.join(' | ');
|
|
325
|
+
lines.push(`- ${where ? `${where} — ` : ''}${details}`);
|
|
161
326
|
}
|
|
162
327
|
}
|
|
163
328
|
if (result.airCompliance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-facility.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-facility.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"get-facility.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-facility.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,8 @@ export declare const getTriReleasesTool: import("@cyanheads/mcp-ts-core").ToolDe
|
|
|
26
26
|
readonly reason: "no_releases_found";
|
|
27
27
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
28
28
|
readonly when: "No TRI records found for the given facility ID and filters.";
|
|
29
|
-
readonly recovery: "Take the 15-character TRI facility ID from the facilityId field of epa_search_tri_releases. TRI data lags 18 months — try an earlier year.";
|
|
30
|
-
}],
|
|
29
|
+
readonly recovery: "Take the 15-character TRI facility ID from the facilityId field of epa_search_tri_releases, or from epa_get_facility triFacilityIds for a known Registry ID. TRI data lags 18 months — try an earlier year.";
|
|
30
|
+
}], {
|
|
31
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}>;
|
|
31
33
|
//# sourceMappingURL=get-tri-releases.tool.d.ts.map
|
|
@@ -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;AAIjE,eAAO,MAAM,kBAAkB
|
|
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;AAIjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;EAqJ7B,CAAC"}
|
|
@@ -8,13 +8,13 @@ import { formatTriReleaseLines } from '../format-tri-release.js';
|
|
|
8
8
|
import { getDmapService } from '../../../services/dmap/dmap-service.js';
|
|
9
9
|
export const getTriReleasesTool = tool('epa_get_tri_releases', {
|
|
10
10
|
title: 'Get TRI Chemical Releases for Facility',
|
|
11
|
-
description: 'Query Toxic Release Inventory annual chemical release data for a specific facility. Returns per-chemical release records with chemical name, reporting year, routine on-site releases by medium (air, water, land, underground injection), and the one-time / non-routine release quantity. Quantities are in pounds; dioxin and dioxin-like compounds, which TRI has facilities report in grams, are converted and marked with reportedUnit. TRI data lags ~18 months — the most recent available year is typically 2 years prior to the current calendar year. facility_id is the 15-character TRI facility ID: take it from the facilityId field of epa_search_tri_releases, which also identifies top emitters across a region. A 12-digit EPA Registry ID is a different identifier and matches no TRI records.',
|
|
11
|
+
description: 'Query Toxic Release Inventory annual chemical release data for a specific facility. Returns per-chemical release records with chemical name, reporting year, routine on-site releases by medium (air, water, land, underground injection), and the one-time / non-routine release quantity. Quantities are in pounds; dioxin and dioxin-like compounds, which TRI has facilities report in grams, are converted and marked with reportedUnit. TRI data lags ~18 months — the most recent available year is typically 2 years prior to the current calendar year. facility_id is the 15-character TRI facility ID: take it from the facilityId field of epa_search_tri_releases, which also identifies top emitters across a region, or from the triFacilityIds of epa_get_facility for a facility you already hold a Registry ID for. A 12-digit EPA Registry ID is a different identifier and matches no TRI records.',
|
|
12
12
|
annotations: { readOnlyHint: true, openWorldHint: true, idempotentHint: true },
|
|
13
13
|
input: z.object({
|
|
14
14
|
facility_id: z
|
|
15
15
|
.string()
|
|
16
16
|
.min(1)
|
|
17
|
-
.describe('15-character TRI facility ID (e.g. "9867WSNRWD1981S") — the facilityId field returned by epa_search_tri_releases. A 12-digit EPA Registry ID matches no TRI records.'),
|
|
17
|
+
.describe('15-character TRI facility ID (e.g. "9867WSNRWD1981S") — the facilityId field returned by epa_search_tri_releases, or an entry of epa_get_facility triFacilityIds. A 12-digit EPA Registry ID matches no TRI records.'),
|
|
18
18
|
year: z
|
|
19
19
|
.number()
|
|
20
20
|
.int()
|
|
@@ -24,8 +24,9 @@ export const getTriReleasesTool = tool('epa_get_tri_releases', {
|
|
|
24
24
|
.describe('Reporting year to retrieve. Defaults to all available years. TRI data is typically available through ~2 years prior to the current year.'),
|
|
25
25
|
chemical_name: z
|
|
26
26
|
.string()
|
|
27
|
+
.max(4094)
|
|
27
28
|
.optional()
|
|
28
|
-
.describe('Optional filter to restrict results to a specific chemical (partial match, case-insensitive)'),
|
|
29
|
+
.describe('Optional filter to restrict results to a specific chemical (partial match, case-insensitive). Commas, apostrophes, brackets, and Greek letters are matched as written, e.g. "4,4\'-Methylenedianiline".'),
|
|
29
30
|
}),
|
|
30
31
|
output: z.object({
|
|
31
32
|
releases: z
|
|
@@ -67,12 +68,18 @@ export const getTriReleasesTool = tool('epa_get_tri_releases', {
|
|
|
67
68
|
.optional()
|
|
68
69
|
.describe('Recovery hint when no releases are found — suggests alternative years or checking the facility ID. Absent when releases are returned.'),
|
|
69
70
|
}),
|
|
71
|
+
enrichment: {
|
|
72
|
+
notice: z
|
|
73
|
+
.string()
|
|
74
|
+
.optional()
|
|
75
|
+
.describe('Present when a punctuated chemical_name filter read its page limit before finding every filing spelled as given, so more matching records may exist.'),
|
|
76
|
+
},
|
|
70
77
|
errors: [
|
|
71
78
|
{
|
|
72
79
|
reason: 'no_releases_found',
|
|
73
80
|
code: JsonRpcErrorCode.NotFound,
|
|
74
81
|
when: 'No TRI records found for the given facility ID and filters.',
|
|
75
|
-
recovery: 'Take the 15-character TRI facility ID from the facilityId field of epa_search_tri_releases. TRI data lags 18 months — try an earlier year.',
|
|
82
|
+
recovery: 'Take the 15-character TRI facility ID from the facilityId field of epa_search_tri_releases, or from epa_get_facility triFacilityIds for a known Registry ID. TRI data lags 18 months — try an earlier year.',
|
|
76
83
|
},
|
|
77
84
|
],
|
|
78
85
|
async handler(input, ctx) {
|
|
@@ -90,7 +97,7 @@ export const getTriReleasesTool = tool('epa_get_tri_releases', {
|
|
|
90
97
|
return {
|
|
91
98
|
releases: [],
|
|
92
99
|
facilityId: input.facility_id,
|
|
93
|
-
message: `No TRI releases found for facility "${input.facility_id}"${yearNote}${chemNote}. TRI data lags ~18 months — try year ${new Date().getFullYear() - 2} or earlier. Verify the facility ID with epa_search_tri_releases — facility_id is its 15-character facilityId, not a 12-digit EPA Registry ID.`,
|
|
100
|
+
message: `No TRI releases found for facility "${input.facility_id}"${yearNote}${chemNote}. TRI data lags ~18 months — try year ${new Date().getFullYear() - 2} or earlier. Verify the facility ID with epa_search_tri_releases — facility_id is its 15-character facilityId, not a 12-digit EPA Registry ID; epa_get_facility returns a Registry ID's TRI IDs as triFacilityIds.`,
|
|
94
101
|
};
|
|
95
102
|
}
|
|
96
103
|
return { releases, facilityId: input.facility_id };
|
|
@@ -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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE;IAC7D,KAAK,EAAE,wCAAwC;IAC/C,WAAW,EACT,
|
|
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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"}
|