EPA Regulations MCP — US Environmental Protection Agency regulations (40 CFR). A thin, EPA-branded, keyless wrapper over the official eCFR API, scoped to the whole of Title 40: part 60 new source performance standards (emissions), part 261 hazardous waste identification (RCRA), part 122 NPDES permits (Clean Water Act), part 141 drinking water, part 262 hazardous waste generators, TSCA parts (700s), etc.
Two tools with complete input schemas and detailed descriptions. Both tools have proper JSON Schema definitions with required fields and type constraints. Descriptions are comprehensive (200+ chars each) and explain use cases well. However, output schemas are not documented, LLMs cannot predict response structure. No error handling guidance, no parameter validation rules stated, and no tool annotations (readOnlyHint). Parameter descriptions are present but lack format/constraint details (e.g., citation format examples, limit bounds). Tool composition is sound (search vs. fetch are distinct), but output documentation is a critical gap for production use.
Get the full text of one EPA regulation — a US Environmental Protection Agency rule codified in 40 CFR — by its citation. Returns the exact regulatory wording currently in force. Answers "what does 40 CFR 261 say", "what is the EPA regulation for X", "does the EPA require X", "read 40 CFR 60.1", "the RCRA hazardous waste rule", "the Clean Air Act / Clean Water Act regulation for X". Forgiving citation input: "261.4", "40 CFR 261.4", "§60.1", even "261.4(a)" (paragraph stripped to the section). Covers 40 CFR part 60 new source performance standards (emission standards / Clean Air Act), part 261 identification & listing of hazardous waste (RCRA), part 262 hazardous waste generators, part 122 NPDES permits (Clean Water Act), part 141 national primary drinking water regulations, part 63 NESHAP air toxics, TSCA parts (700s) toxic substances — the whole of Title 40 (air, water, waste, chemicals). This is EPA REGULATIONS (the rules/regulatory text); for EPA DATA (facility enforcement, ECHO compliance, GHG emissions) use the epa-echo / epa-emissions tools. Pass a whole part (e.g. "261" or "60") to get that part's section list. Example: epa_regulation({ citation: "261.4" }) -> exclusions from hazardous waste; epa_regulation({ citation: "40 CFR 60.1" }) -> applicability of emission standards. Keyless.
Keyword search across EPA regulations — US Environmental Protection Agency rules in 40 CFR. Answers "what EPA regulations cover X", "the environmental regulation / EPA rule about X", "find the EPA requirement for X". Great for topics: hazardous waste identification (RCRA), emission standards and air quality (Clean Air Act), NPDES water discharge permits (Clean Water Act), drinking water standards, air toxics / NESHAP, toxic substances (TSCA), Superfund / CERCLA, pesticide registration (FIFRA), greenhouse gas reporting requirements, underground storage tanks, stormwater. Returns matching EPA regulations with citation (40 CFR), heading, excerpt, and source URL. This searches EPA REGULATIONS (regulatory text); for EPA DATA (facility enforcement, ECHO, GHG emissions figures) use the epa-echo / epa-emissions tools. Example: epa_search({ query: "hazardous waste identification" }); epa_search({ query: "emission standards", limit: 15 }). Keyless.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Agents cannot plan downstream calls or extract data reliably.
Parameter 'limit' in epa_search lacks bounds. Description says '1-20 (default 10)' but no JSON Schema minItems/maxItems constraints. LLMs may pass invalid values; validation must be explicit in schema.
No error handling guidance. Tools call external eCFR API with retry logic, but error responses do not tell LLMs what to do next (retry, ask user, or fail). Missing recovery guides.
No tool annotations. Both tools are read-only (risk: READ_ONLY), but readOnlyHint is not set in schema. Agents cannot infer safety/idempotency without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Citation parameter description lacks format specification. States 'e.g. "261.4", "40 CFR 261.4"' but no regex pattern or formal constraint. Parser is forgiving, but LLMs need explicit format rules.