Skip to main content
Glama

Facility Compliance — EPA ECHO: Facility Profiles, Violations & Enforcement

search_facilities

Read-only

Search EPA-regulated facilities by name fragment, and optionally narrow by city, state (two-letter code), ZIP code prefix, county name (requires state; official county name, case-insensitive), program (CAA, CWA, SDWA, RCRA, TRI, GHG), current compliance status, or active facilities only. Results are ordered by enforcement significance (formal actions, then penalties), and each result shows the facility's programs, compliance status, inspection count, formal action count, and total penalties. Use list_facilities_with_violations instead for a worst-first list of only the facilities currently in violation, and get_facility with a result's Registry ID for one facility's full unified profile.

Input Schema

NameRequiredDescriptionDefault
zipNoZIP code or prefix, e.g. '606'
cityNoCity name, e.g. 'Chicago'
limitNoMax results (default 50, max 500)
queryNoName fragment to match, e.g. 'Steel'
stateNoTwo-letter state code, e.g. IL
countyNoCounty name, e.g. 'Cook' (requires state)
statusNoCurrent compliance status, e.g. 'Significant Violation'
programNoProgram code: CAA, CWA, SDWA, RCRA, TRI, or GHG
active_onlyNoOnly active facilities

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare a read-only, closed-world, non-destructive read, so the safety profile is covered. The description adds genuinely new behavior: results are ordered by enforcement significance (formal actions, then penalties), and it enumerates what each result row contains. It stops short of describing pagination/limit interplay beyond what the schema states.

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?

Three sentences, front-loaded with the core search then filters, ordering, and finally the sibling routing. The first sentence is long and list-heavy but every clause carries filter or behavior information, so little is wasted.

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 compensates by listing the fields returned per result (programs, compliance status, inspection count, formal actions, total penalties) and the sort order. Enough to call correctly and interpret results, though it says nothing about empty-result behavior or how the 50-default/500-max limit affects a broad query.

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 all nine parameters including the county-requires-state constraint and program codes. The description mostly restates those same filters (state as two-letter code, ZIP prefix, program codes) rather than adding format or matching semantics such as partial vs exact matches on city/county.

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 EPA-regulated facilities") plus the primary matching mode (name fragment) and the full set of optional narrowers. It also names the two siblings it is not — list_facilities_with_violations and get_facility — so an agent can discriminate 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?

Explicitly routes the agent: use list_facilities_with_violations for a worst-first in-violation list, and get_facility with a result's Registry ID for a single facility's full profile. It also states a real precondition (county requires state) and that facilities can be narrowed to active only.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources