@cyanheads/epa-mcp-server 0.1.4 → 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.
- package/CLAUDE.md +9 -15
- package/Dockerfile +6 -0
- package/README.md +7 -7
- package/changelog/0.1.x/0.1.5.md +24 -0
- package/changelog/0.2.x/0.2.0.md +21 -0
- package/changelog/template.md +9 -1
- package/dist/config/server-config.d.ts +1 -1
- package/dist/config/server-config.d.ts.map +1 -1
- package/dist/config/server-config.js +5 -3
- package/dist/config/server-config.js.map +1 -1
- package/dist/index.js +25 -9
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-air-quality.tool.d.ts +3 -3
- package/dist/mcp-server/tools/definitions/get-air-quality.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-air-quality.tool.js +2 -2
- package/dist/mcp-server/tools/definitions/get-air-quality.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-facility.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/get-facility.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tri-releases.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/get-tri-releases.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +329 -42
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/index.js +11 -2
- package/dist/mcp-server/tools/definitions/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-facilities.tool.d.ts +12 -4
- package/dist/mcp-server/tools/definitions/search-facilities.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-facilities.tool.js +48 -9
- 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 -3
- package/dist/mcp-server/tools/definitions/search-superfund.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-superfund.tool.js +2 -2
- 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 +5 -1
- 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 +10 -0
- 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 +2 -2
- package/dist/mcp-server/tools/definitions/search-violations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-violations.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/search-violations.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-water-systems.tool.d.ts +2 -2
- package/dist/mcp-server/tools/definitions/search-water-systems.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-water-systems.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/search-water-systems.tool.js.map +1 -1
- package/dist/services/airnow/airnow-service.d.ts.map +1 -1
- package/dist/services/airnow/airnow-service.js +5 -0
- package/dist/services/airnow/airnow-service.js.map +1 -1
- package/dist/services/echo/echo-service.d.ts +3 -0
- package/dist/services/echo/echo-service.d.ts.map +1 -1
- package/dist/services/echo/echo-service.js +7 -0
- package/dist/services/echo/echo-service.js.map +1 -1
- package/package.json +10 -7
- package/server.json +7 -7
|
@@ -10,10 +10,17 @@ export { searchSuperfundTool } from './search-superfund.tool.js';
|
|
|
10
10
|
export { searchTriReleasesTool } from './search-tri-releases.tool.js';
|
|
11
11
|
export { searchViolationsTool } from './search-violations.tool.js';
|
|
12
12
|
export { searchWaterSystemsTool } from './search-water-systems.tool.js';
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Tools backed only by keyless public APIs (ECHO, DMAP). Always registered —
|
|
15
|
+
* these require no API key.
|
|
16
|
+
*/
|
|
17
|
+
export declare const coreToolDefinitions: readonly [import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
14
18
|
zip_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
15
19
|
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
16
20
|
city: import("zod").ZodOptional<import("zod").ZodString>;
|
|
21
|
+
latitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
22
|
+
longitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
23
|
+
radius_miles: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
17
24
|
active_only: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
18
25
|
programs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
|
|
19
26
|
CAA: "CAA";
|
|
@@ -52,15 +59,20 @@ export declare const allToolDefinitions: readonly [import("@cyanheads/mcp-ts-cor
|
|
|
52
59
|
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
53
60
|
}, import("zod/v4/core").$strip>, readonly [{
|
|
54
61
|
readonly reason: "no_geographic_filter";
|
|
55
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.
|
|
56
|
-
readonly when: "No geographic filter (zip_code, state, or
|
|
57
|
-
readonly recovery: "Provide at least one of zip_code, state, or city to scope the search.";
|
|
62
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
63
|
+
readonly when: "No geographic filter (zip_code, state, city, or a latitude+longitude+radius_miles triple) was provided.";
|
|
64
|
+
readonly recovery: "Provide at least one of zip_code, state, or city, or a complete latitude + longitude + radius_miles triple, to scope the search.";
|
|
65
|
+
}, {
|
|
66
|
+
readonly reason: "incomplete_proximity";
|
|
67
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
68
|
+
readonly when: "A proximity search was started but latitude, longitude, and radius_miles were not all provided.";
|
|
69
|
+
readonly recovery: "Proximity search needs all three of latitude, longitude, and radius_miles. Provide the missing value, or use zip_code / state / city instead.";
|
|
58
70
|
}, {
|
|
59
71
|
readonly reason: "no_match";
|
|
60
72
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
61
73
|
readonly when: "No facilities matched the search criteria.";
|
|
62
74
|
readonly recovery: "Broaden the search by removing filters or expanding the geographic area.";
|
|
63
|
-
}]>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
75
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
64
76
|
registry_id: import("zod").ZodString;
|
|
65
77
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
66
78
|
registryId: import("zod").ZodString;
|
|
@@ -113,7 +125,7 @@ export declare const allToolDefinitions: readonly [import("@cyanheads/mcp-ts-cor
|
|
|
113
125
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
114
126
|
readonly when: "ECHO returned no facility record for the given Registry ID.";
|
|
115
127
|
readonly recovery: "Verify the Registry ID using epa_search_facilities and retry with a valid ID.";
|
|
116
|
-
}]>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
128
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
117
129
|
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
118
130
|
zip_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
119
131
|
program: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
@@ -150,48 +162,281 @@ export declare const allToolDefinitions: readonly [import("@cyanheads/mcp-ts-cor
|
|
|
150
162
|
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
151
163
|
}, import("zod/v4/core").$strip>, readonly [{
|
|
152
164
|
readonly reason: "no_geographic_filter";
|
|
153
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.
|
|
165
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
154
166
|
readonly when: "Neither state nor zip_code was provided.";
|
|
155
167
|
readonly recovery: "Provide at least one of state or zip_code to scope the enforcement case search.";
|
|
156
|
-
}]>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
168
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
169
|
+
facility_id: import("zod").ZodString;
|
|
170
|
+
year: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
171
|
+
chemical_name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
172
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
173
|
+
releases: import("zod").ZodArray<import("zod").ZodObject<{
|
|
174
|
+
facilityId: import("zod").ZodString;
|
|
175
|
+
chemicalName: import("zod").ZodString;
|
|
176
|
+
reportingYear: import("zod").ZodNumber;
|
|
177
|
+
totalReleasesInLbs: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
178
|
+
}, import("zod/v4/core").$strip>>;
|
|
179
|
+
facilityId: import("zod").ZodString;
|
|
180
|
+
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
181
|
+
}, import("zod/v4/core").$strip>, readonly [{
|
|
182
|
+
readonly reason: "no_releases_found";
|
|
183
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
184
|
+
readonly when: "No TRI records found for the given facility ID and filters.";
|
|
185
|
+
readonly recovery: "Verify the facility ID via epa_search_facilities. TRI data lags 18 months — try an earlier year.";
|
|
186
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
187
|
+
state: import("zod").ZodString;
|
|
188
|
+
county: import("zod").ZodOptional<import("zod").ZodString>;
|
|
189
|
+
year: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
190
|
+
chemical_name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
191
|
+
limit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
192
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
193
|
+
releases: import("zod").ZodArray<import("zod").ZodObject<{
|
|
194
|
+
facilityId: import("zod").ZodString;
|
|
195
|
+
facilityName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
196
|
+
chemicalName: import("zod").ZodString;
|
|
197
|
+
reportingYear: import("zod").ZodNumber;
|
|
198
|
+
totalReleasesInLbs: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
199
|
+
}, import("zod/v4/core").$strip>>;
|
|
200
|
+
state: import("zod").ZodString;
|
|
201
|
+
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
202
|
+
}, import("zod/v4/core").$strip>, readonly [{
|
|
203
|
+
readonly reason: "no_releases_found";
|
|
204
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
205
|
+
readonly when: "No TRI records found for the given state and filters.";
|
|
206
|
+
readonly recovery: "Verify the state abbreviation is valid. TRI data lags 18 months — try removing the year filter or using an earlier year.";
|
|
207
|
+
}], {
|
|
208
|
+
readonly truncated: import("zod").ZodBoolean;
|
|
209
|
+
readonly shown: import("zod").ZodNumber;
|
|
210
|
+
readonly cap: import("zod").ZodNumber;
|
|
211
|
+
}>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
212
|
+
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
213
|
+
city: import("zod").ZodOptional<import("zod").ZodString>;
|
|
157
214
|
zip_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
158
215
|
latitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
159
216
|
longitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
217
|
+
radius_miles: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
218
|
+
npl_status: import("zod").ZodDefault<import("zod").ZodEnum<{
|
|
219
|
+
all: "all";
|
|
220
|
+
listed: "listed";
|
|
221
|
+
"not-listed": "not-listed";
|
|
222
|
+
proposed: "proposed";
|
|
163
223
|
}>>;
|
|
164
|
-
|
|
165
|
-
distance_miles: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
224
|
+
limit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
166
225
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
226
|
+
sites: import("zod").ZodArray<import("zod").ZodObject<{
|
|
227
|
+
siteId: import("zod").ZodString;
|
|
228
|
+
name: import("zod").ZodString;
|
|
229
|
+
street: import("zod").ZodOptional<import("zod").ZodString>;
|
|
230
|
+
city: import("zod").ZodOptional<import("zod").ZodString>;
|
|
231
|
+
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
232
|
+
zip: import("zod").ZodOptional<import("zod").ZodString>;
|
|
233
|
+
county: import("zod").ZodOptional<import("zod").ZodString>;
|
|
234
|
+
fipsCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
235
|
+
nplStatus: import("zod").ZodOptional<import("zod").ZodString>;
|
|
236
|
+
cleanupStatus: import("zod").ZodOptional<import("zod").ZodString>;
|
|
170
237
|
latitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
171
238
|
longitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
172
|
-
dateObserved: import("zod").ZodOptional<import("zod").ZodString>;
|
|
173
|
-
hourObserved: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
174
|
-
localTimeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
175
|
-
readings: import("zod").ZodArray<import("zod").ZodObject<{
|
|
176
|
-
parameterName: import("zod").ZodString;
|
|
177
|
-
aqi: import("zod").ZodNumber;
|
|
178
|
-
categoryNumber: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
179
|
-
categoryName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
180
|
-
}, import("zod/v4/core").$strip>>;
|
|
181
239
|
}, import("zod/v4/core").$strip>>;
|
|
182
|
-
|
|
240
|
+
totalCount: import("zod").ZodNumber;
|
|
183
241
|
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
184
242
|
}, import("zod/v4/core").$strip>, readonly [{
|
|
185
|
-
readonly reason: "
|
|
186
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.
|
|
187
|
-
readonly when: "
|
|
188
|
-
readonly recovery: "Provide
|
|
243
|
+
readonly reason: "no_location_filter";
|
|
244
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
245
|
+
readonly when: "No location filter (state, city, zip_code, or latitude+longitude) was provided.";
|
|
246
|
+
readonly recovery: "Provide at least one location filter: state, city, zip_code, or latitude+longitude+radius_miles.";
|
|
189
247
|
}, {
|
|
190
|
-
readonly reason: "
|
|
191
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.
|
|
192
|
-
readonly when: "
|
|
193
|
-
readonly recovery: "Provide
|
|
194
|
-
}]>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
248
|
+
readonly reason: "radius_required";
|
|
249
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
250
|
+
readonly when: "Latitude and longitude were provided without radius_miles.";
|
|
251
|
+
readonly recovery: "Provide radius_miles together with latitude and longitude for a proximity search.";
|
|
252
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
253
|
+
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
254
|
+
zip_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
255
|
+
has_violation: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
256
|
+
pws_type: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
257
|
+
community: "community";
|
|
258
|
+
"non-transient": "non-transient";
|
|
259
|
+
transient: "transient";
|
|
260
|
+
}>>;
|
|
261
|
+
limit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
262
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
263
|
+
systems: import("zod").ZodArray<import("zod").ZodObject<{
|
|
264
|
+
pwsid: import("zod").ZodString;
|
|
265
|
+
name: import("zod").ZodString;
|
|
266
|
+
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
267
|
+
city: import("zod").ZodOptional<import("zod").ZodString>;
|
|
268
|
+
zip: import("zod").ZodOptional<import("zod").ZodString>;
|
|
269
|
+
type: import("zod").ZodOptional<import("zod").ZodString>;
|
|
270
|
+
populationServed: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
271
|
+
primarySourceCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
272
|
+
hasViolation: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
273
|
+
isActive: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
274
|
+
}, import("zod/v4/core").$strip>>;
|
|
275
|
+
totalCount: import("zod").ZodNumber;
|
|
276
|
+
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
277
|
+
}, import("zod/v4/core").$strip>, readonly [{
|
|
278
|
+
readonly reason: "no_geographic_filter";
|
|
279
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
280
|
+
readonly when: "Neither state nor zip_code was provided.";
|
|
281
|
+
readonly recovery: "Provide at least one of state or zip_code to search drinking water systems.";
|
|
282
|
+
}], undefined>];
|
|
283
|
+
/**
|
|
284
|
+
* Full tool surface, adding epa_get_air_quality (requires AIRNOW_API_KEY).
|
|
285
|
+
* index.ts registers this set when the key is configured, falling back to
|
|
286
|
+
* coreToolDefinitions when it is absent.
|
|
287
|
+
*/
|
|
288
|
+
export declare const allToolDefinitions: readonly [import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
289
|
+
zip_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
290
|
+
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
291
|
+
city: import("zod").ZodOptional<import("zod").ZodString>;
|
|
292
|
+
latitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
293
|
+
longitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
294
|
+
radius_miles: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
295
|
+
active_only: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
296
|
+
programs: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
|
|
297
|
+
CAA: "CAA";
|
|
298
|
+
CWA: "CWA";
|
|
299
|
+
RCRA: "RCRA";
|
|
300
|
+
TRI: "TRI";
|
|
301
|
+
SDWA: "SDWA";
|
|
302
|
+
}>>>;
|
|
303
|
+
has_violation: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
304
|
+
limit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
305
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
306
|
+
facilities: import("zod").ZodArray<import("zod").ZodObject<{
|
|
307
|
+
registryId: import("zod").ZodString;
|
|
308
|
+
name: import("zod").ZodString;
|
|
309
|
+
street: import("zod").ZodOptional<import("zod").ZodString>;
|
|
310
|
+
city: import("zod").ZodOptional<import("zod").ZodString>;
|
|
311
|
+
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
312
|
+
zip: import("zod").ZodOptional<import("zod").ZodString>;
|
|
313
|
+
county: import("zod").ZodOptional<import("zod").ZodString>;
|
|
314
|
+
fipsCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
315
|
+
latitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
316
|
+
longitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
317
|
+
complianceStatus: import("zod").ZodOptional<import("zod").ZodString>;
|
|
318
|
+
programs: import("zod").ZodObject<{
|
|
319
|
+
air: import("zod").ZodBoolean;
|
|
320
|
+
water: import("zod").ZodBoolean;
|
|
321
|
+
rcra: import("zod").ZodBoolean;
|
|
322
|
+
tri: import("zod").ZodBoolean;
|
|
323
|
+
sdwa: import("zod").ZodBoolean;
|
|
324
|
+
}, import("zod/v4/core").$strip>;
|
|
325
|
+
triReleasesTransfersInLbs: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
326
|
+
inspectionCount: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
327
|
+
totalPenaltiesInDollars: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
328
|
+
}, import("zod/v4/core").$strip>>;
|
|
329
|
+
totalCount: import("zod").ZodNumber;
|
|
330
|
+
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
331
|
+
}, import("zod/v4/core").$strip>, readonly [{
|
|
332
|
+
readonly reason: "no_geographic_filter";
|
|
333
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
334
|
+
readonly when: "No geographic filter (zip_code, state, city, or a latitude+longitude+radius_miles triple) was provided.";
|
|
335
|
+
readonly recovery: "Provide at least one of zip_code, state, or city, or a complete latitude + longitude + radius_miles triple, to scope the search.";
|
|
336
|
+
}, {
|
|
337
|
+
readonly reason: "incomplete_proximity";
|
|
338
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
339
|
+
readonly when: "A proximity search was started but latitude, longitude, and radius_miles were not all provided.";
|
|
340
|
+
readonly recovery: "Proximity search needs all three of latitude, longitude, and radius_miles. Provide the missing value, or use zip_code / state / city instead.";
|
|
341
|
+
}, {
|
|
342
|
+
readonly reason: "no_match";
|
|
343
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
344
|
+
readonly when: "No facilities matched the search criteria.";
|
|
345
|
+
readonly recovery: "Broaden the search by removing filters or expanding the geographic area.";
|
|
346
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
347
|
+
registry_id: import("zod").ZodString;
|
|
348
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
349
|
+
registryId: import("zod").ZodString;
|
|
350
|
+
name: import("zod").ZodString;
|
|
351
|
+
street: import("zod").ZodOptional<import("zod").ZodString>;
|
|
352
|
+
city: import("zod").ZodOptional<import("zod").ZodString>;
|
|
353
|
+
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
354
|
+
zip: import("zod").ZodOptional<import("zod").ZodString>;
|
|
355
|
+
county: import("zod").ZodOptional<import("zod").ZodString>;
|
|
356
|
+
fipsCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
357
|
+
latitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
358
|
+
longitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
359
|
+
complianceStatus: import("zod").ZodOptional<import("zod").ZodString>;
|
|
360
|
+
programs: import("zod").ZodObject<{
|
|
361
|
+
air: import("zod").ZodBoolean;
|
|
362
|
+
water: import("zod").ZodBoolean;
|
|
363
|
+
rcra: import("zod").ZodBoolean;
|
|
364
|
+
tri: import("zod").ZodBoolean;
|
|
365
|
+
sdwa: import("zod").ZodBoolean;
|
|
366
|
+
}, import("zod/v4/core").$strip>;
|
|
367
|
+
triReleasesTransfersInLbs: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
368
|
+
compliance: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
369
|
+
mediaStatusCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
370
|
+
mediaStatusDescription: import("zod").ZodOptional<import("zod").ZodString>;
|
|
371
|
+
quartersInViolation: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
372
|
+
}, import("zod/v4/core").$strip>>;
|
|
373
|
+
inspections: import("zod").ZodArray<import("zod").ZodObject<{
|
|
374
|
+
activityType: import("zod").ZodOptional<import("zod").ZodString>;
|
|
375
|
+
activityDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
376
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
377
|
+
}, import("zod/v4/core").$strip>>;
|
|
378
|
+
formalActions: import("zod").ZodArray<import("zod").ZodObject<{
|
|
379
|
+
caseId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
380
|
+
settlementDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
381
|
+
penaltyAssessedInDollars: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
382
|
+
actionType: import("zod").ZodOptional<import("zod").ZodString>;
|
|
383
|
+
}, import("zod/v4/core").$strip>>;
|
|
384
|
+
airCompliance: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
385
|
+
programId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
386
|
+
status: import("zod").ZodOptional<import("zod").ZodString>;
|
|
387
|
+
statusDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
388
|
+
}, import("zod/v4/core").$strip>>;
|
|
389
|
+
waterCompliance: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
390
|
+
programId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
391
|
+
status: import("zod").ZodOptional<import("zod").ZodString>;
|
|
392
|
+
permitId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
393
|
+
}, import("zod/v4/core").$strip>>;
|
|
394
|
+
}, import("zod/v4/core").$strip>, readonly [{
|
|
395
|
+
readonly reason: "facility_not_found";
|
|
396
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
397
|
+
readonly when: "ECHO returned no facility record for the given Registry ID.";
|
|
398
|
+
readonly recovery: "Verify the Registry ID using epa_search_facilities and retry with a valid ID.";
|
|
399
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
400
|
+
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
401
|
+
zip_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
402
|
+
program: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
403
|
+
CAA: "CAA";
|
|
404
|
+
CWA: "CWA";
|
|
405
|
+
RCRA: "RCRA";
|
|
406
|
+
SDWA: "SDWA";
|
|
407
|
+
CERCLA: "CERCLA";
|
|
408
|
+
FIFRA: "FIFRA";
|
|
409
|
+
TSCA: "TSCA";
|
|
410
|
+
}>>;
|
|
411
|
+
case_type: import("zod").ZodDefault<import("zod").ZodEnum<{
|
|
412
|
+
all: "all";
|
|
413
|
+
criminal: "criminal";
|
|
414
|
+
civil: "civil";
|
|
415
|
+
}>>;
|
|
416
|
+
date_filed_start: import("zod").ZodOptional<import("zod").ZodString>;
|
|
417
|
+
date_filed_end: import("zod").ZodOptional<import("zod").ZodString>;
|
|
418
|
+
limit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
419
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
420
|
+
cases: import("zod").ZodArray<import("zod").ZodObject<{
|
|
421
|
+
caseId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
422
|
+
caseName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
423
|
+
facilityName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
424
|
+
registryId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
425
|
+
programsViolated: import("zod").ZodOptional<import("zod").ZodString>;
|
|
426
|
+
caseType: import("zod").ZodOptional<import("zod").ZodString>;
|
|
427
|
+
penaltyAssessedInDollars: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
428
|
+
settlementDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
429
|
+
filedDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
430
|
+
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
431
|
+
}, import("zod/v4/core").$strip>>;
|
|
432
|
+
totalCount: import("zod").ZodNumber;
|
|
433
|
+
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
434
|
+
}, import("zod/v4/core").$strip>, readonly [{
|
|
435
|
+
readonly reason: "no_geographic_filter";
|
|
436
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
437
|
+
readonly when: "Neither state nor zip_code was provided.";
|
|
438
|
+
readonly recovery: "Provide at least one of state or zip_code to scope the enforcement case search.";
|
|
439
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
195
440
|
facility_id: import("zod").ZodString;
|
|
196
441
|
year: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
197
442
|
chemical_name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -209,7 +454,7 @@ export declare const allToolDefinitions: readonly [import("@cyanheads/mcp-ts-cor
|
|
|
209
454
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
210
455
|
readonly when: "No TRI records found for the given facility ID and filters.";
|
|
211
456
|
readonly recovery: "Verify the facility ID via epa_search_facilities. TRI data lags 18 months — try an earlier year.";
|
|
212
|
-
}]>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
457
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
213
458
|
state: import("zod").ZodString;
|
|
214
459
|
county: import("zod").ZodOptional<import("zod").ZodString>;
|
|
215
460
|
year: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
@@ -230,7 +475,11 @@ export declare const allToolDefinitions: readonly [import("@cyanheads/mcp-ts-cor
|
|
|
230
475
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
231
476
|
readonly when: "No TRI records found for the given state and filters.";
|
|
232
477
|
readonly recovery: "Verify the state abbreviation is valid. TRI data lags 18 months — try removing the year filter or using an earlier year.";
|
|
233
|
-
}]
|
|
478
|
+
}], {
|
|
479
|
+
readonly truncated: import("zod").ZodBoolean;
|
|
480
|
+
readonly shown: import("zod").ZodNumber;
|
|
481
|
+
readonly cap: import("zod").ZodNumber;
|
|
482
|
+
}>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
234
483
|
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
235
484
|
city: import("zod").ZodOptional<import("zod").ZodString>;
|
|
236
485
|
zip_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -263,15 +512,15 @@ export declare const allToolDefinitions: readonly [import("@cyanheads/mcp-ts-cor
|
|
|
263
512
|
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
264
513
|
}, import("zod/v4/core").$strip>, readonly [{
|
|
265
514
|
readonly reason: "no_location_filter";
|
|
266
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.
|
|
515
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
267
516
|
readonly when: "No location filter (state, city, zip_code, or latitude+longitude) was provided.";
|
|
268
517
|
readonly recovery: "Provide at least one location filter: state, city, zip_code, or latitude+longitude+radius_miles.";
|
|
269
518
|
}, {
|
|
270
519
|
readonly reason: "radius_required";
|
|
271
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.
|
|
520
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
272
521
|
readonly when: "Latitude and longitude were provided without radius_miles.";
|
|
273
522
|
readonly recovery: "Provide radius_miles together with latitude and longitude for a proximity search.";
|
|
274
|
-
}]>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
523
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
275
524
|
state: import("zod").ZodOptional<import("zod").ZodString>;
|
|
276
525
|
zip_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
277
526
|
has_violation: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
@@ -298,8 +547,46 @@ export declare const allToolDefinitions: readonly [import("@cyanheads/mcp-ts-cor
|
|
|
298
547
|
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
299
548
|
}, import("zod/v4/core").$strip>, readonly [{
|
|
300
549
|
readonly reason: "no_geographic_filter";
|
|
301
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.
|
|
550
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
302
551
|
readonly when: "Neither state nor zip_code was provided.";
|
|
303
552
|
readonly recovery: "Provide at least one of state or zip_code to search drinking water systems.";
|
|
304
|
-
}]
|
|
553
|
+
}], undefined>, import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
554
|
+
zip_code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
555
|
+
latitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
556
|
+
longitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
557
|
+
mode: import("zod").ZodDefault<import("zod").ZodEnum<{
|
|
558
|
+
current: "current";
|
|
559
|
+
forecast: "forecast";
|
|
560
|
+
}>>;
|
|
561
|
+
forecast_date: import("zod").ZodOptional<import("zod").ZodString>;
|
|
562
|
+
distance_miles: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
563
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
564
|
+
observations: import("zod").ZodArray<import("zod").ZodObject<{
|
|
565
|
+
reportingArea: import("zod").ZodOptional<import("zod").ZodString>;
|
|
566
|
+
stateCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
567
|
+
latitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
568
|
+
longitude: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
569
|
+
dateObserved: import("zod").ZodOptional<import("zod").ZodString>;
|
|
570
|
+
hourObserved: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
571
|
+
localTimeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
572
|
+
readings: import("zod").ZodArray<import("zod").ZodObject<{
|
|
573
|
+
parameterName: import("zod").ZodString;
|
|
574
|
+
aqi: import("zod").ZodNumber;
|
|
575
|
+
categoryNumber: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
576
|
+
categoryName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
577
|
+
}, import("zod/v4/core").$strip>>;
|
|
578
|
+
}, import("zod/v4/core").$strip>>;
|
|
579
|
+
mode: import("zod").ZodString;
|
|
580
|
+
message: import("zod").ZodOptional<import("zod").ZodString>;
|
|
581
|
+
}, import("zod/v4/core").$strip>, readonly [{
|
|
582
|
+
readonly reason: "no_location";
|
|
583
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
584
|
+
readonly when: "Neither zip_code nor latitude+longitude was provided.";
|
|
585
|
+
readonly recovery: "Provide either zip_code or both latitude and longitude to identify the location.";
|
|
586
|
+
}, {
|
|
587
|
+
readonly reason: "forecast_date_required";
|
|
588
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
589
|
+
readonly when: "Mode is \"forecast\" but forecast_date was not provided.";
|
|
590
|
+
readonly recovery: "Provide forecast_date as YYYY-MM-DD when using mode=\"forecast\".";
|
|
591
|
+
}], undefined>];
|
|
305
592
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAWxE,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAWxE;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAQtB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAAuD,CAAC"}
|
|
@@ -18,14 +18,23 @@ import { searchSuperfundTool } from './search-superfund.tool.js';
|
|
|
18
18
|
import { searchTriReleasesTool } from './search-tri-releases.tool.js';
|
|
19
19
|
import { searchViolationsTool } from './search-violations.tool.js';
|
|
20
20
|
import { searchWaterSystemsTool } from './search-water-systems.tool.js';
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Tools backed only by keyless public APIs (ECHO, DMAP). Always registered —
|
|
23
|
+
* these require no API key.
|
|
24
|
+
*/
|
|
25
|
+
export const coreToolDefinitions = [
|
|
22
26
|
searchFacilitiesTool,
|
|
23
27
|
getFacilityTool,
|
|
24
28
|
searchViolationsTool,
|
|
25
|
-
getAirQualityTool,
|
|
26
29
|
getTriReleasesTool,
|
|
27
30
|
searchTriReleasesTool,
|
|
28
31
|
searchSuperfundTool,
|
|
29
32
|
searchWaterSystemsTool,
|
|
30
33
|
];
|
|
34
|
+
/**
|
|
35
|
+
* Full tool surface, adding epa_get_air_quality (requires AIRNOW_API_KEY).
|
|
36
|
+
* index.ts registers this set when the key is configured, falling back to
|
|
37
|
+
* coreToolDefinitions when it is absent.
|
|
38
|
+
*/
|
|
39
|
+
export const allToolDefinitions = [...coreToolDefinitions, getAirQualityTool];
|
|
31
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,oBAAoB;IACpB,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,qBAAqB;IACrB,mBAAmB;IACnB,sBAAsB;CACd,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,mBAAmB,EAAE,iBAAiB,CAAU,CAAC"}
|
|
@@ -8,6 +8,9 @@ export declare const searchFacilitiesTool: import("@cyanheads/mcp-ts-core").Tool
|
|
|
8
8
|
zip_code: z.ZodOptional<z.ZodString>;
|
|
9
9
|
state: z.ZodOptional<z.ZodString>;
|
|
10
10
|
city: z.ZodOptional<z.ZodString>;
|
|
11
|
+
latitude: z.ZodOptional<z.ZodNumber>;
|
|
12
|
+
longitude: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
radius_miles: z.ZodOptional<z.ZodNumber>;
|
|
11
14
|
active_only: z.ZodOptional<z.ZodBoolean>;
|
|
12
15
|
programs: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
13
16
|
CAA: "CAA";
|
|
@@ -46,13 +49,18 @@ export declare const searchFacilitiesTool: import("@cyanheads/mcp-ts-core").Tool
|
|
|
46
49
|
message: z.ZodOptional<z.ZodString>;
|
|
47
50
|
}, z.core.$strip>, readonly [{
|
|
48
51
|
readonly reason: "no_geographic_filter";
|
|
49
|
-
readonly code: JsonRpcErrorCode.
|
|
50
|
-
readonly when: "No geographic filter (zip_code, state, or
|
|
51
|
-
readonly recovery: "Provide at least one of zip_code, state, or city to scope the search.";
|
|
52
|
+
readonly code: JsonRpcErrorCode.ValidationError;
|
|
53
|
+
readonly when: "No geographic filter (zip_code, state, city, or a latitude+longitude+radius_miles triple) was provided.";
|
|
54
|
+
readonly recovery: "Provide at least one of zip_code, state, or city, or a complete latitude + longitude + radius_miles triple, to scope the search.";
|
|
55
|
+
}, {
|
|
56
|
+
readonly reason: "incomplete_proximity";
|
|
57
|
+
readonly code: JsonRpcErrorCode.ValidationError;
|
|
58
|
+
readonly when: "A proximity search was started but latitude, longitude, and radius_miles were not all provided.";
|
|
59
|
+
readonly recovery: "Proximity search needs all three of latitude, longitude, and radius_miles. Provide the missing value, or use zip_code / state / city instead.";
|
|
52
60
|
}, {
|
|
53
61
|
readonly reason: "no_match";
|
|
54
62
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
55
63
|
readonly when: "No facilities matched the search criteria.";
|
|
56
64
|
readonly recovery: "Broaden the search by removing filters or expanding the geographic area.";
|
|
57
|
-
}]>;
|
|
65
|
+
}], undefined>;
|
|
58
66
|
//# sourceMappingURL=search-facilities.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-facilities.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-facilities.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,oBAAoB
|
|
1
|
+
{"version":3,"file":"search-facilities.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-facilities.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,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2P/B,CAAC"}
|