Skip to main content
Glama

Echo Search By Violation

echo_search_by_violation
Read-onlyIdempotent

Find EPA-regulated facilities currently flagged with an identified violation, filterable by state and environmental program (CWA/CAA/RCRA/ALL). EPA ECHO has no server-side violation filter, so this scans up to 1,000 facilities for the state and returns the ones in violation — it is a sample, not an exhaustive statewide count. Returns facility IDs, names, addresses, and compliance status per program.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (default 20, max 100).
stateNoTwo-letter state abbreviation (e.g., "TX").
programNoProgram filter: "CWA", "CAA", "RCRA", or "ALL" (default "ALL").

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
programYesProgram filter applied (CWA, CAA, RCRA, or ALL)
returnedYesNumber of facilities returned in this response
facilitiesYesList of facilities in significant non-compliance
total_countYesTotal number of facilities in significant non-compliance

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "program": "CWA",
      -    "state": "CA"
      -  },
      -  {
      -    "limit": 100,
      -    "state": "TX"
      -  }
      -]New value: +[
      +  {
      +    "program": "CWA",
      +    "state": "DE"
      +  },
      +  {
      +    "limit": 20,
      +    "state": "VT"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "facilities": {
      +      "description": "List of facilities in significant non-compliance",
      +      "items": {
      +        "properties": {
      +          "caa_status": {
      +            "description": "Clean Air Act compliance status",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "city": {
      +            "description": "City name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "cwa_status": {
      +            "description": "Clean Water Act compliance status",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "formal_action_count": {
      +            "description": "Number of formal enforcement actions",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "inspection_count": {
      +            "description": "Total number of inspections",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "latitude": {
      +            "description": "Geographic latitude",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "longitude": {
      +            "description": "Geographic longitude",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "naics_codes": {
      +            "description": "North American Industry Classification System codes",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "description": "Facility name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "quarters_in_noncompliance": {
      +            "description": "Number of quarters facility was in non-compliance",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "rcra_status": {
      +            "description": "Resource Conservation and Recovery Act compliance status",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "registry_id": {
      +            "description": "EPA Registry ID for the facility",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "sdwis_status": {
      +            "description": "Safe Drinking Water Information System status",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "sic_codes": {
      +            "description": "Standard Industrial Classification codes",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "state": {
      +            "description": "State abbreviation",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "street": {
      +            "description": "Street address",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "total_penalties": {
      +            "description": "Total penalties assessed in dollars",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "zip": {
      +            "description": "ZIP code",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "program": {
      +      "description": "Program filter applied (CWA, CAA, RCRA, or ALL)",
      +      "type": "string"
      +    },
      +    "returned": {
      +      "description": "Number of facilities returned in this response",
      +      "type": "number"
      +    },
      +    "total_count": {
      +      "description": "Total number of facilities in significant non-compliance",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total_count",
      +    "returned",
      +    "program",
      +    "facilities"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "program": "CWA",
      +    "state": "CA"
      +  },
      +  {
      +    "limit": 100,
      +    "state": "TX"
      +  }
      +]
  4. First observed

TDQS

A4.5/5.0
Behavior5/5

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

The description adds behavioral details beyond annotations: it scans up to 1,000 facilities, returns only those in violation, and is a sample. Annotations already indicate read-only, open-world, idempotent, non-destructive, and the description reinforces and expands on these traits.

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?

The description is three sentences, front-loaded with purpose, and each sentence adds value (filters, sampling behavior, return fields). No extraneous text.

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 and the presence of an output schema, the description covers return fields, sampling limitation, and required filters. It is sufficient for correct invocation without needing additional information.

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 each parameter has clear descriptions. The tool description mentions the parameters in context (filterable by state and program) but does not add substantive new meaning beyond the schema. 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 clearly states the tool finds EPA-regulated facilities with violations, filterable by state and program. It distinguishes from sibling tools like echo_violations by specifying it returns facilities in violation and is a sample.

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?

The description explains the limitation that EPA ECHO has no server-side violation filter, so the tool scans up to 1,000 facilities and returns a sample, not an exhaustive count. This provides clear context for when to use the tool, though it does not explicitly compare to alternatives.

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.