Skip to main content
Glama

Search Drinking Water Systems

epa_water_search_systems
Read-onlyIdempotent

Drinking water (SDWIS): Search drinking water systems (SDWIS) by state or ZIP code. Returns system name, PWSID, population served, primary water source, and activity status. With has_violation, returns only systems with an open violation — one SDWIS has not marked returned to compliance or closed out when the system was deactivated. At least one of state or zip_code is required.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of systems to return (1–200)
stateNo2-letter US state abbreviation (e.g. "WA", "CA")
pws_typeNoFilter by public water system type: community=permanent residences, non-transient=regular non-residents (schools, businesses), transient=occasional users (campgrounds)
zip_codeNo5-digit ZIP code of the water system's address of record — often its owner's or operator's office, which can be far from the area the system serves
has_violationNoWhen true, return only systems with an open SDWIS violation (not yet returned to compliance). Works with state, zip_code, or both.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
noticeNoPresent when the has_violation check read only part of what it needed — the first 1,000 open violation records for the state, the first 1,000 systems in the ZIP, or the first 1,000 open violation records for a group of the ZIP’s systems — so violating systems outside that part may be missing from the results.
messageNoRecovery hint when no systems are found. Absent when systems are returned.
systemsNoMatching public water systems
totalCountNoNumber of systems returned

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, open-world behavior, so the bar is lower; the description still adds real domain context by defining what an 'open violation' means — not returned to compliance, or not closed out when the system was deactivated. It omits any statement about result-set size limits or pagination, which matters for a search tool.

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 sentences, front-loaded with the verb and resource, then output fields, then the has_violation nuance, then the constraint. Slight redundancy in repeating 'drinking water (SDWIS)' twice in the opening clause, but no wasted content overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and full parameter documentation already present, the description only needed to add domain semantics and invocation rules, and it does both. The one gap is behavior for large result sets relative to the 1–200 limit, which an agent would want to know before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description goes beyond it by restating the state/zip_code at-least-one rule and by unpacking the has_violation semantics more fully than the schema's one-line note. It adds nothing about limit or pws_type, leaving those entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Search drinking water systems (SDWIS) by state or ZIP code' — and enumerates the returned fields, so the agent knows exactly what it gets. It doesn't name or contrast any sibling, though the drinking-water domain is unmistakably distinct from the air/facility/superfund siblings, so confusion risk is low.

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?

'At least one of state or zip_code is required' gives a concrete invocation precondition, and the has_violation sentence explains the condition under which the tool narrows to non-compliant systems. It stops short of stating when not to use it or what to do when neither filter is available.

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.