gov-data-mcp 1.2.6 → 1.2.7
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/package.json +1 -1
- package/src/catalog.json +53 -33
- package/src/tools.js +44 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gov-data-mcp",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.7",
|
|
4
4
|
"mcpName": "io.github.malonestar/gov-data-mcp",
|
|
5
5
|
"description": "MCP server exposing published US government open-data tools (EPA, FEMA, USGS, NOAA, FAA, USACE, FDIC, HUD, state licensing boards) as agent-callable tools, backed by Apify Actors.",
|
|
6
6
|
"type": "module",
|
package/src/catalog.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-
|
|
2
|
+
"generatedAt": "2026-11-02T04:14:45.035Z",
|
|
3
3
|
"owner": "malonestar",
|
|
4
4
|
"count": 123,
|
|
5
5
|
"actors": [
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
},
|
|
86
86
|
"maxResults": {
|
|
87
87
|
"type": "integer",
|
|
88
|
-
"description": "Maximum number of lead rows to emit (caps your cost — you are billed per result row). Hard cap 10,000 per run. Example: 100.",
|
|
88
|
+
"description": "Maximum number of lead rows to emit (caps your cost — you are billed per result row). Hard cap 10,000 per run. Example: 40. Applied by default if omitted: 100.",
|
|
89
89
|
"minimum": 1,
|
|
90
90
|
"maximum": 10000
|
|
91
91
|
}
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"county": "cook-il",
|
|
96
96
|
"absenteeTier": "out_of_state",
|
|
97
97
|
"propertyClassPrefix": "2",
|
|
98
|
-
"maxResults":
|
|
98
|
+
"maxResults": 40
|
|
99
99
|
},
|
|
100
100
|
"mustSupply": [],
|
|
101
101
|
"examples": [
|
|
@@ -195,6 +195,12 @@
|
|
|
195
195
|
"description": "A deed is flagged cash_sale=true when no mortgage (MTGE) is recorded against the same borough-block-lot within this many days of the deed recording date. cash_sale is null (never true) when the mortgage lookup could not be completed for that parcel - see mortgage_status. Applied by default if omitted: 45.",
|
|
196
196
|
"minimum": 1,
|
|
197
197
|
"maximum": 180
|
|
198
|
+
},
|
|
199
|
+
"runBudgetSeconds": {
|
|
200
|
+
"type": "integer",
|
|
201
|
+
"description": "Optional wall-clock budget for the whole run. NYC Open Data (data.cityofnewyork.us) is sometimes very slow; with a budget the run ends on time instead of dragging on. If the budget is reached before any deed can be answered, the run FAILS and nothing is billed. If it is reached later, the deeds already joined are emitted and every row says what was cut (run_deadline_hit=true, run_deadline_note): a cut mortgage lookup leaves cash_sale null (never true), a cut Parties batch leaves the buyer/seller flags null, and a cut scan may return fewer deeds than maxResults. Leave empty for no budget (the run takes as long as the source needs). Example: 240.",
|
|
202
|
+
"minimum": 30,
|
|
203
|
+
"maximum": 3600
|
|
198
204
|
}
|
|
199
205
|
}
|
|
200
206
|
},
|
|
@@ -204,7 +210,8 @@
|
|
|
204
210
|
],
|
|
205
211
|
"docTypes": [
|
|
206
212
|
"DEED"
|
|
207
|
-
]
|
|
213
|
+
],
|
|
214
|
+
"runBudgetSeconds": 240
|
|
208
215
|
},
|
|
209
216
|
"mustSupply": [],
|
|
210
217
|
"examples": [
|
|
@@ -2546,6 +2553,12 @@
|
|
|
2546
2553
|
"description": "Maximum number of ranked parcel leads to emit (highest distress score first). You are billed per result, so this caps your spend. Example: 100.",
|
|
2547
2554
|
"minimum": 1,
|
|
2548
2555
|
"maximum": 5000
|
|
2556
|
+
},
|
|
2557
|
+
"runBudgetSeconds": {
|
|
2558
|
+
"type": "integer",
|
|
2559
|
+
"description": "Optional wall-clock budget for the New York City leg. NYC Open Data (data.cityofnewyork.us) is sometimes very slow; with a budget the run ends on time instead of dragging on. If the budget runs out before all three distress signal sources are read in full, the run FAILS and nothing is billed (a score over part of the data would be wrong). If it runs out only while owner contacts are being fetched, the ranked parcels are still emitted with complete scores and every row says so: run_deadline_hit=true and owner_contact_checked=false. Leave empty for no budget (the run takes as long as the source needs). Detroit, Philadelphia and Chicago are not budgeted. Example: 240.",
|
|
2560
|
+
"minimum": 30,
|
|
2561
|
+
"maximum": 3600
|
|
2549
2562
|
}
|
|
2550
2563
|
}
|
|
2551
2564
|
},
|
|
@@ -2556,7 +2569,8 @@
|
|
|
2556
2569
|
"borough": "BRONX",
|
|
2557
2570
|
"minSignals": 2,
|
|
2558
2571
|
"lookbackMonths": 12,
|
|
2559
|
-
"maxResults": 100
|
|
2572
|
+
"maxResults": 100,
|
|
2573
|
+
"runBudgetSeconds": 240
|
|
2560
2574
|
},
|
|
2561
2575
|
"mustSupply": [],
|
|
2562
2576
|
"examples": [
|
|
@@ -3785,7 +3799,7 @@
|
|
|
3785
3799
|
},
|
|
3786
3800
|
"runBudgetSeconds": {
|
|
3787
3801
|
"type": "integer",
|
|
3788
|
-
"description": "Total time budget for all upstream requests including retries. Requests stop rather than retry past this budget, so a long EPA outage fails loudly instead of hanging. Example:
|
|
3802
|
+
"description": "Total time budget for all upstream requests including retries. Requests stop rather than retry past this budget, so a long EPA outage fails loudly instead of hanging. Prefilled at 240 s so a demo or QA run finishes inside Apify's 5-minute limit even when EPA is slow; when omitted the run allows 900 s. Example: 240.",
|
|
3789
3803
|
"minimum": 60,
|
|
3790
3804
|
"maximum": 7200
|
|
3791
3805
|
},
|
|
@@ -3834,7 +3848,7 @@
|
|
|
3834
3848
|
"violationYears": 10,
|
|
3835
3849
|
"maxViolationDetails": 25,
|
|
3836
3850
|
"maxAssets": 250,
|
|
3837
|
-
"runBudgetSeconds":
|
|
3851
|
+
"runBudgetSeconds": 240,
|
|
3838
3852
|
"refreshPfasCache": false,
|
|
3839
3853
|
"simulateOutage": "none"
|
|
3840
3854
|
},
|
|
@@ -5844,7 +5858,7 @@
|
|
|
5844
5858
|
"properties": {
|
|
5845
5859
|
"state": {
|
|
5846
5860
|
"type": "string",
|
|
5847
|
-
"description": "US state to scope the cohort, e.g. CA, TX, NY. Strongly recommended: it focuses the run and makes peer percentiles state-level. Empty = the entire country (slower; national peer scoring). Example: \"
|
|
5861
|
+
"description": "US state to scope the cohort, e.g. CA, TX, NY. Strongly recommended: it focuses the run and makes peer percentiles state-level. Empty = the entire country (slower; national peer scoring). Example: \"CO\"."
|
|
5848
5862
|
},
|
|
5849
5863
|
"institutionType": {
|
|
5850
5864
|
"type": "string",
|
|
@@ -5914,7 +5928,7 @@
|
|
|
5914
5928
|
}
|
|
5915
5929
|
},
|
|
5916
5930
|
"exampleInput": {
|
|
5917
|
-
"state": "
|
|
5931
|
+
"state": "CO",
|
|
5918
5932
|
"institutionType": "bank",
|
|
5919
5933
|
"mode": "stress",
|
|
5920
5934
|
"peerBasis": "business_line",
|
|
@@ -8622,7 +8636,7 @@
|
|
|
8622
8636
|
},
|
|
8623
8637
|
"maxResults": {
|
|
8624
8638
|
"type": "integer",
|
|
8625
|
-
"description": "Maximum number of unified property rows to push to the dataset (each row = 1 billed result). 1-25000. Example:
|
|
8639
|
+
"description": "Maximum number of unified property rows to push to the dataset (each row = 1 billed result). 1-25000. Example: 150. Applied by default if omitted: 1000.",
|
|
8626
8640
|
"minimum": 1,
|
|
8627
8641
|
"maximum": 25000
|
|
8628
8642
|
}
|
|
@@ -8641,7 +8655,7 @@
|
|
|
8641
8655
|
"PUBLIC_HOUSING"
|
|
8642
8656
|
],
|
|
8643
8657
|
"includeOpportunityZoneFlag": true,
|
|
8644
|
-
"maxResults":
|
|
8658
|
+
"maxResults": 150
|
|
8645
8659
|
},
|
|
8646
8660
|
"mustSupply": [
|
|
8647
8661
|
"states"
|
|
@@ -8699,7 +8713,7 @@
|
|
|
8699
8713
|
"properties": {
|
|
8700
8714
|
"assets": {
|
|
8701
8715
|
"type": "array",
|
|
8702
|
-
"description": "List of points to check against the HUD designations that grant the 130% LIHTC eligible-basis boost under IRC Sec. 42(d)(5)(B): Qualified Census Tracts (current and prior year) and Difficult Development Areas. Each item is an object with numeric lat and lon (WGS84 decimal degrees) and an optional label echoed into the output. One billable result row is produced per asset. Example: [{\"lat\":40.815,\"lon\":-73.904,\"label\":\"South Bronx, NY (Qualified Census Tract)\"},{\"lat\":34.073,\"lon\":-118.4,\"label\":\"Beverly Hills, CA (Small Area DDA - boost via DDA, not QCT)\"},{\"lat\":39.07095,\"lon\":-108.55684,\"label\":\"Grand Junction, CO (QCT in
|
|
8716
|
+
"description": "List of points to check against the HUD designations that grant the 130% LIHTC eligible-basis boost under IRC Sec. 42(d)(5)(B): Qualified Census Tracts (current and prior year) and Difficult Development Areas. Each item is an object with numeric lat and lon (WGS84 decimal degrees) and an optional label echoed into the output. One billable result row is produced per asset. Example: [{\"lat\":40.815,\"lon\":-73.904,\"label\":\"South Bronx, NY (Qualified Census Tract)\"},{\"lat\":34.073,\"lon\":-118.4,\"label\":\"Beverly Hills, CA (Small Area DDA - boost via DDA, not QCT)\"},{\"lat\":39.07095,\"lon\":-108.55684,\"label\":\"Grand Junction, CO (QCT in an earlier vintage, not the current one)\"},{\"lat\":39,\"lon\":-101.5,\"label\":\"Rural Kansas (genuine clear - neither QCT nor DDA)\"}].",
|
|
8703
8717
|
"items": {
|
|
8704
8718
|
"type": "string"
|
|
8705
8719
|
}
|
|
@@ -8730,7 +8744,7 @@
|
|
|
8730
8744
|
{
|
|
8731
8745
|
"lat": 39.07095,
|
|
8732
8746
|
"lon": -108.55684,
|
|
8733
|
-
"label": "Grand Junction, CO (QCT in
|
|
8747
|
+
"label": "Grand Junction, CO (QCT in an earlier vintage, not the current one)"
|
|
8734
8748
|
},
|
|
8735
8749
|
{
|
|
8736
8750
|
"lat": 39,
|
|
@@ -8869,7 +8883,7 @@
|
|
|
8869
8883
|
},
|
|
8870
8884
|
"contractStatuses": {
|
|
8871
8885
|
"type": "array",
|
|
8872
|
-
"description": "TRACS statuses to keep: Active, Expired, Pending, Suspended, Terminated, Executed. Leave empty for all statuses - not defaulted to Active, because a hidden status filter is a hidden answer.
|
|
8886
|
+
"description": "TRACS statuses to keep: Active, Expired, Pending, Suspended, Terminated, Executed. Leave empty for all statuses - not defaulted to Active, because a hidden status filter is a hidden answer. DELIBERATELY NOT PREFILLED: contract status is published by the contract-level table and by the Access substitute, but NOT by the contract-renewal file this actor falls back to when neither is available. A prefilled status filter would make the advertised example unanswerable on that last-resort source, and the run would blame the caller input for an upstream outage.",
|
|
8873
8887
|
"items": {
|
|
8874
8888
|
"type": "string"
|
|
8875
8889
|
}
|
|
@@ -8922,9 +8936,6 @@
|
|
|
8922
8936
|
"CA"
|
|
8923
8937
|
],
|
|
8924
8938
|
"expiringWithinMonths": 36,
|
|
8925
|
-
"contractStatuses": [
|
|
8926
|
-
"Active"
|
|
8927
|
-
],
|
|
8928
8939
|
"maxResults": 300
|
|
8929
8940
|
},
|
|
8930
8941
|
"mustSupply": [],
|
|
@@ -9025,7 +9036,7 @@
|
|
|
9025
9036
|
},
|
|
9026
9037
|
"maxResults": {
|
|
9027
9038
|
"type": "integer",
|
|
9028
|
-
"description": "Maximum number of queue records to fetch across ALL selected ISOs combined. The cap is applied in ISO order, so a low value truncates the last ISOs: any ISO that is cut short or never reached is marked iso_status=truncated / not_fetched on its iso_summary row and is excluded from withdrawn-project detection for that run. The default is deliberately low (500) so an unconfigured call cannot run away; raise it to about 20000 to pull the whole federation (~18,200 records). Applied by default if omitted: 500.",
|
|
9039
|
+
"description": "Maximum number of queue records to fetch across ALL selected ISOs combined. The cap is applied in ISO order, so a low value truncates the last ISOs: any ISO that is cut short or never reached is marked iso_status=truncated / not_fetched on its iso_summary row and is excluded from withdrawn-project detection for that run. The default is deliberately low (500) so an unconfigured call cannot run away; raise it to about 20000 to pull the whole federation (~18,200 records). Example: 100. Applied by default if omitted: 500.",
|
|
9029
9040
|
"minimum": 1,
|
|
9030
9041
|
"maximum": 500000
|
|
9031
9042
|
}
|
|
@@ -9034,7 +9045,8 @@
|
|
|
9034
9045
|
"exampleInput": {
|
|
9035
9046
|
"isos": [
|
|
9036
9047
|
"SPP"
|
|
9037
|
-
]
|
|
9048
|
+
],
|
|
9049
|
+
"maxResults": 100
|
|
9038
9050
|
},
|
|
9039
9051
|
"mustSupply": [],
|
|
9040
9052
|
"examples": [
|
|
@@ -9361,18 +9373,18 @@
|
|
|
9361
9373
|
"event": "apify-default-dataset-item",
|
|
9362
9374
|
"perResult": true,
|
|
9363
9375
|
"unit": "result",
|
|
9364
|
-
"usdPerUnit": 0.
|
|
9365
|
-
"usdPer1000":
|
|
9376
|
+
"usdPerUnit": 0.01,
|
|
9377
|
+
"usdPer1000": 10,
|
|
9366
9378
|
"tierDiscountsUsdPerUnit": {
|
|
9367
|
-
"FREE": 0.
|
|
9368
|
-
"BRONZE": 0.
|
|
9369
|
-
"SILVER": 0.
|
|
9370
|
-
"GOLD": 0.
|
|
9371
|
-
"PLATINUM": 0.
|
|
9372
|
-
"DIAMOND": 0.
|
|
9379
|
+
"FREE": 0.01,
|
|
9380
|
+
"BRONZE": 0.008,
|
|
9381
|
+
"SILVER": 0.007,
|
|
9382
|
+
"GOLD": 0.0055,
|
|
9383
|
+
"PLATINUM": 0.0055,
|
|
9384
|
+
"DIAMOND": 0.0055
|
|
9373
9385
|
},
|
|
9374
9386
|
"actorStartUsd": 0.00005,
|
|
9375
|
-
"since": "2026-
|
|
9387
|
+
"since": "2026-10-10T23:31:38.895Z"
|
|
9376
9388
|
},
|
|
9377
9389
|
"inputSchema": {
|
|
9378
9390
|
"type": "object",
|
|
@@ -9634,11 +9646,11 @@
|
|
|
9634
9646
|
"BRONZE": 0.012,
|
|
9635
9647
|
"SILVER": 0.0105,
|
|
9636
9648
|
"GOLD": 0.00825,
|
|
9637
|
-
"PLATINUM": 0.
|
|
9638
|
-
"DIAMOND": 0.
|
|
9649
|
+
"PLATINUM": 0.00825,
|
|
9650
|
+
"DIAMOND": 0.00825
|
|
9639
9651
|
},
|
|
9640
9652
|
"actorStartUsd": null,
|
|
9641
|
-
"since": "2026-
|
|
9653
|
+
"since": "2026-10-11T00:07:46.034Z"
|
|
9642
9654
|
},
|
|
9643
9655
|
"inputSchema": {
|
|
9644
9656
|
"type": "object",
|
|
@@ -16547,7 +16559,7 @@
|
|
|
16547
16559
|
"slug": "warn-layoff-aggregator",
|
|
16548
16560
|
"actorId": "malonestar/warn-layoff-aggregator",
|
|
16549
16561
|
"title": "US WARN Layoff Notice Aggregator & Delta Monitor (OR/TX API)",
|
|
16550
|
-
"description": "Aggregate US state WARN Act layoff & closure notices into one normalized schema and track new / updated / removed deltas. Oregon (HECC export) and Texas (
|
|
16562
|
+
"description": "Aggregate US state WARN Act layoff & closure notices into one normalized schema and track new / updated / removed deltas. Oregon (HECC export) and Texas (TWC workbooks) live and keyless; CA/NY/WA/WI/IL/NJ scaffolded. For RevOps, recruiting, econ research and CRE. No API key.",
|
|
16551
16563
|
"categories": [
|
|
16552
16564
|
"LEAD_GENERATION",
|
|
16553
16565
|
"BUSINESS",
|
|
@@ -16607,7 +16619,7 @@
|
|
|
16607
16619
|
},
|
|
16608
16620
|
"maxResults": {
|
|
16609
16621
|
"type": "integer",
|
|
16610
|
-
"description": "Maximum number of WARN notices to fetch. The budget is split evenly across the selected states, so a small value returns some of every state rather than all of the first one. Rows carry source_truncated when a state was cut short. Applied by default if omitted: 500.",
|
|
16622
|
+
"description": "Maximum number of WARN notices to fetch. The budget is split evenly across the selected states, so a small value returns some of every state rather than all of the first one. Rows carry source_truncated when a state was cut short. Example: 100. Applied by default if omitted: 500.",
|
|
16611
16623
|
"minimum": 1,
|
|
16612
16624
|
"maximum": 500000
|
|
16613
16625
|
},
|
|
@@ -16622,6 +16634,7 @@
|
|
|
16622
16634
|
"OR",
|
|
16623
16635
|
"TX"
|
|
16624
16636
|
],
|
|
16637
|
+
"maxResults": 100,
|
|
16625
16638
|
"deltaStoreName": "warn-layoff-delta"
|
|
16626
16639
|
},
|
|
16627
16640
|
"mustSupply": [],
|
|
@@ -16808,6 +16821,12 @@
|
|
|
16808
16821
|
"minimum": 1,
|
|
16809
16822
|
"maximum": 2000
|
|
16810
16823
|
},
|
|
16824
|
+
"runBudgetSeconds": {
|
|
16825
|
+
"type": "integer",
|
|
16826
|
+
"description": "Whole-run wall clock shared by every request to the USFS EDW service. That service stalls in bursts: a stalled request sits on its own ~60 s instance-pool wait timeout before answering HTTP 200 with an embedded 503 \"Wait timeout for the request exceeded\", and the identical request then succeeds in ~150 ms. Each attempt is therefore capped at 5 s and re-asked, and this budget guarantees the run still reaches a terminal state. If it is exhausted the run FAILS LOUDLY as an upstream availability failure and bills nothing - it never returns a partial answer as though it were complete. Raise it for large batches. Clamped to 30-280 s; omit it and the actor uses 240 s, chosen to stay inside Apify’s 5-minute run-quality budget. Example: 240.",
|
|
16827
|
+
"minimum": 30,
|
|
16828
|
+
"maximum": 280
|
|
16829
|
+
},
|
|
16811
16830
|
"skipDriftChecks": {
|
|
16812
16831
|
"type": "boolean",
|
|
16813
16832
|
"description": "Every run first verifies the live USFS service against measured bands (layer counts, classification vocabulary, a known-positive canary on the Rogue, a known-positive canary in the Rio Grande layer-1 coverage gap, and a known-clear negative control on Denver). If any check fails the run fails and nothing is billed. Set true only for very large batches where the ~12 extra requests matter; you then accept results from an unverified upstream. Default false. Example: false."
|
|
@@ -16851,6 +16870,7 @@
|
|
|
16851
16870
|
}
|
|
16852
16871
|
],
|
|
16853
16872
|
"radiusMeters": 5000,
|
|
16873
|
+
"runBudgetSeconds": 240,
|
|
16854
16874
|
"skipDriftChecks": false
|
|
16855
16875
|
},
|
|
16856
16876
|
"mustSupply": [
|
package/src/tools.js
CHANGED
|
@@ -252,8 +252,51 @@ export const ROUTING = {
|
|
|
252
252
|
'epa-drinking-water-quality-screener':
|
|
253
253
|
'CHOOSE THIS for public water-system quality: SDWA violations, lead 90th-percentile results and PFAS occurrence. '
|
|
254
254
|
+ 'It is NOT a property contamination screen — for soil and groundwater records at a site use epa-contaminated-site-screener.',
|
|
255
|
+
'faa-drone-airspace-checker':
|
|
256
|
+
'CHOOSE THIS for drone (Part 107) airspace questions at specific US points: airspace class, LAANC ceiling, restricted and special-use areas, temporary flight restrictions. '
|
|
257
|
+
+ 'It does NOT screen ground conditions — for a site environmental or hazard screen use site-due-diligence-bundle. It reports what the FAA layers say; it does not request or grant an authorization.',
|
|
255
258
|
};
|
|
256
259
|
|
|
260
|
+
/**
|
|
261
|
+
* Parameter guidance for the featured tools: which inputs matter, how they
|
|
262
|
+
* interact, and how to keep a first call small. Input schemas already document
|
|
263
|
+
* each field on its own; what they cannot say is which combinations an agent
|
|
264
|
+
* should reach for, which inputs override others, and which one is the cost cap.
|
|
265
|
+
* Every input named here in backticks is asserted to exist in the live schema
|
|
266
|
+
* (test/guidance.test.js), so a renamed field fails the build rather than
|
|
267
|
+
* leaving advice that points at nothing.
|
|
268
|
+
*/
|
|
269
|
+
export const SCOPING = {
|
|
270
|
+
'site-due-diligence-bundle':
|
|
271
|
+
'INPUTS: `assets` is required (lat/lon per site). `radiusMiles` sets the proximity layers only; point-in-polygon layers ignore it. `maxAssets` is the cost cap, one billed row per site, so start with 1-3 sites.',
|
|
272
|
+
'epa-contaminated-site-screener':
|
|
273
|
+
'INPUTS: `mode` decides everything else. In "assets" mode supply `assets` (address or lat/lon) and `radiusMiles`; `states`, `onlyNpl` and `onlyWithCoords` are ignored. In "inventory" mode supply `states` and the asset inputs are ignored. One row per site hit is billed, so `maxHitsPerProgram` and `maxResults` are the cost levers; keep them low on a first call near dense industrial areas.',
|
|
274
|
+
'faa-drone-airspace-checker':
|
|
275
|
+
'INPUTS: `points` is required. `layers` narrows which FAA layers are checked; leave it empty for all eight. `maxPoints` is the cost cap, one billed row per point.',
|
|
276
|
+
'hifld-grid-proximity-screener':
|
|
277
|
+
'INPUTS: `assets` is required. `radiusMiles` bounds every layer. `minVoltageKv` filters lines only, never substations or plants, and drops lines with unknown voltage. `includeSubstations`, `includePowerPlants` and `includeUtility` add columns, not rows; turn them off to speed up large batches. `maxResults` caps assets, one billed row each.',
|
|
278
|
+
'interconnection-queue-tracker':
|
|
279
|
+
'INPUTS: leave `isos` empty for all seven ISOs, or name one or two to keep a first call small. `maxResults` is applied in ISO order, so a low value silently drops the later ISOs; raise it or narrow `isos` instead. For change monitoring use `deltaOnly` in snapshot mode rather than re-pulling the full queue.',
|
|
280
|
+
'fdic-ncua-health-rollup':
|
|
281
|
+
'INPUTS: always set `state`; an empty state scores the whole country and bills far more rows. `minAssets` and `maxAssets` are in THOUSANDS of dollars (1000000 = $1B) and together with `peerBasis` define who counts as a peer. `institutionType` "credit_union" is not available yet and fails the run. `maxResults` is the cost cap.',
|
|
282
|
+
'fema-nri-county-risk-profile':
|
|
283
|
+
'INPUTS: supply `assets` (FIPS, state+county, or lat/lon) for specific places; `states` and `counties` are used ONLY when `assets` is empty (inventory mode). `resolution` "tract" applies only to lat/lon assets and inventory pulls; FIPS or state+county assets always get county data. `maxResults` caps rows in both modes.',
|
|
284
|
+
'fws-wetlands-proximity-screener':
|
|
285
|
+
'INPUTS: `assets` is required. `radiusMeters` is the presence check (a true circle); `nearestSearchRadiusMeters` is independent and only bounds the nearest-wetland distance, so a site can read no wetland in radius and still report a nearest one. `maxResults` caps assets, one billed row each.',
|
|
286
|
+
'nhd-surface-water-404-screener':
|
|
287
|
+
'INPUTS: `assets` is required. `radiusMeters` 1000 covers a typical Phase I adjacent-property review; widen it only on purpose. Keep `includeNonNetworkFlowlines` on for a conservative screen. `runBudgetSeconds` trades completeness for speed when the USGS service is slow; a site cut by the budget reports null counts, not zero. `maxResults` caps sites, exactly one row each.',
|
|
288
|
+
'epa-drinking-water-quality-screener':
|
|
289
|
+
'INPUTS: supply `assets` (lat/lon, matched to a water system boundary) or `pwsids` (9-character EPA system ids) or both. `includePfas` is the slow leg; turn it off when PFAS is not the question. `violationYears` only changes the recent-violation flags, not the history summary. `maxAssets` is the cost cap.',
|
|
290
|
+
'parcel-owner-lookup':
|
|
291
|
+
'INPUTS: `addresses` is required, one full street address with city and state per entry. Coverage is a fixed list of county and state assessor rolls; every address still yields exactly one row, so read its lookup_status before treating a missing owner as an answer. `maxResults` caps addresses, one billed row each.',
|
|
292
|
+
'license-verifier':
|
|
293
|
+
'INPUTS: always scope with `states` (a state code searches every board in it; a board id targets one). The most precise search is `licenseNumber`; otherwise `lastName` plus `firstName`. `roster` runs a batch instead of a single search, and `mode` "roster-delta" switches to the newly-credentialed feed with `professions` and `sinceDays`. `maxResults` applies PER BOARD, so a bare state code can bill several boards; start with a low value.',
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
export function scopingNoteFor(slug) {
|
|
297
|
+
return SCOPING[slug] ? ` ${SCOPING[slug]}` : '';
|
|
298
|
+
}
|
|
299
|
+
|
|
257
300
|
/**
|
|
258
301
|
* A routing note is only shown when every tool it points at is reachable on
|
|
259
302
|
* THIS server. Under a preset, a note that sends the agent to a tool outside
|
|
@@ -276,7 +319,7 @@ export function featuredToolDefinitions(index) {
|
|
|
276
319
|
const routing = routingNoteFor(index, slug);
|
|
277
320
|
return {
|
|
278
321
|
name: toolNameFor(slug),
|
|
279
|
-
description: `${a.title}. ${truncate(a.description, 400)}${routing} Reads live from the official government source. Call ${META_TOOLS.DESCRIBE} (free) for a verified example input. ${costNote(a.pricing)} Store page: ${a.storeUrl}`,
|
|
322
|
+
description: `${a.title}. ${truncate(a.description, 400)}${routing}${scopingNoteFor(slug)} Reads live from the official government source. Call ${META_TOOLS.DESCRIBE} (free) for a verified example input. ${costNote(a.pricing)} Store page: ${a.storeUrl}`,
|
|
280
323
|
inputSchema: a.inputSchema,
|
|
281
324
|
annotations: { title: a.title, ...ANNOTATIONS.BILLED_LIVE_READ },
|
|
282
325
|
};
|