Skip to main content
Glama

Get EPA Enforcement Case

epa_echo_get_case
Read-onlyIdempotent

ECHO: Retrieve one civil enforcement case by case number, with the facilities, defendants, and settlements behind it. Returns the case's category, enforcement type, status, lead agency, relief sought, outcome, court and DOJ docket numbers, summary, and penalty, cost-recovery, compliance-action, and SEP totals; the laws and sections cited; the facilities the case names, one per EPA Registry ID, with address, NAICS and SIC codes, and the program IDs the case links (pass a registryId to epa_echo_get_facility for its compliance profile); defendants; pollutants; milestones; and every enforcement conclusion (order, consent decree, or other settlement) with its facilities, dates, penalties and costs, complying actions, pollutant reductions, and Supplemental Environmental Projects. Take the case number from epa_echo_search_violations or from a formal action's caseId in epa_echo_get_facility. Civil cases only: a criminal CR_ case number fails before any request.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "case_id": "<case_id>"
    },
    "name": "epa_echo_get_case"
  }
}

Input Schema

NameRequiredDescriptionDefault
case_idYesCivil enforcement case number: a caseId from epa_echo_search_violations (e.g. "03-2014-7010", "WA-100446") or a formal action's caseId from epa_echo_get_facility (e.g. "WAPSCAF000000000000000416"). Criminal case numbers ("CR_1270") are rejected.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
caseIdNoCase number, as ECHO records it
summaryNoCase summary as EPA wrote it
caseNameNoCase name; absent when ECHO records none
caseStatusNoCase status, e.g. "Final Order Entered", "Resolved", "Closed"
defendantsNoDefendants the case names; empty when ECHO records none, as on many state cases
facilitiesNoFacilities the case names, one per Registry ID in ECHO's order; a case can span several states
leadAgencyNoAgency leading the case: "EPA" or "State"
milestonesNoCase milestones in ECHO's order
pollutantsNoPollutants the case concerns
violationsNoViolation description ECHO records, e.g. "Oil Spill Violation Under CWA/OPA"
reliefSoughtNoRelief the case seeks, e.g. "Cost Recovery"; absent when ECHO records none
caseStatusDateNoDate caseStatus took effect (MM/DD/YYYY)
dojDocketNumberNoDepartment of Justice docket number, e.g. "90-11-3-06663/2"
enforcementTypeNoKind of enforcement action, e.g. "Administrative Order", "Bankruptcy", "CERCLA 120E Federal Facility Agreement (FFA)"
lawsAndSectionsNoStatutes and sections the case cites
caseCategoryCodeNoCase category code: "JDC" civil judicial, "AFR" administrative formal
courtDocketNumberNoThe court's or region's docket number, e.g. "18-195"
enforcementOutcomeNoHow the case was resolved, e.g. "Final Order No Penalty"
costRecoveryInDollarsNoResponse costs the parties agreed or were ordered to repay, in dollars — the outcome of a CERCLA cost-recovery case
enforcementConclusionsNoEnforcement conclusions in ECHO's order; fields ECHO leaves empty are absent
penaltyAssessedInDollarsNoFederal penalty assessed across the case, in dollars
penaltyCollectedInDollarsNoPenalty ECHO records as collected, in dollars
stateLocalPenaltyInDollarsNoState or local penalty assessed across the case, in dollars
complianceActionCostInDollarsNoEstimated cost of the injunctive relief and other actions required to return to compliance, in dollars
supplementalProjectCostInDollarsNoCost of the Supplemental Environmental Projects agreed, in dollars

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, so the safety profile is covered. The description adds genuinely useful behavioral context: civil-only enforcement with a hard failure mode for CR_ numbers, plus the scope of what is returned (conclusions, settlements, SEPs). It stops short of describing pagination or size limits on the deep nested response.

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

Conciseness3/5

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

Purpose is front-loaded correctly, but the middle sentence is an exhaustive run-on enumerating return fields that the output schema already defines (category, relief, penalties, facilities, defendants, pollutants, milestones, conclusions). That enumeration consumes most of the text without adding much beyond what structured data provides.

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 an output schema exists, the description need not enumerate returns, yet it still supplies the key operational facts an agent needs: valid case-number sources, sibling cross-references, and the civil-only constraint. Nothing required to call 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 coverage is 100% and the single case_id parameter is fully documented with examples and the criminal-rejection rule in the schema itself. The description's sourcing hint ('take the case number from...') reinforces but does not extend parameter semantics beyond the schema. 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?

The first clause names a specific verb ('Retrieve one civil enforcement case') and resource ('by case number'), and immediately constrains scope to civil cases only. It is clearly distinguishable from epa_echo_search_violations (search) and epa_echo_get_facility (facility profile), which it names.

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 tells the agent where to obtain the input ('from epa_echo_search_violations or from a formal action's caseId in epa_echo_get_facility') and what not to attempt ('a criminal CR_ case number fails before any request'). The routing rule to epa_echo_get_facility via registryId is also stated.

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.