Skip to main content
Glama

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

list_facilities_with_violations

Read-only

List facilities whose current EPA compliance status is a violation (Violation Identified, Significant Violation, or Violation), worst first: significant violations first, then most quarters in noncompliance, then largest penalties. Filter by state, by county (requires state), or by program (CAA, CWA, SDWA, RCRA, TRI, GHG). Useful for screening an area or a program for current environmental compliance problems. Each result shows the facility's name, city, state, ZIP and county, its EPA programs, compliance status, quarters in noncompliance, inspection and formal-action counts, and total penalties. Returns at most limit results (default 50, max 500) with no offset paging.

Input Schema

NameRequiredDescriptionDefault
limitNoMax results (default 50, max 500)
stateNoTwo-letter state code, e.g. IL
countyNoCounty name, e.g. Cook (requires state)
programNoProgram code: CAA, CWA, SDWA, RCRA, TRI, or GHG

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the read-only annotations, the description discloses the exact ranking logic (significant first, then quarters in noncompliance, then penalties), the full result field set, and a hard behavioral constraint — no offset paging, max 500, default 50. These are the details an agent needs to interpret and bound the call.

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 dense sentences, front-loaded with the compliance-status scope and sort order, followed by filters and return shape. Mild redundancy in repeating the limit default/max already in the schema, but no wasted framing.

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 exists, yet the description itemizes returned fields, sorting, and paging limits, and covers all filter dimensions. An agent has everything needed to call and interpret this tool correctly.

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%, so all four parameters are already documented, including the county-requires-state dependency and the program code list. The description restates those facts (including default/max limit) rather than adding syntax or format guidance, so it lands at the baseline for a fully documented schema.

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 (list facilities) with an explicit scope: current EPA compliance status in the violation set, with the accepted status strings enumerated. It also specifies the sort order, letting an agent distinguish it from siblings like search_facilities or get_county_compliance_summary 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?

"Useful for screening an area or a program for current environmental compliance problems" gives a clear usage context, and the filter combinations (state / county requires state / program) tell the agent how to narrow. It stops short of naming alternatives such as search_facilities or the state/county summary siblings, so it is clear but not fully comparative.

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