# sdwis.water.enforcement

Look up EPA enforcement actions taken against public water systems under the Safe Drinking Water Act. Filter by PWSID (Public Water System Identifier) to get all enforcement history for a specific utility, or filter by enforcement action type code. Returns enforcement date, action type, and originator. Enforcement types include Formal Administrative Orders (EFG), Compliance Schedules, Referral to State, and Civil Penalties. Combine with sdwis.water.violations to understand the full compliance picture for a water system. Data source: EPA SDWIS Federal Reporting Services, US Gov public domain.

Agent View of the PolicyLayer registry record for `sdwis.water.enforcement`. HTML page: https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/sdwis.water.enforcement

## Facts

- Tool: `sdwis.water.enforcement`
- Server: Apibase (`apibase-mcp-client`) — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase.md
- Install: `npx -y apibase-mcp-client`
- Homepage: https://github.com/whiteknightonhorse/APIbase
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 3
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | integer | no | Maximum number of enforcement actions to return (1–100, default 20) |
| `pwsid` | string | no | Public Water System Identifier (PWSID) to look up enforcement actions for a specific system (e.g. CA3310067) |
| `action_type` | string | no | Enforcement action type code (e.g. EFG for Formal Enforcement Order, 3EF for Third Violation) |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "sdwis.water.enforcement",
    "arguments": {}
  }
}
```

## Why sdwis.water.enforcement is rated Low

Retrieves public EPA enforcement data without side effects or modification capability.

From the tool's own definition: "Look up EPA enforcement actions; returns enforcement date, action type, originator."

Risk signals: Admin/system-level operation

## Use case

AI agents call sdwis.water.enforcement to retrieve information from Apibase without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Apibase:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "sdwis.water.enforcement": {}
  }
}
```

## Other tools on Apibase (1383)

- `infra.cloudflare.dns_delete` — Destructive — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/infra.cloudflare.dns-delete.md
- `infra.cloudflare.purge_cache` — Destructive — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/infra.cloudflare.purge-cache.md
- `polymarket.trading.cancel_order` — Destructive — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/polymarket.trading.cancel-order.md
- `ai.image.generate` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/ai.image.generate.md
- `aipush.market.report` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/aipush.market.report.md
- `audio.transcribe.submit` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/audio.transcribe.submit.md
- `dev.code.execute` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/dev.code.execute.md
- `device.registry.command` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/device.registry.command.md
- `document.convert.from_pdf` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/document.convert.from-pdf.md
- `document.convert.to_pdf` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/document.convert.to-pdf.md
- `document.convert.web_to_pdf` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/document.convert.web-to-pdf.md
- `hf_inference.nlp.translate` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/hf-inference.nlp.translate.md
- `infra.browser.create_session` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/infra.browser.create-session.md
- `phone.telnyx.sms_world` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/phone.telnyx.sms-world.md
- `phone.twilio.sms` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/phone.twilio.sms.md
- `platform.batch.call` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/platform.batch.call.md
- `scb.tables.query` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/scb.tables.query.md
- `socrata.datasets.query` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/socrata.datasets.query.md
- `web.screenshot.capture` — Execute — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/web.screenshot.capture.md
- `domain.namesilo.register` — Financial — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/domain.namesilo.register.md
- `phone.telnyx.sms_premium` — Financial — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/phone.telnyx.sms-premium.md
- `polymarket.trading.place_order` — Financial — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/polymarket.trading.place-order.md
- `abr.business.abn_lookup` — Read — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/abr.business.abn-lookup.md
- `abr.business.acn_lookup` — Read — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/abr.business.acn-lookup.md
- `abr.business.name_search` — Read — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/abr.business.name-search.md
- `abs.demographics.population` — Read — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/abs.demographics.population.md
- `abs.economy.cpi` — Read — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/abs.economy.cpi.md
- `abs.economy.gdp` — Read — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/abs.economy.gdp.md
- `abs.economy.labour_force` — Read — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/abs.economy.labour-force.md
- `abs.economy.trade` — Read — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase/abs.economy.trade.md
- …and 1353 more: https://policylayer.com/tools/io-github-whiteknightonhorse-apibase.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-whiteknightonhorse-apibase · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-whiteknightonhorse-apibase
