Skip to main content
Glama

gov-data-mcp

米国政府のオープンデータツール95件を、1つのMCPサーバーとして。

EPA、FEMA、USGS、NOAA、FAA、USACE、FDIC、HUD、NRCS、HRSA、CMS、郡の査定官名簿、州の免許委員会——すべてエージェントから呼び出し可能なツールとして利用でき、すべて公式の政府APIと一括ファイルから直接読み取ります。スクレイピングなし、HTMLパースなし、レート制限の運任せもなし。

mcp-name: io.github.malonestar/gov-data-mcp

npx gov-data-mcp

インストール

console.apify.com/settings/integrations から無料のApify APIトークンを取得する必要があります。Apifyの無料枠には毎月のプラットフォームクレジットが含まれており、ここにあるすべてのツールの評価をカバーできます。

Claude Desktop / Claude Code / Cursor

{
  "mcpServers": {
    "gov-data": {
      "command": "npx",
      "args": ["-y", "gov-data-mcp"],
      "env": { "APIFY_TOKEN": "apify_api_..." }
    }
  }
}

Claude Desktopは claude_desktop_config.json を読み取り、Claude Codeはプロジェクト内の .mcp.json を読み取り、Cursorは .cursor/mcp.json を読み取ります。ブロックは3つとも同一です。

Related MCP server: mcp-brasil

提供内容

トラフィックの多い質問向けの専用ツール12件が直接呼び出せます:

ツール

回答内容

site-due-diligence-bundle

1つの座標に対する20レイヤーのgo / caution / no-go判定

epa-contaminated-site-screener

ASTM E1527-21の距離でのPhase I ESAデータベース検索

faa-drone-airspace-checker

Part 107 LAANCおよび空域判定、バッチ対応

hifld-grid-proximity-screener

最寄りの送電線、変電所、供給電力会社、ISO/RTO

interconnection-queue-tracker

7つのISOにわたる発電機連系キュー

fdic-ncua-health-rollup

実際のピアグループ比較による銀行・信用組合の健全性

fema-nri-county-risk-profile

郡および国勢調査区単位の自然災害リスク

fws-wetlands-proximity-screener

半径内のNWI湿地、デコード列付き

nhd-surface-water-404-screener

水質浄化法§404の地表水スクリーニング

epa-drinking-water-quality-screener

SDWA違反、鉛、PFASの検出状況

parcel-owner-lookup

住所に対応する査定名簿上の登記所有者

license-verifier

9州にまたがる19の専門職免許委員会 + OIG除外者リスト

さらに、残り83件に到達できる3つのツール:

  • search_gov_data_tools — キーワード、機関、トピックでツールを検索

  • describe_gov_data_tool — カタログ内の任意のツールの完全な入力スキーマ

  • run_gov_data_tool — カタログ内の任意のツールを実行

カタログはバンドルされているため、発見コストはかかりません。エージェントに「洪水リスクに関する政府データツールは何がありますか?」と尋ねれば、95件すべてを検索します。

プロンプト例

コロラド州デンバーの1200 BroadwayをASTM E1527-21に基づいて環境リスクをスクリーニングし、基準の検索距離内に入る調査結果を教えてください。

41.88, -93.10 に40MWの太陽光プロジェクトを計画しています。系統近接性、優良農地、湿地、重要生息地、連系キューを確認し、プロジェクトを頓挫させる要因があれば教えてください。

これらの6つの座標でドローン飛行(Part 107)は可能ですか?また、LAANCではなくDroneZoneの許可が必要なのはどれですか?

2006年のCRE集中度ガイダンスの両方の基準に該当するテキサス州の銀行はどれですか?

仕組み

各ツールは公開済みの Apify Actor であり、このサーバーがApify APIを通じて呼び出します。サーバーは実行を開始し、完了を待って、行データを返します。

課金は、各Actorのストアページに記載されている公開された成果物あたりの料金レートで、お客様自身のApifyアカウントに対して行われます。無料クレジットで評価をカバーできます。失敗した実行は、わずかな端数料金以外は課金されません。

すべての結果には run_id と console.apify.com のURLが付与されるため、エージェントがこのサーバーから行った主張はすべて、それを生成した正確な実行まで遡って追跡できます。

誠実な回答について

これらのアクターは1つのルールに基づいて構築されています: 失敗は決して「何も見つからなかった」として提示してはならない。 この区別が最も重要になるのは、まさにこのサーバーが使われる場面——買い手に物件が汚染されていないと伝えるとき、パイロットに空域が非管理下であると伝えるとき、貸し手に借り手が無免許であると伝えるとき——です。

そこでこのサーバーは:

  • すべての呼び出しで run_status を報告し、成功しなかった実行には決して rows キーを付けない

  • 応答テキストの中で「実行はSUCCESSし、ソースは実際に該当なしだった」と「実行は失敗した」を明示的に区別する

  • 一時的なApify 429/5xxエラーは再試行し、失敗した場合はプラットフォームが失敗したこと、政府ソースについて結論を出すべきではないことを明確に伝える

  • 未知のツール名はカタログの取りこぼしとして扱い、決して「該当なし」とはしない

各アクターも同じ規律を備えています: 行ごとのソースステータス、null は「確認したが該当なし」ではなく「未確認」を意味する、上流が静かに切り詰めたときに実行を失敗させるライブのドリフト検証、HTTP 200で部分的なペイロードを返す場合のページネーションガード。

カバレッジ

環境・汚染、洪水・山火事・地震・地滑り・カルスト地形・海面上昇、湿地・重要生息地・保護地域・史跡、エネルギー立地・送電網・パイプライン、農地・水利権、銀行・信用組合・公正融資、証券・監査人・年金制度、専門職免許・排除者スクリーニング、不動産リード・区画・権利書・デフォルト懸念シグナル、ドローン空域・橋梁・トンネル・ダム。

完全なリストは search_gov_data_tools をこれらの語句で実行するか、apify.com/malonestar を参照してください。

開発

npm install
npm test              # offline suite, no network
node tools/mutate.cjs # re-injects known defects, asserts the suite catches them
npm run catalog -- <apify-token>   # regenerate src/catalog.json from the live API

ライセンス

MIT

Available Tools

15 tools
describe-gov-data-toolA
Read-onlyIdempotent

Return the full input schema and documentation for any one of the 123 tools in the catalog. Call this before run-gov-data-tool so the input is correctly shaped. FREE: reads a catalog bundled with this server — no network call, no run, nothing charged.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYesThe tool name, e.g. "noaa-slr-inundation-threshold-screener".

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, non-open-world. The description adds genuine context the annotations cannot: it is FREE, reads a local bundled catalog, makes no network call, performs no run, and incurs no charge. That cost/side-effect disclosure is exactly the kind of value beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with zero filler; the core action and the 'when to use' directive are front-loaded, with cost reassurance last as supporting detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should say what comes back, and it does — 'the full input schema and documentation' for the requested tool. Given a one-parameter, read-only intro-spection tool, this is essentially complete; only error behavior for an unrecognized tool name is unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is documented with an example ('noaa-slr-inundation-threshold-screener'). The description adds only the domain context that the value must be one of 123 catalog tools, so the schema does the heavy lifting — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (return) + resource (full input schema and documentation) + scope (any one of 123 tools in the catalog). Clearly distinguishable from the sibling run-gov-data-tool, which executes rather than describes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the calling condition: 'Call this before run-gov-data-tool so the input is correctly shaped.' It names the alternative sibling and the ordering relationship, so an agent knows exactly when to reach for this tool instead of running directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

epa-contaminated-site-screenerA

Phase I ESA & Environmental Due Diligence: EPA Database Search. Environmental due diligence by address: an environmental database report over EPA Superfund/NPL, RCRA CORRACTS/TSD/generators, TRI, UST, LUST, Brownfields, NPDES, AIR, TSCA and RMP, scored at ASTM E1527-21 search distances, plus on-site Superfund and AUL boundary checks. No API key. CHOOSE THIS for the ASTM E1527-21 Phase I records search at regulation distances around one or more properties. For a single combined verdict across twenty unrelated layers use site-due-diligence-bundle; for drinking-water quality use epa-drinking-water-quality-screener. Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.01 per result ($10 per 1,000). Lower on paid Apify plans, down to $3.00 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/epa-contaminated-site-screener

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo"assets" (default) runs a multi-database Phase I ESA-style regulatory-records screen on your addresses/coordinates — one billable row per nearby EPA-listed site (across Superfund, RCRA, TRI, UST, LUST and Brownfields). "inventory" instead dumps the raw list of EPA SEMS/Superfund sites for the states you pick — one billable row per site. Example: "assets".
assetsNoLocations to screen against EPA contaminated-site databases. Each item is EITHER {"address": "...", "label": "..."} (geocoded via the free Census geocoder) OR {"lat": <number>, "lon": <number>, "label": "...", "state": "<2-letter, OPTIONAL>"}. The "state" hint is no longer required with lat/lon — Superfund is now also screened spatially against the EPA FRS SEMS point layers, which need no state. Supplying "state" additionally pulls that state's full Envirofacts SEMS roster for wider non-NPL coverage. One dataset row (one billable check) is produced per site hit found within the radius; assets with no hits return a single "clear" row. If EVERY asset fails input validation the run FAILS and nothing is billed. Example: [{"lat":39.8037,"lon":-104.9986,"state":"CO","label":"Denver industrial parcel (lat/lon input)"},{"address":"5980 Lipan St, Denver, CO 80221","label":"Denver industrial parcel (address input)"}].
statesNo2-letter US state codes (e.g. ["CO", "NJ"]) whose EPA SEMS/Superfund site records to list. Required when Mode = inventory. Ignored in assets mode (state is derived automatically per-asset).
onlyNplNoInventory mode only: when true, keep only sites currently on (or part of) the National Priorities List — the actual Superfund program sites. When false, include all SEMS site statuses. Default false. Applied by default if omitted: false.
astmModeNoAssets mode only. Adds ONE extra "astm_summary" row after each asset's normal rows, scoring this actor's databases against the ASTM E1527-21 Sec. 8.2.1 standard search distances. The refined table splits RCRA into its three real ASTM line items — CORRACTS 1.0 mi, TSD 0.5 mi, LQG/SQG/VSQG generators 0.25 mi — resolved from EPA ECHO, alongside NPL 1.0 mi, SEMS-CERCLIS 0.5 mi, LUST 0.5 mi, UST 0.25 mi and Brownfields 0.5 mi (TRI has no ASTM search distance and is excluded). Results come as flat CSV-safe columns (astm_npl_flag, astm_rcra_corracts_flag, ...) plus a nested object, with an astm_refined_verdict. Automatically widens the underlying fetch to 1 mile; your normal per-hit rows still respect radiusMiles unchanged. Screening aid only — not a substitute for an ASTM E1527-21 Phase I ESA. Default false. Example: true. Applied by default if omitted: false.
programsNoWhich EPA program databases to include. The six defaults: SUPERFUND (NPL/SEMS), RCRA (hazardous-waste handlers, now classified into CORRACTS / TSD / generator), TRI (Toxics Release Inventory), UST (underground storage tanks), LUST (leaking USTs), BROWNFIELD (ACRES/FRS). Four additional opt-in programs come from the SAME EPA ECHO response at no extra upstream call: NPDES (Clean Water Act discharge permits), AIR (Clean Air Act permitted sources), TSCA (incl. PCB handlers), RMP (Risk Management Plan chemical-accident facilities). Leave EMPTY to screen the original six only — that keeps row counts and cost identical to previous versions. Ignored in inventory mode. Example: ["SUPERFUND","RCRA","TRI","UST","LUST","BROWNFIELD","NPDES","AIR","TSCA","RMP"].
maxResultsNoSafety cap on total dataset rows produced across the run: max site hits emitted (assets mode) or max SEMS site rows (inventory mode). Applied by default if omitted: 1000.
radiusMilesNoDistance from each asset within which EPA-listed sites are counted and reported across all selected programs. Accepts fractional miles (0.1-50) so you can screen at the ASTM E1527-21 standard search distances directly: 1.0 mi (NPL / RCRA CORRACTS), 0.5 mi (SEMS-CERCLIS, RCRA TSD, LUST, Brownfields), 0.25 mi (registered UST, RCRA generators). Default 1 mile covers the widest ASTM distance. Example: 1.
onlyWithCoordsNoInventory mode only: when true (default), drop SEMS records with no latitude/longitude. Coordinate coverage varies sharply by state — measured 2026-07: 3% of Texas SEMS records carry coordinates, 16% California, 48% Colorado, 60% New Jersey, 77% New York, while NPL-track records are ~96-100% geocoded everywhere. Set false to see the full raw roster including un-mappable rows. Example: true.
includeBoundariesNoAssets mode only. Runs two extra point-in-polygon queries per asset to answer "is this property ON a Superfund site?" (on_superfund_site, superfund_site_name, superfund_epa_url) and "is it inside a published EPA Superfund institutional-control / activity-and-use-limitation boundary?" (institutional_control_flag, institutional_control_description). These are true boundary intersections, not distance-to-centroid. Note EPA publishes ~2,114 NPL site polygons but only ~165 IC polygons nationally, so a false IC result means "not inside a published federal Superfund IC", NOT "no AUL exists". Adds no dataset rows and no billing. Default true. Example: true.
maxHitsPerProgramNoAssets mode only: cap on the number of nearest site hits reported per program per asset (keeps output and billing bounded near dense industrial areas). The nearest sites are kept. Default 50. Range 1-1000. Example: 10. Applied by default if omitted: 50.
strictDataCompletenessNoAssets mode only. Reserved for callers that must not accept partial coverage. Regardless of this setting, every row already carries programs_screened / programs_failed / data_complete, and an asset whose databases ALL failed is reported as result_type "error" — never as a "clear" result. If every database fails for every asset the run FAILS so nothing is billed. Default false. Applied by default if omitted: false.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true; the description goes well beyond that. It reconciles the readOnlyHint=false by explaining the tool is read-only toward the government source but starts a metered run billed to the caller's Apify account ($0.01/result, $3-10 per 1,000), states nothing is charged when a run fails or when all inputs fail validation, and discloses the key data caveat that only ~165 IC polygons exist nationally so a false institutional-control result does not mean no AUL exists. This is exactly the extra context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded correctly: purpose, then routing rule, then alternatives, then cost/side effects last. It is long and dense with capitalized emphasis, but nearly every sentence carries decision-relevant information (cost math, failure-billing rule, boundary polygon caveat) rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, zero-required, metered tool with no output schema, the description covers the mode switch, billing and failure semantics, what a "clear" vs "error" row means, and the boundary-check limitations. An agent has everything needed to invoke it correctly and predict cost.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself already documents modes, defaults, ranges and ASTM distances, so the baseline is 3. The description still adds parameter-relevant meaning the schema does not: the per-result billing model that governs how maxResults/maxHitsPerProgram should be set, and the ASTM E1527-21 distance framing that motivates radiusMiles values (1.0/0.5/0.25 mi).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (EPA regulatory-records screen by address) and enumerates the exact databases covered (Superfund/NPL, RCRA CORRACTS/TSD/generators, TRI, UST, LUST, Brownfields, NPDES, AIR, TSCA, RMP). It also names the sibling it is NOT (site-due-diligence-bundle for a combined verdict, epa-drinking-water-quality-screener for water quality), so an agent can route without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"CHOOSE THIS for the ASTM E1527-21 Phase I records search at regulation distances" gives an explicit selection rule, followed by concrete alternatives for two adjacent siblings. It also points to describe-gov-data-tool for a verified example input, covering the pre-call discovery step.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

epa-drinking-water-quality-screenerA

EPA Drinking Water Quality Screener - Violations, Lead & PFAS. Screen any US coordinate for the public water system serving it: SDWA health-based violations, Lead & Copper Rule 90th-percentile results and UCMR5 PFAS detections - the evidence base behind the LCRI (Nov 1, 2027) and PFAS NPDWR (Apr 26, 2027) deadlines. Never clears a source that did not answer. CHOOSE THIS for public water-system quality: SDWA violations, lead 90th-percentile results and PFAS occurrence. It is NOT a property contamination screen — for soil and groundwater records at a site use epa-contaminated-site-screener. Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.012 per Drinking water screening result ($12 per 1,000). Lower on paid Apify plans, down to $3.60 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/epa-drinking-water-quality-screener

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsNoSites to screen, each {"lat": <number>, "lon": <number>, "label": "<your name for the site>"}. Each location is matched against EPA's mapped community water system service areas to identify the serving public water system. A location with no mapped service area returns an explicit NO_SERVICE_AREA row (likely a private well), never a false clear. Example: [{"lat":43.0125,"lon":-83.6875,"label":"Flint MI - lead action level exceedance"},{"lat":40.9793,"lon":-74.1165,"label":"Ridgewood NJ - PFAS detections"},{"lat":39.7392,"lon":-104.9903,"label":"Denver CO - control"}].
pwsidsNoOptional. Screen specific public water systems by 9-character EPA PWSID (for example ["MI0002310"]) without a coordinate lookup. Combined with any locations supplied above. Example: [].
maxAssetsNoSafety cap on how many locations are screened in one run. Locations beyond the cap are reported in the log and not billed. Example: 250.
includeLeadNoFetch Lead and Copper Rule 90th-percentile tap results and join them to their monitoring periods, so the reported value is dated rather than undated. Example: true.
includePfasNoScreen the system against EPA's UCMR5 occurrence dataset (1.9 million results, 29 PFAS analytes plus lithium). Turn off for a faster run when PFAS is out of scope. Example: true.
simulateOutageNoDiagnostic seam for verifying failure behaviour. Forces one or all EPA sources to fail so you can confirm the actor reports the source as unavailable and never publishes a false clear. Leave as none for normal use. Example: "none".
violationYearsNoHow many years back counts as a recent health-based violation for the screening flags. The full violation history is still summarised regardless. Set 0 to disable the window. Example: 10.
refreshPfasCacheNoRe-download and re-index the UCMR5 occurrence file even if the cached index already matches EPA's current published vintage. Normally unnecessary: the cache is keyed to the file's Last-Modified header and rebuilds itself whenever EPA republishes. Example: false.
runBudgetSecondsNoTotal 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: 900.
includeViolationsNoFetch the system's full Safe Drinking Water Act violation history from EPA SDWIS and roll it up (health-based, monitoring/reporting, treatment technique, Lead & Copper Rule, public-notification tier). Example: true.
includeEnforcementNoFetch the system's SDWIS formal enforcement action history and report the count and most recent action. Example: true.
maxViolationDetailsNoHow many individual health-based violation records to include in the health_based_violation_details array on each row, newest first. Counts are never truncated. Example: 25.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses per-result metering ($0.012/result, $12 per 1,000, down to $3.60 on paid plans), that failed runs are not charged, the run-budget fail-loud behavior, and the core guarantee that it never publishes a clear for a source that did not answer (NO_SERVICE_AREA instead). The 'read-only with respect to the government source' phrasing is carefully scoped and reconciles with readOnlyHint=false, which reflects the metered run side effect rather than a data write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then routing, then cost — a sensible order. The cost/billing block is longer than strictly necessary and repeats pricing twice, but every part is decision-relevant for an agent and nothing is pure padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, no-output-schema tool the description covers the important behavioral contracts: no-false-clear, billing, budget, and partial return shapes (health_based_violation_details, NO_SERVICE_AREA rows). Return format is only sketched at a high level, but that is the main residual gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so baseline is 3, but the description adds real semantics: why includeLead dates results, why includePfas can be disabled for speed, that maxAssets overflow is logged and unbilled, and what simulateOutage is for. It does not restate the schemas so much as explain intent behind the flags.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (screen) and resource (US coordinate / public water system) and enumerates the exact evidence classes returned: SDWA health-based violations, LCR 90th-percentile lead results, UCMR5 PFAS detections. It explicitly names the sibling it is not (epa-contaminated-site-screener) and the domain boundary, so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Contains an explicit 'CHOOSE THIS for...' selector plus a 'It is NOT a property contamination screen — for soil and groundwater records at a site use epa-contaminated-site-screener' exclusion with a named alternative. It also routes to describe-gov-data-tool for a free example input.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

faa-drone-airspace-checkerA

FAA Drone Airspace Checker - Batch LAANC & No-Fly Verdicts. Batch lat/lon to FAA UAS airspace verdicts at $0.02 per check: LAANC ceilings AND whether LAANC is actually offered, charted Class B/C/D/E surface areas, prohibited areas, national-defense TFR areas, special use airspace, NSUFR, stadium TFRs. Never reads clear when a layer did not answer. Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.02 per result ($20 per 1,000). Lower on paid Apify plans, down to $6.00 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/faa-drone-airspace-checker

ParametersJSON Schema
NameRequiredDescriptionDefault
layersNoWhich FAA airspace layers to check each point against. Defaults to all eight. laanc_grid = UAS Facility Map LAANC ceilings; class_airspace = charted Class A/B/C/D/E airspace (ALWAYS queried - it is the check that distinguishes uncontrolled airspace from controlled airspace that has no LAANC grid, so excluding it would force every verdict to INCONCLUSIVE); prohibited_areas = P-areas like P-56; national_defense_tfr = national defense airspace TFR areas; special_use_airspace = Restricted/MOA/Alert/Warning/Danger areas; part_time_nsufr = part-time national security UAS flight restrictions; stadiums = stadium game-day TFR proximity (3 NM); recreational_flyer_sites = FAA-listed fixed flying sites. Example: ["laanc_grid","class_airspace","prohibited_areas","national_defense_tfr","special_use_airspace","part_time_nsufr","stadiums","recreational_flyer_sites"].
pointsYesLocations to check, in WGS84 decimal degrees. Each item is either an object like {"lat": 39.86, "lon": -104.67, "label": "Site A"} (label optional; latitude/longitude aliases accepted) or a "lat,lon" string like "39.86,-104.67". One result row is produced per point, and one Result event is charged per row. Example: [{"lat":39.86,"lon":-104.67,"label":"Denver Intl (KDEN) - Class B, LAANC ceiling 0 ft"},{"lat":40.8296,"lon":-73.9262,"label":"Yankee Stadium NYC - LAANC 300 ft + stadium TFR"},{"lat":42.1708,"lon":-72.6375,"label":"Westover ARB (KCEF) - Class D, LAANC NOT offered"},{"lat":38.9072,"lon":-101.05,"label":"Rural western Kansas - MOA overhead, floor 500 ft AGL"},{"lat":47.2,"lon":-108.6,"label":"Rura…(truncated).
maxPointsNoSafety cap on the number of points checked (and billed) in one run. Points beyond the cap are skipped with a warning. Applied by default if omitted: 500.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: it explains the readOnlyHint=false semantics (a metered run is started on the caller's Apify account), the exact billing model ($0.02/result, $20 per 1,000, discounted on paid plans), and the failure guarantee ('nothing is charged when a run fails'). It also discloses a reliability trait ('never reads clear when a layer did not answer'). This is exactly the kind of side-effect disclosure an agent needs before invoking a paid, non-idempotent tool, and it is consistent with the annotations rather than contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose and layer coverage are front-loaded, and the cost/side-effect block is clearly labeled. It runs long and repeats billing figures (per-check, per-1,000, plan discounts) plus a bare store URL, but each block still serves a distinct function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and largely meets it by naming the verdict components (ceilings, offer status, prohibited/TFR/SUA/NSUFR layers) and promising no false 'clear' results. Layer-verdict structure and the exact result shape are still somewhat implied, keeping it short of a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the schema already documents layer semantics, point formats, and the maxPoints cap in detail. The description adds genuinely new meaning by tying parameters to cost ('$0.02 per check,' 'one Result event is charged per row'), which clarifies why points/maxPoints are economically significant.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Batch lat/lon to FAA UAS airspace verdicts,' and enumerates the exact determinations returned (LAANC ceilings and offer status, Class B/C/D/E, prohibited areas, TFRs, SUA, NSUFR, stadium TFRs). The domain specificity (FAA drone airspace) clearly separates it from the EPA/FEMA/HIFLD siblings without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the domain (batch airspace checks for drone operations) and it usefully points to describe-gov-data-tool for a verified example input. However, it never states when to prefer this over alternatives or any preconditions/exclusions, leaving the when-to-use decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fdic-ncua-health-rollupA

Bank & Credit-Union Financial Health API — FDIC/NCUA QoQ. Bank financial-stress screen on keyless FDIC data: capital ratios, CRE concentration (2006 guidance two-prong test), deposit runoff, ROA/ROE/NIM and asset quality per institution, with quarter-over-quarter deltas, peer-percentile scoring and health flags (deposit outflow, low ROA, rising NPL). Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.008 per result ($8 per 1,000). Lower on paid Apify plans, down to $2.40 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/fdic-ncua-health-rollup

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoEvery mode returns the SAME full field set — capital ratios, uninsured deposits, unrealized losses, CRE concentration, credit quality and quarter-over-quarter deltas. Mode changes the ordering only. snapshot = largest institutions first. delta = biggest quarter-over-quarter deposit move first (the headline run-risk signal). score = highest peer asset percentile first. stress = most health flags first, the triage view. Example: "stress". Applied by default if omitted: "snapshot".
stateNoUS 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: "TX".
benchmarkNoAdds asset-weighted benchmark ratios and this bank's distance from them, in percentage points: benchmark_uninsured_deposit_ratio, benchmark_cre_to_tier1_pct, benchmark_unrealized_loss_to_equity_pct plus uninsured_vs_benchmark_pts, cre_vs_benchmark_pts, unrealized_vs_benchmark_pts. 'national' compares against all ~4,350 FDIC-insured banks; 'state' against the banks in your state. Costs exactly ONE extra request thanks to server-side aggregation — not a second full download. 'none' skips it. Example: "national".
creGrowthNoThe 2006 interagency CRE guidance is TWO tests: construction >= 100% of capital, OR (CRE >= 300% of capital AND CRE grew >= 50% over 36 months). Leaving this on fetches the quarter from 12 quarters ago — one extra request — and fills cre_growth_36m_pct, cre_total_loans_36m_ago, cre_baseline_date and cre_guidance_prong, plus the cre_guidance_both_prongs flag. Turn it off to skip that request; the level tests still run. Example: true.
maxAssetsNoOnly include institutions with at most this many total assets, in thousands of dollars. 0 = no ceiling. Combine with minAssets to score within an asset-size peer band (e.g. community banks $250M–$1B). Applied by default if omitted: 0.
minAssetsNoOnly include institutions with at least this many total assets, in thousands of dollars (FDIC reports assets in $000s, so 1000000 = $1B). Use with maxAssets to build a peer band. 0 = no floor. Applied by default if omitted: 0.
peerBasisNoWhat counts as a 'peer' when computing peer_asset_percentile, peer_roa_percentile, peer_cre_percentile and peer_uninsured_percentile. 'cohort' scores against everything you pulled (a state cohort mixes a $27M agricultural bank with a $200B trust bank, so the percentile means little). 'business_line' uses the FDIC SPECGRP business-model peer group — the cut a bank examiner uses. 'asset_band' uses FFIEC-style size bands. 'community_bank' splits on the FDIC community-bank research flag. Groups with fewer than 5 institutions fall back to the full cohort rather than ranking a bank against two neighbours. Example: "business_line". Applied by default if omitted: "cohort".
maxResultsNoMaximum number of institution-health records to return after filtering, scoring, and ranking. This is your cost cap: one record = one billable result. 500 covers a full mid-size state; TX has ~380 banks, CA ~180. Example: 500. Applied by default if omitted: 1000.
priorItemsNoOptional. In delta mode, an array of institution rows from a previous run (each needs id, total_assets, total_deposits) to diff the current quarter against, instead of auto-fetching the prior quarter. Lets you compare two arbitrary runs. Applied by default if omitted: [].
institutionTypeNoWhich institutions to include. 'bank' = FDIC-insured banks, fully supported, the only option that returns data today. 'credit_union' = NCUA — NOT AVAILABLE YET (ships in v1.3); selecting it alone fails the run immediately and bills nothing, rather than quietly handing back bank data. 'all' = runs the bank half now and picks up credit unions automatically the moment v1.3 lands. Example: "bank".

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false / openWorldHint=true / idempotentHint=false; the description goes far beyond that, disclosing that it never writes to the government source, that each call starts a metered Apify run billed $0.008 per result ($2.40–$8 per 1,000 depending on plan), that failed runs are free, that benchmark costs exactly one extra request, and that credit_union currently fails fast at no charge.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but well-structured: purpose first, then a clearly labeled 'COST AND SIDE EFFECTS' block and a store link. Almost every sentence earns its place, though a few phrases (e.g. the repeated 'reads live from the official government source' claim) overlap with content already implied elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter, no-output-schema tool, the description is close to complete: it names the metrics returned, flags that every mode returns the same field set, and discloses cost and failure behavior. The only gap is that it never characterizes the response envelope (single JSON run output vs. dataset), which an agent would have to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the per-parameter docs are extremely rich (mode ordering, peerBasis fallback threshold, cost-cap semantics of maxResults), so the schema carries the load. The top-level description adds only the cost-per-result framing that ties into maxResults and does not enrich the other nine parameters, meriting the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with scope: a bank/credit-union financial-health screen over FDIC data, enumerating the concrete metrics (capital ratios, CRE concentration, deposit runoff, ROA/ROE/NIM) and QoQ deltas. An agent can tell this apart from siblings like epa-drinking-water-quality-screener or fema-nri-county-risk-profile without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear routing and prerequisite guidance — call describe-gov-data-tool for a verified example input — and reinforces it via parameter docs (state is 'strongly recommended', inspect priorItems for delta mode). It does not state explicit when-not-to-use conditions against the other sibling tools, so it stops short of the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fema-nri-county-risk-profileA

FEMA NRI County Risk Profile — Asset Hazard Join. Join any asset (address, lat/lon, or county FIPS) to FEMA's National Risk Index hazard profile at county or census-tract resolution: composite risk score, expected annual loss, social vulnerability, resilience, and ranked top-3 hazards across all 18 FEMA perils. Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.006 per result ($6 per 1,000). Lower on paid Apify plans, down to $1.80 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/fema-nri-county-risk-profile

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsNoLocations to profile. Each item is EITHER {fips:"08031"} (5-digit county FIPS), OR {state:"Colorado", county:"Denver"}, OR {lat:39.7392, lon:-104.9903} (geocoded via the keyless FCC Census Block API). Add an optional "label" to identify each asset in the output. Leave empty to run inventory mode instead (see states/counties below). Example: [{"state":"Colorado","county":"Denver","label":"Denver HQ"},{"lat":29.9511,"lon":-90.0715,"label":"New Orleans warehouse"}].
statesNoUsed only when Assets is empty. Return full NRI risk profiles for these US states (2-letter postal codes or full names, e.g. CO or Colorado) at the resolution set above (county or tract). Leave empty (with Assets also empty) to return a small nationwide sample bounded by Max results.
countiesNoUsed only when Assets is empty. Narrows the States filter above to specific bare county names (no "County"/"Parish" suffix), e.g. Denver. Applies at both county and tract resolution.
maxResultsNoMaximum number of output records (each is one billed result). In asset mode this caps the number of assets processed; in inventory mode it bounds the row count returned (there are ~3,144 US counties and ~85,000 US census tracts total). Example: 500.
resolutionNoGeographic resolution to join against: "county" (default — ~3,144 US counties) or "tract" (~85,000 US census tracts, finer-grained). Tract resolution only applies to lat/lon assets (geocoded to a tract via the FCC Census Block API) and to inventory-mode states/counties pulls; fips or state+county assets carry no tract signal and always use county data. If a tract lookup misses or the tract service errors, the record gracefully falls back to its county profile with resolution_used="county" (never fails the run). Example: "county".

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly=false, openWorld=true, idempotent=false, destructive=false; the description adds substantial non-annotation context: metered Apify billing at $0.006/result, cheaper on paid plans, no charge on failed runs, and that the source itself is never written to. It also discloses graceful county fallback on tract misses, going well beyond what annotations already say.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded ahead of cost and pricing details, and each block is coherent. It is somewhat long and includes pricing minutiae and a store URL that are useful but slightly padded, keeping it just short of ideal tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return burden and does identify the key returned fields, plus it explains the metered run and fallback behavior for a moderately complex join tool with 5 optional params. Remaining gaps (record shape, pagination, mode return differences) are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents asset formats, mode selection (empty Assets triggers inventory mode), maxResults bounds, and resolution semantics with examples. The description adds little beyond what the schema provides (e.g., asset key types), so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Join any asset ... to FEMA's National Risk Index') and enumerates the exact resource/fields returned: composite risk score, expected annual loss, social vulnerability, resilience, and ranked top-3 hazards across all 18 perils. This is highly specific and an agent can immediately tell what the tool produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context (reads live from the official source; call describe-gov-data-tool for a free verified example input) and implies use for asset-to-hazard joins. However, it never states when to prefer this over alternatives such as site-due-diligence-bundle or when the tool is inappropriate, so there are no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fws-wetlands-proximity-screenerA

USFWS Wetlands Proximity Screener - Section 404 Site Risk API. Wetland due-diligence API for site selection: per lat/lon site, wetland presence within radius, Cowardin classification codes/systems, wetland types, total acreage nearby and a Section 404 dredge-and-fill screening flag. USFWS National Wetlands Inventory open data. CHOOSE THIS for National Wetlands Inventory polygons and their decode columns within a radius. It does NOT answer Clean Water Act §404 jurisdiction — for surface-water features and relative permanence use nhd-surface-water-404-screener. The two are usually needed together. Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.008 per result ($8 per 1,000). Lower on paid Apify plans, down to $2.40 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/fws-wetlands-proximity-screener

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsYesSites to screen for wetlands. Each entry is an object { "lat": number, "lon": number, "label": "optional name" }. Also accepts "lat,lon" strings or [lat, lon] arrays. One dataset row (one billed result) is produced per asset, even when no wetland is found; a bad entry yields an ERROR row and the run continues. Example: [{"lat":36.3736,"lon":-89.385,"label":"Reelfoot Lake, TN - site inside a mapped lake"},{"lat":35.2216,"lon":-75.6913,"label":"Cape Hatteras, NC - estuarine tidal marsh"},{"lat":45.8918,"lon":-123.9615,"label":"Cannon Beach, OR - marine shoreline"},{"lat":47.5,"lon":-99,"label":"Prairie pothole, ND - farmed and drained wetlands"},{"lat":39.7392,"lon":-104.9903,"label":"Denver, CO - urban infill, n…(truncated).
maxResultsNoMaximum number of assets processed in one run (1-2000). One result row is emitted (and billed) per asset. Default 500. Applied by default if omitted: 500.
radiusMetersNoRadius around each asset used for the wetland-presence check, in meters (10-5000). Screened as a TRUE circle. Default 300 (~984 ft, roughly a parcel-scale buffer). Example: 300.
computeNearestDistanceNoWhen on (default), the actor measures the true distance and bearing to the nearest NWI wetland polygon instead of reporting a largest-acreage proxy. Costs up to ~10 small extra requests per site. Turn off for very large batches; nearest_wetland_* then falls back to the largest-acreage feature and nearest_basis says so. Example: true.
nearestSearchRadiusMetersNoHow far out to look for the nearest wetland, in meters (up to 8000). Independent of the screening radius, so a site can correctly read 'no wetland within 300 m' and still report the closest one 1,391 m away. Default 1609 (1 mile). Raised automatically to at least the screening radius. Example: 1609.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing that each call starts a metered Apify run, the exact per-result price and plan-dependent discounts, that failed runs are not charged, and that the tool never writes to any external system. The readOnlyHint=false annotation is consistent with billing a run to the caller's account, so no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then the sibling routing, then cost/side effects in clearly labeled blocks. Slightly padded by the pricing breakdown and store-page URL, but for a metered paid tool those details earn most of their space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still names the return fields (wetland presence, Cowardin systems, types, acreage, 404 flag) and covers cost, side effects, and alternatives. Given five fully-described parameters and one required field, an agent has nearly everything needed, though error-row behavior is only in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (assets, maxResults, radiusMeters, computeNearestDistance, nearestSearchRadiusMeters) is already fully documented with ranges, defaults, and examples in the schema. The description implies radius-based screening and nearest-distance behavior but adds no syntax or semantics the schema lacks, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: per lat/lon site, wetland presence within radius, Cowardin codes, acreage, and a Section 404 screening flag. It explicitly distinguishes itself from the sibling nhd-surface-water-404-screener, so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit chooser line ('CHOOSE THIS for National Wetlands Inventory polygons'), states what it does NOT answer (CWA §404 jurisdiction) and names the alternative tool for that case, plus notes the two are usually needed together and points to describe-gov-data-tool for a verified example.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hifld-grid-proximity-screenerA

Transmission Line & Substation Distance API by Coordinates. For each lat/lon site: distance to the nearest transmission line (kV, owner, overhead/underground), nearest substation, nearest power plant, the serving utility and its ISO/RTO, plus generation and battery-storage MW nearby. Includes sub-100 kV. Data-center, renewable, BESS and EV siting. Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.01 per result ($10 per 1,000). Lower on paid Apify plans, down to $3.00 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/hifld-grid-proximity-screener

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsYesSites to screen for grid access. Each entry is an object { "lat": number, "lon": number, "label": "optional name" }. Also accepts "lat,lon" strings or [lat, lon] arrays. One dataset row (one billed result) is produced per asset; a bad entry yields an ERROR row and the run continues. Example: [{"lat":39.017,"lon":-77.46,"label":"Ashburn VA data center site"},{"lat":33.4484,"lon":-112.074,"label":"Phoenix AZ site"}].
eiaApiKeyNoOptional. A free EIA API key (https://www.eia.gov/opendata/register.php) enables the state industrial and commercial electricity price columns. Everything else works without it — leave this empty and those two columns are simply null. One lookup per distinct state, not per site.
maxResultsNoMaximum number of assets processed in one run (1-2000). One result row is emitted (and billed) per asset. Default 500. Applied by default if omitted: 500.
radiusMilesNoRadius around each asset to search for transmission lines, substations and power plants, in miles (1-50). Features beyond this distance are ignored. Default 5. Example: 10. Applied by default if omitted: 5.
minVoltageKvNoOptional. Only count/consider transmission lines at or above this many kV. Since v1.2 the underlying layer includes sub-100 kV sub-transmission (69/46/34.5 kV), so values below 100 are now meaningful — leave empty to include every line, or set 115/230 to screen for high-voltage access only. Lines with an unknown voltage are excluded when this is set. Does not filter substations or power plants.
skipErrorRowsNoWhen true, assets that could not be screened are logged but not written to the dataset, so you are not billed for them. Default false, which keeps every asset accounted for as an ERROR row. Note that a run in which EVERY asset fails always fails outright and bills nothing, regardless of this setting. Applied by default if omitted: false.
includePlannedNoAdvanced/opt-in. Also check a 'planned transmission line' scratch layer that carries NO owner/voltage/status metadata. It is NOT an authoritative planned-line dataset — the planned_line_nearby flag is a low-confidence 'a planned-line geometry exists nearby' hint only. Default false. Applied by default if omitted: false.
includeUtilityNoAlso resolve which retail electric utility serves each site, its ownership type, holding company, customer count and summer peak, plus the balancing authority and ISO/RTO (PJM, ERCOT, CAISO, MISO, SPP, ISO-NE, NYISO). Where service territories overlap, the largest utility by summer peak load is reported as primary. On by default — one extra lookup per site. Example: true.
simulateOutageNoDiagnostic seam for verifying the reliability behaviour on demand rather than waiting for a real outage. "none" (default) is a genuine no-op. "primary" forces the primary line layer to appear down; "drift" forces the live drift gate to measure a truncated layer (the run then fails and bills nothing); "gate" forces the drift probes to be unreachable; "both" combines primary and gate. Leave as none for normal use. Applied by default if omitted: "none".
includePowerPlantsNoAlso report the nearest power plant (name, distance, fuel, technology, capacity MW, EIA plant code) plus total generation, battery-storage, solar and wind MW within the radius. Sourced from EIA's monthly plant inventory. On by default — set to false to skip and speed up large batches. Example: true.
includeSubstationsNoAlso report the nearest electric substation (name, distance, max/min voltage, connected line count) plus substations within the radius. On by default — set to false to skip substation screening and speed up large batches. Example: true.
allowTruncatedLineFallbackNoThe transmission-line answer comes from a national layer of 94,619 lines. If that layer is unavailable, the only backup is a 2023 copy that contains NO line below 100 kV — 44.8% of the US grid, and the sub-transmission most mid-size solar, BESS and EV-charging projects actually interconnect to. At Storm Lake IA it reports the nearest line 2.545 mi away at 161 kV when the truth is 0.649 mi at 69 kV. By default (false) such a run FAILS and bills nothing. Set true to receive rows instead, in which every complete-universe field (nearest_line_distance_miles, lines_within_radius, max_voltage_within_radius_kv, ...) is null, grid_tier reads DEGRADED, and only the nearest_ge100kv_line_* columns are populated. Applied by default if omitted: false.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses that the call starts a metered run on the caller's Apify account at $0.01/result, that failed runs bill nothing, that read-only applies only to the government source, and it documents degraded-mode behavior (allowTruncatedLineFallback nulling complete-universe fields, grid_tier DEGRADED) plus a diagnostic simulateOutage seam. This is exactly the kind of cost/failure/auth context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but front-loaded: capability and outputs come first, then usage contexts, then a clearly labeled COST AND SIDE EFFECTS block. The store-page URL is the only line that doesn't earn its place, but overall it is dense rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters, no output schema, and no annotation-level cost disclosure, the description does the heavy lifting: it explains billing model, failure accounting, and named output columns (grid_tier, nearest_ge100kv_line_*). It is nearly complete, missing only a full return-shape summary, which the absence of an output schema makes slightly more important.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself documents every parameter in depth (including the sub-100 kV nuance and the planned-line caveat), so the description need not repeat them. The description adds only marginal param-level context ('Includes sub-100 kV'), so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Transmission Line & Substation Distance API by Coordinates') and enumerates the concrete outputs: nearest line with kV/owner/overhead-underground, nearest substation, nearest plant, serving utility and ISO/RTO, nearby MW. This is clearly distinguishable from siblings like interconnection-queue-tracker or fws-wetlands-proximity-screener.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the use contexts explicitly (data-center, renewable, BESS and EV siting) and routes the agent to describe-gov-data-tool for a verified example. It stops short of stating when to prefer a sibling tool (e.g. vs interconnection-queue-tracker) or any exclusion conditions, so it lacks the 5-level routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

interconnection-queue-trackerA

US Interconnection Queue Tracker - 7 ISO Queues & Deltas API. Normalize US ISO/RTO generator interconnection queues (SPP, MISO, NYISO, CAISO, PJM, ERCOT, ISO-NE) into one schema and track new, withdrawn, status-change and COD-slip deltas. For renewables developers, land agents, and energy consultants. Keyless. Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.008 per result ($8 per 1,000). Lower on paid Apify plans, down to $2.40 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/interconnection-queue-tracker

ParametersJSON Schema
NameRequiredDescriptionDefault
isosNoISO/RTO codes to pull. Leave empty to pull ALL 7 live sources (SPP, MISO, NYISO, CAISO, PJM, ERCOT, ISO-NE) in one run. All 7 are keyless - no account or API key needed. An unrecognised code now FAILS the run before anything is billed, rather than being silently dropped (which used to fall through to "all seven"). Example: ["SPP"]. Applied by default if omitted: [].
modeNosnapshot = emit the current normalized queue, automatically annotated with monitor fields (is_new_since_last_run, status_changed, previous_status) vs. the actor's own self-managed KV snapshot, plus synthetic withdrawn and per-ISO iso_summary rows. delta = legacy manual mode: compare against a prior snapshot YOU supply (priorItems/priorKvKey) and emit only change rows (new / withdrawn / status_change / cod_slip). Applied by default if omitted: "snapshot".
deltaOnlyNoSnapshot mode only. When true, suppress unchanged queue rows and emit ONLY new/status-changed rows, synthetic withdrawn rows, and one iso_summary roll-up row per ISO — ideal for a scheduled weekly/daily monitor run that only cares about what changed. When false (default), the full queue is emitted as before, PLUS the same withdrawn/iso_summary rows as free bonus monitoring signal. Applied by default if omitted: false.
maxResultsNoMaximum 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.
priorItemsNoDelta mode: the prior run's unified queue items (the array of records this actor produced before). The diff is computed purely against these. Ignored in snapshot mode. Applied by default if omitted: [].
priorKvKeyNoDelta mode alternative to priorItems: a key in this actor's key-value store holding the prior snapshot. When set, the current snapshot is also SAVED under this key so scheduled runs diff automatically against the previous run.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond annotations with unusual precision: keyless access, live reads from the official source, no writes to external systems, but every call starts a metered Apify run billed $0.008/result (down to $2.40/1,000 on paid plans) and nothing is charged on failure. This directly explains why readOnlyHint is false — state/cost accrues on the caller's account — without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose in the first two sentences, then audience, source, and a clearly labeled COST AND SIDE EFFECTS block. The pricing sentence is dense but earns its place for a paid actor; only the store URL and audience line are marginal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers cost model, data source, keylessness, delta categories, and a pointer to a companion tool for example input — enough to call it correctly for a six-parameter, two-mode actor with no output schema. Return-shape detail (beyond named monitor fields) is left implicit, which is the only real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each of the six parameters is already fully documented in-schema (including mode, deltaOnly, maxResults truncation semantics). The prose adds the delta-row taxonomy and nothing new about parameter syntax or defaults, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: normalizes US ISO/RTO interconnection queues for seven named ISOs into one schema and tracks new/withdrawn/status-change/COD-slip deltas. Names the exact sources (SPP, MISO, NYISO, CAISO, PJM, ERCOT, ISO-NE) and the audience, so it is unmistakable against the gov-data siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the snapshot vs delta intent indirectly ('track new, withdrawn, status-change and COD-slip deltas') and points to describe-gov-data-tool for a verified example input. It does not explicitly say when to change maxResults or when deltaOnly is preferred over mode=delta, but the context for a monitoring workflow is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

license-verifierA

License Verification API — Nurses, MDs & OIG Exclusions. Primary source verification for US professional licenses. Search 19 state boards by name or license number: status, expiration, disciplinary actions. Cross-checks the NPPES NPI registry and screens the HHS-OIG exclusion list. Bulk roster screening. Newly licensed clinicians feed (roster-delta). Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.01 per result ($10 per 1,000). Lower on paid Apify plans, down to $3.00 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/license-verifier

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity to filter licensees by. Not every board publishes a city column.
modeNoLeave empty for the classic lookup/roster behaviour. Set "roster-delta" for the newly-credentialed feed: every credential ORIGINALLY ISSUED in the last sinceDays on the selected boards, one row each, with NPI cross-walk and OIG screen. The first run seeds a named baseline and emits the window as event_type "inventory"; later runs emit only event_type "newly_licensed" (a credential absent from the baseline AND issued on/after the previous run minus 7 days). A run against unchanged data emits 0 rows and bills nothing. Boards with an original-issue date: WA (DOH), TX-BON, TX-LVN, TX-APRN, IL, CO, CT, DE, OR (CCB), WA-CPA, WA-CONTRACTOR, NY-NOTARY, NY-COS, NY-APPRAISER. In this mode maxResults is the TOTAL row cap for the run (newest credentials first).
nameNoFull-name search that works across every board (handles combined name fields). Use this if lastName/firstName return nothing.
rosterNoBatch mode: verify a whole roster of professionals in one run. Each item: {firstName, lastName, state (optional — omit to search every board), profession (optional), middleName (optional, improves scoring)}. Emits one verdict row per entry with verdict, match_score, match_tier, NPI cross-walk, OIG exclusion screen and board-action status. Capped at 200 entries per run. Every verdict row is billable, including NOT_FOUND and INCONCLUSIVE_SOURCE_ERROR — a verified negative is the deliverable.
statesNoState codes or explicit board IDs. A bare state code searches EVERY board in that state - e.g. "TX" covers TDLR trades AND the Board of Nursing (RN, LVN, APRN). Use a hyphenated ID to target ONE board: IL-IDFPR, CT-DCP, CO-DORA, TX-TDLR, TX-BON (RN), TX-LVN, TX-APRN, OR-CCB, OR-BCD, NY-RACING (horse racing only), NY-RE, NY-COS, NY-NOTARY, NY-APPRAISER, WA-DOH (health professions), WA-CPA, WA-CONTRACTOR, DE-DPR, VT-DFS. States: CO, CT, DE, IL, NY, OR, TX, VT, WA. Example: ["WA"].
lastNameNoLicensee last name (partial match). Example: "Threlkeld". Applied by default if omitted: "".
firstNameNoLicensee first name (partial match). Supplying it raises match confidence sharply — first + last name exact is the threshold for a confident verdict. Example: "Judson". Applied by default if omitted: "".
npiLookupNoFor each roster entry, look the person up in the federal NPI registry and use their self-reported state license number to pin down the exact board record. This is what turns 125 same-name candidates into one verified match, and it returns NPI, taxonomy and practice address. Applied by default if omitted: true.
sinceDaysNoroster-delta only. How many days back the original-issue-date window reaches (1-400). The seeding run emits this whole window as inventory; later runs emit only credentials issued since the previous run (minus a 7-day publication slack). A non-integer or out-of-range value fails the run before any request is made. Example: 30.
maxResultsNoMaximum number of license records to return per board. Each returned row is billable, so start small. Example: 10. Applied by default if omitted: 200.
statusOnlyNoReturn only license number, type, status, expiration, provenance and the OIG exclusion flags. Handy for recurring renewal monitoring. NOTE: this is the SAME price per row as a full record — it returns less data, not cheaper data. Applied by default if omitted: false.
licenseTypeNoe.g. "Registered Nurse", "Real Estate", "Cosmetology", "Professional Engineer". Boards without a license-type column skip this filter and say so in the log and in unsupported_filters.
professionsNoroster-delta only. Restrict to these professions, matched case-insensitively on the normalised profession (e.g. "Registered Nurse") or as a prefix of the board's raw credential type ("Registered Nurse" reaches "Registered Nurse License" and "Registered Nurse Temporary Practice Permit" but NOT "Advanced Registered Nurse Practitioner"). Examples: "Registered Nurse", "Licensed Practical Nurse", "Physician And Surgeon", "Dentist", "Pharmacist", "Physical Therapist". Omit for every profession the board publishes. Changing this filter starts a NEW delta baseline (the baseline is scoped by boards + professions). Example: ["Registered Nurse"].
businessNameNoBusiness or DBA name to search (partial match).
licenseNumberNoExact license number to verify. The most precise search available — use it when you have it.
checkDisciplineNoJoin the best-matching licensee against secondary board-action datasets: Delaware DPR disciplinary actions and the NYS Office of Professional Medical Conduct. A failed lookup is reported as unknown, never as 'no action on file'. Applied by default if omitted: true.
onlyDisciplinedNoReturn only licensees with a disciplinary history. Honoured by IL-IDFPR, CO-DORA, DE-DPR, WA-DOH, TX-BON and TX-LVN. Target those board IDs directly rather than a bare state code, or sibling boards that publish no disciplinary column will also return rows (they are reported in unsupported_filters). Applied by default if omitted: false.
socrataAppTokenNoOptional free Socrata app token to raise rate limits.
screenExclusionsNoCheck every result against the federal HHS-OIG List of Excluded Individuals/Entities (83,000+ records, refreshed monthly). Matched on NPI first, then last+first+state. A surname-only hit is NEVER reported as an exclusion — it is flagged for review instead. Adds no per-row cost. Applied by default if omitted: true.
rosterLimitPerBoardNoHow many candidate records to pull per board for each roster entry before scoring. Higher values reduce the chance of missing the right person for a common surname; candidates_truncated tells you when the cap was hit. Applied by default if omitted: 100.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: exact pricing ($0.01/result, $10 per 1,000, down to $3.00 on paid plans), that failed runs bill nothing, that each call starts a metered run on the caller's own Apify account, and rate-limit relief via socrataAppToken. It also reconciles the readOnlyHint=false annotation by clarifying the read-only property applies to the government source, not to the caller's account — a genuinely useful disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then cross-checks, then a clearly labelled COST AND SIDE EFFECTS block, which is the right ordering for a metered tool. Length is justified by the 20-parameter surface, though the store-page URL and the repeated marketing phrasing ('Primary source verification') are mild filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, 20-param, no-output-schema tool the description covers scope, cost, side effects, cross-checks and mode behaviour well, and points to a helper tool for example inputs. It does not enumerate the return shape for the classic lookup path (output schema is absent), leaving a small gap, but the roster verdict fields are described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the per-parameter descriptions are extremely detailed (mode semantics, board IDs, delta baselines, billing per row), so the schema carries the parameter burden. The top-level description adds only marginal parameter meaning ('start small' on maxResults, pointer to describe-gov-data-tool), so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Primary source verification for US professional licenses'), names the exact scope (19 state boards, name or license number, status/expiration/discipline) and the federal cross-checks (NPPES NPI, HHS-OIG). The sibling tools are all in unrelated domains (EPA, FAA, FEMA, wetlands, parcels), so no differentiation ambiguity exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for the main modes (classic lookup/roster vs roster-delta newly-licensed feed) and routes the agent to describe-gov-data-tool for a verified example input. It also advises starting small on maxResults because rows are billable. It does not, however, state when to prefer this tool over an alternative approach or any explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhd-surface-water-404-screenerA

USGS NHD Surface Water & Section 404 Wetland Screener. Screen any lat/lon against USGS NHDPlus HR surface water. 94 fields: exact distance to the nearest perennial, intermittent and ephemeral reach, waterbody type and purpose, mean annual flow, stream order, HUC-8/10/12, a jurisdictional-likelihood call with its reasoning, and a Section 404/WOTUS flag. CHOOSE THIS for Clean Water Act §404 surface-water screening — streams, waterbodies and their relative permanence. For mapped wetland polygons use fws-wetlands-proximity-screener. Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.012 per Result ($12 per 1,000). Lower on paid Apify plans, down to $3.60 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/nhd-surface-water-404-screener

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsYesRequired. The list of sites to screen, in the standard [{lat, lon, label}] shape. Use decimal degrees (lon is negative in the USA). label is optional free text - it is echoed on every output row so you can join results back to your parcel list. Example: [{"lat":40.0143,"lon":-105.2829,"label":"Boulder CO parcel"}]. The four prefilled sites deliberately cover the range of outcomes: a creekside parcel 5 m from a perennial stream carrying 103 cfs (HIGH), a Louisiana site sitting inside an NHD swamp/marsh (HIGH, wetland-driven), an Arizona parcel inside a mapped desert wash (LOW - washes are reported but are not jurisdictional after Sackett), an upland Mojave parcel whose only nearby feature is an ephemeral reach (LOW), and an open-coast parcel at the mouth of Mobile Bay sitting on the Gulf of Mexico polygon (HIGH) - the coastal case that build 1.1.6 and earlier could not screen at all. Example: [{"lat":40.0143,"lon":-105.2829,"label":"Boulder CO - creekside redevelopment parcel"},{"lat":29.99091,"lon":-89.93323,"label":"New Orleans East LA - swamp/marsh adjacent site"},{"lat":33.42931,"lon":-111.98414,"label":"Tempe AZ - parcel inside a mapped desert wash"},{"lat":35.2,"lon":-115.9,"label":"Mojave NP CA - upland solar reference site"},{"lat":30.2481,"lon":-88.0783,"label":"Dauphin Islan…(truncated).
maxResultsNoUpper bound on the number of assets screened, and therefore on the number of dataset rows produced. One asset always produces exactly one row, including sites that turn out to be far from any mapped water. Clamped to 1-10000. Example: 100. Applied by default if omitted: 1000.
radiusMetersNoHow far around each site to look for NHD flowlines, waterbodies and water areas. 1000 m covers a typical Phase-I ESA adjacent-property review; widen to 3000 m for utility-scale solar, BESS or data-center siting. Clamped to 50-8000 m. Example: 1000. Applied by default if omitted: 1600.
runBudgetSecondsNoOptional. One time budget for the whole run, shared by the live drift checks (at most 180 s of it) and every site. If hydro.nationalmap.gov is slow and the budget runs out, the sites not yet reached are returned as rows with failure_kind "deadline" and null counts/flags instead of the run dragging on. Leave empty to use max(240, 90 + 30 x number of assets) seconds. Clamped to 30-3500; the run also always stops before its Apify timeout. Example: 240.
includeNonNetworkFlowlinesNoAlso query NHDPlus HR layer 4 (NonNetworkNHDFlowline) for isolated ditches, canals and disconnected reaches near the site. Leave on for a conservative wetland-delineation scope; turn off to save one request per asset. Note that layer 4 carries no NHDPlus value-added attributes, so a nearest reach found there has no mean annual flow, stream order or drainage area. Example: true.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations existing, the description adds substantial behavior not in them: the metered run on the caller's Apify account, exact pricing ($0.012 per Result, down to $3.60/1,000 on paid plans), no charge on failed runs, live reads from the official source, and deadline/failure semantics. This explains the readOnlyHint=false nuance (no writes to external systems, but the call does incur billed side effects) rather than contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and sibling routing, then cost/side effects last, and each sentence carries usable information (selection rule, alternative tool, pricing, store link). It is on the long side and the 94-field enumeration is dense, but little is genuinely redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by describing the return content (distance metrics, waterbody type, flow, stream order, HUC levels, jurisdictional call and reasoning, 404/WOTUS flag) and failure rows ("failure_kind deadline" with null counts). Combined with full schema coverage and rich annotations, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (assets, maxResults, radiusMeters, runBudgetSeconds, includeNonNetworkFlowlines) are fully documented in the schema itself. The description adds output-field framing ("94 fields") but no parameter syntax or semantics beyond what the schema already provides, which is the expected baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a specific verb+resource ("Screen any lat/lon against USGS NHDPlus HR surface water") and enumerates the concrete outputs (distance to perennial/intermittent/ephemeral reaches, mean annual flow, stream order, HUC codes, jurisdictional-likelihood call, Section 404/WOTUS flag). It explicitly distinguishes itself from the sibling fws-wetlands-proximity-screener — streams/waterbodies vs mapped wetland polygons — so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit selection rule ("CHOOSE THIS for Clean Water Act §404 surface-water screening") and names the alternative to use otherwise ("For mapped wetland polygons use fws-wetlands-proximity-screener"). It also points to describe-gov-data-tool for a verified example input, covering the pre-call discovery step.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parcel-owner-lookupA

Parcel Owner Lookup — Address to Owner & Assessor Record. Address to parcel ID, owner name, mailing address & assessed value from official assessor rolls: Chicago, Philadelphia, NYC + NC, NY State, WI, CO, MN, AR, MA, CT, VT statewide, Phoenix, Houston, Cleveland, Nashville & DC. Census fallback elsewhere. $0.02/lookup. Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.02 per Result ($20 per 1,000). Lower on paid Apify plans, down to $6.00 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/parcel-owner-lookup

ParametersJSON Schema
NameRequiredDescriptionDefault
addressesYesUS street addresses to resolve to a parcel + owner record, one per line (e.g. '1060 W Addison St, Chicago, IL'). Matched against the Cook County IL (Chicago), Philadelphia PA and New York City rolls, plus (v1.1) statewide rolls for North Carolina, New York State, Wisconsin, Colorado, Minnesota (opt-in counties), Arkansas, Massachusetts, Connecticut and Vermont and county rolls for Maricopa AZ (Phoenix), Harris TX (Houston), Cuyahoga OH (Cleveland), Nashville TN and Washington DC - routed by the Census-geocoded point's county. Addresses elsewhere fall back to Census geocoding (lat/lon only). Every input address yields exactly one output row; see lookup_status on each row. Example: ["1060 W Addison St, Chicago, IL","1234 Market St, Philadelphia, PA","350 5th Ave, New York, NY"].
maxResultsNoMaximum number of addresses to process (one output row per address). Extra addresses beyond this cap are skipped. Example: 10. Applied by default if omitted: 100.
runBudgetSecondsNoOptional wall-clock budget for the whole run. A parcel roll that is slow to answer is cut when the budget runs out: that address comes back lookup_status "source_unavailable" (or keeps the answer the house-number query already gave) with lookup_cut_by_deadline: true, instead of the run hanging. Leave empty for no budget. Example: 240.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses per-Result metering ($0.02/lookup, $20 per 1,000, as low as $6/1,000 on paid plans), that nothing is charged on failure, that each call starts a run on the caller's Apify account, and that one output row is guaranteed per input address via lookup_status. It also explains deadline-cut behavior (lookup_cut_by_deadline, 'source_unavailable'), reconciling the readOnlyHint=false annotation by clarifying it is read-only toward the government source but creates a billed run.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose before coverage, pricing, and side effects, and the 'COST AND SIDE EFFECTS' block is clearly signposted. It is somewhat long and includes a store-page URL and pricing repetitions that could be trimmed, but nearly every sentence carries operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a metered, no-output-schema tool the description covers inputs, routing/fallback logic, billing, failure semantics, and the derived output fields (lookup_status, lookup_cut_by_deadline). An agent has enough to invoke correctly; only the concrete result record shape is left unspecified, which is minor given the fields it names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (addresses, maxResults, runBudgetSeconds) are already fully documented in the schema, including defaults and edge behavior. The description adds little parameter-level detail beyond what the schema states, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Address to parcel ID, owner name, mailing address & assessed value from official assessor rolls'), naming exactly what is produced. It enumerates the jurisdictions served and the Census fallback, so an agent knows the precise scope without opening the schema. The sibling tool describe-gov-data-tool is also named, distinguishing this from generic lookups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: address-to-owner resolution with a Census geocoding fallback for uncovered areas, plus an explicit pointer to call describe-gov-data-tool for a verified example input before invoking. What is missing is explicit when-not-to-use guidance versus the other gov-data siblings (e.g., run-gov-data-tool), which is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run-gov-data-toolA

Run any one of the 123 catalog tools with the given input and return its rows. Call describe-gov-data-tool first to shape the input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed per result row at the rate this tool reports. Call describe-gov-data-tool first to see the exact price before running anything. Nothing is charged when a run fails. A run that FAILS returns an error and no rows rather than an empty result, so a zero-row answer means the source was reached and matched nothing for exactly that input. Failed and zero-row results carry next_step, must_supply and a verified example_input to copy. Inputs are checked locally first: a missing required field or an invalid enum value is reported free, without starting a run.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYesThe tool name to run, e.g. "usgs-seismic-design-screener".
inputYesInput object matching the schema returned by describe-gov-data-tool.
maxItemsNoMaximum rows to return. Default 200.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Far exceeds the annotations: it discloses metered per-row billing on the caller's Apify account, that failed runs are free, that failure returns an error with no rows (distinct from a zero-row success), and that failures/zero-rows carry next_step, must_supply and a verified example_input. It also clarifies that read-only applies only to the government source, which explains rather than contradicts readOnlyHint=false and openWorldHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the one-line purpose before the cost and failure semantics, and every clause carries a fact an agent needs (pricing, error vs empty, free validation). It loses a point for restating "Call describe-gov-data-tool first" twice and running somewhat long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, a nested input object and 3 params, the description still closes the important gaps: return shape (rows), error-vs-empty semantics, cost model, and pre-flight validation behavior. An agent has everything required to decide and call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents tool, input and maxItems; baseline is 3. The description adds real meaning by telling the agent how to obtain the input object's shape (via describe-gov-data-tool) rather than guessing it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with quantified scope: "Run any one of the 123 catalog tools with the given input and return its rows." It is clearly the generic executor in a catalog where siblings are individual named tools, so an agent can distinguish it without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit prerequisite workflow twice: call describe-gov-data-tool first to shape the input and to see the exact price before running. It does not, however, say when to call this generic runner versus invoking a specific named sibling like epa-contaminated-site-screener directly, leaving that routing decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search-gov-data-toolsA
Read-onlyIdempotent

Search the full catalog of 123 US government data tools by keyword, agency, or topic (e.g. "wetlands", "FDIC", "flood", "drone airspace", "business licenses"). Returns matching tool names with descriptions. Use this first when the task is not covered by one of the dedicated tools above. FREE: reads a catalog bundled with this server — no network call, no run, nothing charged.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return. Default 10.
queryYesKeywords to match against tool name, title, description and category.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds value beyond that: it discloses the return format and the cost/latency profile ('no network call, no run, nothing charged'), which the annotations do not express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then return value, then routing and cost. Every clause earns its place; no restatement of the tool name or padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description states what is returned (matching names with descriptions), and annotations carry the safety profile. For a two-parameter discovery search, nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented and a baseline of 3 applies. The description adds example query values ('wetlands', 'FDIC', 'flood', 'drone airspace') that concretely illustrate what the query string may contain, marginally exceeding the schema's generic wording.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search the full catalog of 123 US government data tools') with the exact match dimensions (keyword, agency, topic) and the return shape ('matching tool names with descriptions'). It also positions itself against the sibling tools by scope, so an agent can tell it apart from run-gov-data-tool and the dedicated screeners.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing rule: 'Use this first when the task is not covered by one of the dedicated tools above.' This names the alternative class and the condition that selects this tool. It stops short of naming the natural next step (describe-gov-data-tool / run-gov-data-tool), so it is strong but not fully exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

site-due-diligence-bundleA

Environmental Due Diligence Bundle: 20-Layer Site Scorecard. Environmental due diligence at $0.10 per property - one row per site, not per layer. Lat/lon plus radius returns a go/caution/no-go fatal-flaw verdict and 0-100 score across 20 federal layers: EPA contamination, FEMA flood, NWI wetlands, ESA habitat, karst, landslide, levee, dams, CBRS, pipelines. CHOOSE THIS when you want one combined go / caution / no-go verdict for a coordinate across many unrelated layers. It is NOT an ASTM records review: its contamination layer reads RCRA and TRI through ECHO only and omits coordinate-less Superfund records. For a contamination-first question use epa-contaminated-site-screener. Reads live from the official government source. Call describe-gov-data-tool (free) for a verified example input. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.1 per result ($100 per 1,000). Lower on paid Apify plans, down to $30.00 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/site-due-diligence-bundle

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsYesList of sites to run the full fatal-flaw scorecard on. Each item is an object with numeric lat and lon (WGS84 decimal degrees) and an optional label. One billable scorecard row is returned per successfully screened asset -- invalid coordinates are returned in a separate non-billable dataset. Example: [{"lat":29.7355,"lon":-95.2601,"label":"Houston Ship Channel parcel"}]. Example: [{"lat":29.7355,"lon":-95.2601,"label":"Houston Ship Channel industrial site, TX"},{"lat":44.29,"lon":-105.5,"label":"Gillette, WY greenfield (coal-country)"}].
maxAssetsNoMaximum number of assets to screen from the list (safety cap). Extra assets beyond this are ignored. Applied by default if omitted: 250.
radiusMilesNoSearch radius in statute miles for the proximity layers (EPA contamination, ESA critical habitat, transmission grid, wildfire flag, landslide nearby-search, CWA 303(d) impaired waters, tank/spill registries, gas pipelines, NWI wetlands, NRHP historic resources, and NID dams). Point-in-polygon-only layers (protected lands, flood/NRI county, seismic, IRA energy community, karst, USACE levee, CalFire FHSZ, NAAQS nonattainment, CBRS) ignore this. Accepts 0.25 to 25; smaller means a tighter on-site screen. Example: 1.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, and idempotentHint=false, and the description explains the nuance behind that profile: it never writes to any external system but each call starts a metered run on the caller's Apify account. It adds cost rates ($0.10 per result, down to $30/1,000 on paid plans), the failure-billing rule ('nothing is charged when a run fails'), and the live-source read behavior — none of which the annotations convey. No contradiction with readOnlyHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but information-dense and front-loaded, with clear 'CHOOSE THIS' and 'COST AND SIDE EFFECTS' sections. The store-page URL and the describe-gov-data-tool pointer are arguably marginal, keeping it from a 5, but no sentence is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a metered, multi-layer screening tool with no output schema, the description covers purpose, routing, exclusions, cost/billing model, side effects, and source fidelity, and points to a free example-input tool. Nothing an agent needs to select or safely invoke it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents assets, maxAssets, and radiusMiles in detail, including which layers honor the radius and which ignore it. The description adds per-site billing semantics ('one row per site, not per layer'), but that is the schema/annotations' territory rather than new parameter syntax. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource and scope: a combined go/caution/no-go fatal-flaw verdict with a 0-100 score across 20 named federal layers, one row per site. It explicitly names the sibling it is not (an ASTM records review) and routes contamination-first questions to epa-contaminated-site-screener, so an agent can distinguish it without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit selection guidance: 'CHOOSE THIS when you want one combined go/caution/no-go verdict for a coordinate across many unrelated layers,' plus a negative boundary ('NOT an ASTM records review... omits coordinate-less Superfund records') and a named alternative for the contamination-first case. Alternatives and the condition that selects them are fully stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv1.2.6
    • Changednhd-surface-water-404-screener1 field changed
      • changedInput schema / properties / runBudgetSeconds / description
        Previous value: -"Optional. One time budget for the whole run, shared by the live drift checks (at most 90 s of it) and every site. If hydro.nationalmap.gov is slow and the budget runs out, the sites not yet reached are returned as rows with failure_kind \"deadline\" and null counts/flags instead of the run dragging on. Leave empty to use max(240, 90 + 30 x number of assets) seconds. Clamped to 30-3500; the run also always stops before its Apify timeout. Example: 240."New value: +"Optional. One time budget for the whole run, shared by the live drift checks (at most 180 s of it) and every site. If hydro.nationalmap.gov is slow and the budget runs out, the sites not yet reached are returned as rows with failure_kind \"deadline\" and null counts/flags instead of the run dragging on. Leave empty to use max(240, 90 + 30 x number of assets) seconds. Clamped to 30-3500; the run also always stops before its Apify timeout. Example: 240."
    • Changedparcel-owner-lookup1 field changed
      • addedInput schema / properties / runBudgetSeconds
        Added value: +{
        +  "description": "Optional wall-clock budget for the whole run. A parcel roll that is slow to answer is cut when the budget runs out: that address comes back lookup_status \"source_unavailable\" (or keeps the answer the house-number query already gave) with lookup_cut_by_deadline: true, instead of the run hanging. Leave empty for no budget. Example: 240.",
        +  "maximum": 3600,
        +  "minimum": 30,
        +  "type": "integer"
        +}
  2. 2 tool updatesv1.2.0
    • Changedlicense-verifier3 fields changed
      • addedInput schema / properties / mode
        Added value: +{
        +  "description": "Leave empty for the classic lookup/roster behaviour. Set \"roster-delta\" for the newly-credentialed feed: every credential ORIGINALLY ISSUED in the last sinceDays on the selected boards, one row each, with NPI cross-walk and OIG screen. The first run seeds a named baseline and emits the window as event_type \"inventory\"; later runs emit only event_type \"newly_licensed\" (a credential absent from the baseline AND issued on/after the previous run minus 7 days). A run against unchanged data emits 0 rows and bills nothing. Boards with an original-issue date: WA (DOH), TX-BON, TX-LVN, TX-APRN, IL, CO, CT, DE, OR (CCB), WA-CPA, WA-CONTRACTOR, NY-NOTARY, NY-COS, NY-APPRAISER. In this mode maxResults is the TOTAL row cap for the run (newest credentials first).",
        +  "enum": [
        +    "roster-delta"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / professions
        Added value: +{
        +  "description": "roster-delta only. Restrict to these professions, matched case-insensitively on the normalised profession (e.g. \"Registered Nurse\") or as a prefix of the board's raw credential type (\"Registered Nurse\" reaches \"Registered Nurse License\" and \"Registered Nurse Temporary Practice Permit\" but NOT \"Advanced Registered Nurse Practitioner\"). Examples: \"Registered Nurse\", \"Licensed Practical Nurse\", \"Physician And Surgeon\", \"Dentist\", \"Pharmacist\", \"Physical Therapist\". Omit for every profession the board publishes. Changing this filter starts a NEW delta baseline (the baseline is scoped by boards + professions). Example: [\"Registered Nurse\"].",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / sinceDays
        Added value: +{
        +  "description": "roster-delta only. How many days back the original-issue-date window reaches (1-400). The seeding run emits this whole window as inventory; later runs emit only credentials issued since the previous run (minus a 7-day publication slack). A non-integer or out-of-range value fails the run before any request is made. Example: 30.",
        +  "maximum": 400,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedparcel-owner-lookup1 field changed
      • changedInput schema / properties / addresses / description
        Previous value: -"US street addresses to resolve to a parcel + owner record, one per line (e.g. '1060 W Addison St, Chicago, IL'). v1 matches against the Cook County IL (Chicago), Philadelphia PA, and New York City assessment rolls; addresses outside those areas fall back to Census geocoding (lat/lon only). Every input address always yields exactly one output row — unmatched addresses come back with match_confidence 'none'. Example: [\"1060 W Addison St, Chicago, IL\",\"1234 Market St, Philadelphia, PA\",\"350 5th Ave, New York, NY\"]."New value: +"US street addresses to resolve to a parcel + owner record, one per line (e.g. '1060 W Addison St, Chicago, IL'). Matched against the Cook County IL (Chicago), Philadelphia PA and New York City rolls, plus (v1.1) statewide rolls for North Carolina, New York State, Wisconsin, Colorado, Minnesota (opt-in counties), Arkansas, Massachusetts, Connecticut and Vermont and county rolls for Maricopa AZ (Phoenix), Harris TX (Houston), Cuyahoga OH (Cleveland), Nashville TN and Washington DC - routed by the Census-geocoded point's county. Addresses elsewhere fall back to Census geocoding (lat/lon only). Every input address yields exactly one output row; see lookup_status on each row. Example: [\"1060 W Addison St, Chicago, IL\",\"1234 Market St, Philadelphia, PA\",\"350 5th Ave, New York, NY\"]."
  3. 2 tool updatesv1.1.3
    • Changedepa-contaminated-site-screener1 field changed
      • changedInput schema / properties / maxHitsPerProgram / description
        Previous value: -"Assets mode only: cap on the number of nearest site hits reported per program per asset (keeps output and billing bounded near dense industrial areas). The nearest sites are kept. Default 50. Range 1-1000. Example: 50."New value: +"Assets mode only: cap on the number of nearest site hits reported per program per asset (keeps output and billing bounded near dense industrial areas). The nearest sites are kept. Default 50. Range 1-1000. Example: 10. Applied by default if omitted: 50."
    • Changednhd-surface-water-404-screener1 field changed
      • addedInput schema / properties / runBudgetSeconds
        Added value: +{
        +  "description": "Optional. One time budget for the whole run, shared by the live drift checks (at most 90 s of it) and every site. If hydro.nationalmap.gov is slow and the budget runs out, the sites not yet reached are returned as rows with failure_kind \"deadline\" and null counts/flags instead of the run dragging on. Leave empty to use max(240, 90 + 30 x number of assets) seconds. Clamped to 30-3500; the run also always stops before its Apify timeout. Example: 240.",
        +  "maximum": 3500,
        +  "minimum": 30,
        +  "type": "integer"
        +}
  4. 6 tool updatesv1.1.1
    • Removeddescribe_gov_data_tool
    • Addeddescribe-gov-data-tool
    • Removedrun_gov_data_tool
    • Addedrun-gov-data-tool
    • Removedsearch_gov_data_tools
    • Addedsearch-gov-data-tools
  5. 15 tool updatesv1.0.2
    • First observeddescribe_gov_data_tool
    • First observedepa-contaminated-site-screener
    • First observedepa-drinking-water-quality-screener
    • First observedfaa-drone-airspace-checker
    • First observedfdic-ncua-health-rollup
    • First observedfema-nri-county-risk-profile
    • First observedfws-wetlands-proximity-screener
    • First observedhifld-grid-proximity-screener
    • First observedinterconnection-queue-tracker
    • First observedlicense-verifier
    • First observednhd-surface-water-404-screener
    • First observedparcel-owner-lookup
    • First observedrun_gov_data_tool
    • First observedsearch_gov_data_tools
    • First observedsite-due-diligence-bundle

TDQS

A4.5/5.0

Scored across 15 tools

Disambiguation5/5

Each dedicated tool targets a distinct data domain (airspace, grid, wetlands, drinking water, parcels, licenses, etc.), and the descriptions actively disambiguate the few adjacent pairs (bundle vs. contaminated-site screener, FWS wetlands vs. NHD surface water, drinking water vs. site contamination) with explicit 'CHOOSE THIS' / 'use X instead' guidance. The meta trio (search/describe/run) is clearly framed as the fallback path for anything not covered by the dedicated tools, so no two tools appear to do the same thing.

Naming Consistency4/5

All names are kebab-case and readable, and the 12 dedicated tools follow a consistent agency/topic-plus-role pattern (-screener, -checker, -tracker, -rollup, -profile, -lookup, -verifier, -bundle). The three meta tools, however, switch to a verb_noun convention (search-/describe-/run-gov-data-tool), leaving two naming families in one set.

Tool Count5/5

15 tools sits at the top of the well-scoped band but is justified: 12 curated high-frequency domain tools plus 3 meta tools that expose the remaining 111 catalog entries. No tool appears redundant or vestigial for the server's stated purpose.

Completeness5/5

The search/describe/run trio provides full reach into the 123-tool catalog, and describe-before-run plus local input validation removes dead ends, while the dedicated tools cover the most common government-data workflows (environmental, energy, water, parcels, licensing, financial health). No obvious lifecycle gap exists for a read-only data-lookup server.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    MCP server providing AI agents with access to German government open data. 12 tools across 6 categories: Autobahn traffic, DWD weather, NINA disaster warnings, SMARD energy market, Bundestag parliamentary data, and pollen forecasts. All APIs are free, no keys required.
    16
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that connects AI agents to over 200 tools across 27 Brazilian public APIs, covering economic, legislative, transparency, and judicial data. It enables users to query and cross-reference extensive government datasets from sources like IBGE, the Central Bank, and the Brazilian Congress.
    7
    1,801
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP Server for accessing 36 Brazilian public data sources and 1 agent, enabling AI agents to query government data on economy, legislation, transparency, judiciary, elections, environment, health, and more.
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that connects AI agents to 28 Brazilian public APIs, providing tools to query government data on economy, legislation, transparency, judiciary, elections, environment, health, and more.
    MIT