Skip to main content
Glama
cliwant

mcp-sam-gov

by cliwant

echo_search_facilities

Read-only

Search EPA-regulated facilities by US state to screen environmental compliance and enforcement history, including violations, inspections, and penalties. Filter by industry code or facility name.

Instructions

Search EPA-regulated facilities by US state (+ optional sic / facilityName / majorOnly / federalOnly) with compliance/enforcement screening fields (EPA ECHO, keyless) — the NEW facility environmental compliance-risk / due-diligence axis (CAA/CWA/RCRA/SDWA violation, inspection, penalty, SNC history). Input state (REQUIRED enum — the SSRF + silent-zero guard), sic (2–4 digits, a REAL filter), naics (2–6 digits, BEST-EFFORT — ECHO DROPS it upstream, reported in _meta.filtersDropped + a note), facilityName (substring; a typo silently returns 0), majorOnly/federalOnly (bool), limit (≤1000, def 100), offset (multiple of limit). Returns { state, facilities:[…verbatim rows incl. RegistryID…], summary:{ queryRows, programCounts, totalPenalties } } + honest _meta. HONESTY: totalAvailable = the EXACT QueryRows total (NEVER the page size); a hidden two-step QueryID pagination fetches the rows (the QueryID is ephemeral/globally-recycled, never exposed); genuine-empty ⇒ complete:true/total:0; a queryset-limit overflow / bad query ⇒ invalid_input; an outage/5xx ⇒ THROWS (never a fake empty). Feed a row's RegistryID to echo_facility_report.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sicNoIndustry filter (2–4 digit SIC code). A REAL filter — ECHO narrows by SIC (live-verified). A code with no facilities returns 0 (silent-zero — verify the code).
limitNoFacilities per page (→ responseset), 1..1000, default 100.
naicsNoBEST-EFFORT industry filter (2–6 digit NAICS). WARNING: ECHO DROPS the NAICS filter upstream (live-verified 2026-07-12) — the returned facilities are NOT guaranteed to match this code; it is reported in _meta.filtersDropped + a note. Use `sic` (which DOES narrow) to scope by industry.
stateYesUS state / territory 2-letter code to scope the search (REQUIRED — an unscoped national query is ~5.6M rows; the enum is also the SSRF value guard + the silent-zero guard). e.g. 'DC', 'TX', 'CA', 'PR'.
offsetNo0-based offset for pagination, default 0. MUST be an exact multiple of `limit` (ECHO pages on fixed boundaries; a non-multiple ⇒ invalid_input).
majorOnlyNotrue ⇒ only EPA 'major' facilities (p_maj=Y).
federalOnlyNotrue ⇒ only federal facilities (p_ff=Y).
facilityNameNoFacility-name substring filter (p_fn). NOTE: not validated by ECHO — a typo silently returns 0 results, not an error.
Behavior5/5

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

Beyond annotations (readOnlyHint, openWorldHint), the description discloses many behavioral traits: two-step pagination with ephemeral QueryID, honest totalAvailable (not page size), error handling (invalid inputs throw, outages throw, never fake empty), and the fact that naics filter is dropped upstream. No contradictions.

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 description is quite long but densely packed with useful information. It is front-loaded with the main purpose. Could be slightly more structured (e.g., bullet points for parameters) but remains clear and efficient given the complexity.

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?

Given the tool's complexity (8 params, one required, special pagination, error modes, relationship to another tool), the description is remarkably complete. It covers return structure (state, facilities, summary, _meta), honesty guarantees, and all edge cases. No output schema, but description compensates by outlining the response fields.

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

Parameters5/5

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

Schema coverage is 100%, but description adds significant context: state enum is also SSRF/silent-zero guard; offset must be multiple of limit; facilityName typo silent zero; naics is best-effort and dropped; majorOnly/federalOnly are straightforward. Description enriches understanding far beyond schema alone.

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 clearly states the tool's function: searching EPA-regulated facilities by US state with compliance/enforcement fields. It specifies the main resource (facilities) and action (search), and distinguishes it from sibling echo_facility_report by mentioning that tool as a follow-up.

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?

Provides explicit guidance: state is required and also serves as SSRF guard; sic is a real filter while naics is best-effort and may be dropped; facilityName typos silently return 0; pagination details (limit/offset multiples, max 1000); and mentions feeding results to echo_facility_report for more detail.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cliwant/mcp-sam-gov'

If you have feedback or need assistance with the MCP directory API, please join our Discord server