Epa Drinking Water MCP Server
概要
作者による説明(英語の原文)
Search EPA drinking water systems, violations, enforcement, and contaminant measurements.
PopNx MCPの3つの柱
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
- 利用者の声iレビューはまだありませんレビューは今後のステップで、アカウント機能と一緒に始まります
- 私たちの基本チェックi2項目中2項目に合格公開情報からチェック。コードはまだスキャンしていません
- 利用状況iとても新しい↓ 269/週 · ★ 2
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンで動く
- トランスポート: stdio, Streamable HTTP
- カテゴリ: 検索・AIの記憶
インストール
使っているAIアプリを選んで、設定をコピーしてください。
インストールの前に
- 基本チェック:2項目中2項目に合格
- あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
- 自分で入力するもの:
CANVAS_PROVIDER_TYPE,SDWIS_CLAMP_LIMITS,SDWIS_DATAFRAME_DROP_ENABLED,CANVAS_DEFAULT_ROW_LIMIT,CANVAS_DEFAULT_MEMORY_LIMIT_MB,MCP_LOG_LEVEL
必要なもの
- npmNode.jsのインストール(npxコマンドに必要)
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"epa-drinking-water": {
"command": "npx",
"args": [
"-y",
"@cyanheads/epa-drinking-water-mcp-server"
],
"env": {
"CANVAS_PROVIDER_TYPE": "your-value",
"SDWIS_CLAMP_LIMITS": "your-value",
"SDWIS_DATAFRAME_DROP_ENABLED": "your-value",
"CANVAS_DEFAULT_ROW_LIMIT": "your-value",
"CANVAS_DEFAULT_MEMORY_LIMIT_MB": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add epa-drinking-water --env CANVAS_PROVIDER_TYPE=your-value --env SDWIS_CLAMP_LIMITS=your-value --env SDWIS_DATAFRAME_DROP_ENABLED=your-value --env CANVAS_DEFAULT_ROW_LIMIT=your-value --env CANVAS_DEFAULT_MEMORY_LIMIT_MB=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/epa-drinking-water-mcp-server動かす前に、空欄の値を入力してください。
または、設定を自分でコピーする
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"epa-drinking-water": {
"command": "npx",
"args": [
"-y",
"@cyanheads/epa-drinking-water-mcp-server"
],
"env": {
"CANVAS_PROVIDER_TYPE": "your-value",
"SDWIS_CLAMP_LIMITS": "your-value",
"SDWIS_DATAFRAME_DROP_ENABLED": "your-value",
"CANVAS_DEFAULT_ROW_LIMIT": "your-value",
"CANVAS_DEFAULT_MEMORY_LIMIT_MB": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
または、設定を自分でコピーする
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"epa-drinking-water": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/epa-drinking-water-mcp-server"
],
"env": {
"CANVAS_PROVIDER_TYPE": "your-value",
"SDWIS_CLAMP_LIMITS": "your-value",
"SDWIS_DATAFRAME_DROP_ENABLED": "your-value",
"CANVAS_DEFAULT_ROW_LIMIT": "your-value",
"CANVAS_DEFAULT_MEMORY_LIMIT_MB": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
自分で入力する値
CANVAS_PROVIDER_TYPEenvOptional SQL staging in the npm runtime: none or duckdb.SDWIS_CLAMP_LIMITSenvClamp inline row limits above 500 with a notice; false rejects them.SDWIS_DATAFRAME_DROP_ENABLEDenvEnable removal of staged tables when DataCanvas is enabled.CANVAS_DEFAULT_ROW_LIMITenvSQL retained-row ceiling; the server maximum is 25000.CANVAS_DEFAULT_MEMORY_LIMIT_MBenvDuckDB memory budget per engine in MiB; maximum 512.MCP_LOG_LEVELenvSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月10日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント cyanheads で確認済みです
- ✓ 合格
今もメンテナンスされている
コードの最終更新:7 日前
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
検索・AIの記憶のほかのサーバーとの比較i
- このカテゴリのほかの5865件のうち80%よりスターが多い
- このカテゴリのほかの5865件のうち85%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5865件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
Epa Drinking Water MCP Serverは安全ですか?
当てはまる基本チェック2項目のうち2項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は7 日前、最新バージョン(0.3.0)がレジストリに届いたのは7 日前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
代わりに使えるものは?
同じカテゴリには:Ruflo, Context7, Metabase
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
@cyanheads/epa-drinking-water-mcp-server Search EPA drinking water systems, violations, enforcement actions, and contaminant measurements via MCP. STDIO or Streamable HTTP. 9 Tools
Overview
EPA drinking-water records from SDWIS DMAP and the UCMR 5 publication. Resolve water systems, inspect historical violations and enforcement, and retrieve Lead and Copper Rule summaries or unregulated-contaminant occurrence measurements. Runs over stdio or Streamable HTTP without an API key.
Tools
| Tool | Description |
|---|---|
sdwis_list_reference | Decode identifiers, contaminant namespaces, coverage, standards, and EPA dictionaries |
sdwis_search_water_systems | Find contact-free public water-system inventory |
sdwis_get_system_profile | Retrieve summary, geography, service areas, facilities, or treatment |
sdwis_get_violations | Page reported historical SDWA violations |
sdwis_search_contaminants | Select violations, LCR summaries, or UCMR 5 occurrence |
sdwis_get_enforcement_actions | Retrieve actions or violation associations |
sdwis_dataframe_describe | Inspect tables and provenance inside a supplied canvas |
sdwis_dataframe_query | Run read-only SQL against staged partitions |
sdwis_dataframe_drop | Optionally remove one staged table |
The dataframe tools require npm or Docker with CANVAS_PROVIDER_TYPE=duckdb; drop also requires SDWIS_DATAFRAME_DROP_ENABLED=true. The Claude Desktop bundle provides the six EPA-reading tools.
The published caller guide covers evidence chains and staged analysis. Plugin, npm, Docker, and MCPB installs include it; MCP clients can read skill://epa-drinking-water-guide/SKILL.md through the Skills extension.
Capability reference
sdwis_list_reference tool
- Required
topic:identifiers,system_types,sources,contaminants,violation_types,enforcement_types,treatment,service_areas,standards, orcoverage; optional substringquery - Interpretation topics are bundled; dictionaries are live. SDWIS codes and UCMR analytes remain separate namespaces; standards explain MCL, MCLG, and action levels without classifying historical records as exceedances
sdwis_search_water_systems tool
- At least one narrowing selector:
pwsid,name_contains,state,county(requires state),population_min/population_max,source,system_type,school_or_daycare,primacy_agency, orpwsid_prefix; names match literal case-insensitive substrings and counties match normalized names exactly, including punctuation activitydefaults toactive; chooseinactiveorallexplicitly. State means reported legal-entity state; county means county served, and neither establishes complete physical service boundariesschool_or_daycare:trueselects reportedY, false selectsN; unknown indicators match neither. Discovery and profile summaries preserve school/daycare and wholesaler source indicators; this is not an inventory of every school receiving public water
sdwis_get_system_profile tool
- Required nine-character alphanumeric
pwsid;sectionissummary(default),geography,service_areas,facilities, ortreatment, independently paged - Summary returns
systemwith emptyitemsandreturned:0; child sections returnitems.foundtracks inventory existence: an empty child section can still returnfound:truewith an empty-section notice.found:falseis not a compliance finding; operator contacts and mailing addresses are excluded - Facilities resolve SDWIS treatment/violation
facility_idvalues within the same PWSID; optional exactfacility_idis valid only for this section. SDWIS and UCMR facility IDs are separate namespaces
sdwis_get_violations tool
- Require
pwsidorstate; optionalcounty,contaminant,category,health_based, andcompliance_status - Inclusive
date_from/date_toselect compliance-period overlap; a known endpoint can prove overlap despite a missing endpoint. Indeterminate periods are excluded with a count of affected rows examined during the call. Monitoring/reporting violations may lack concentrations contaminant:leadselects1030and Lead and Copper Rule code5000, including copper and monitoring records; either exact code selects only itselfstage:truerequests a partition;stage_max_rowsdefaults to 5,000 and clamps at 25,000. Supply a heldcanvas_idto add another partition
sdwis_search_contaminants tool
- Require
dataset(violations,lcr, orucmr5) andpwsidorstate; UCMR also acceptszipalone without SDWIS membership requests. Additional selectors intersect; county still requires state. Optional contaminant and inclusive dates select compliance periods, LCR sample periods, or UCMR collection dates respectively - LCR lead/copper select PB90/CU90 summaries, not household samples. UCMR
PFAScovers 29 analytes; lithium is separate.zipanddetected_onlyare UCMR-only; service ZIP is not sample location, and censored values remain unknown below reporting limits - Supports
stage,canvas_id, andstage_max_rows(5,000 default, 25,000 maximum). Cold UCMR calls may need a 180-second client timeout; broadstate/countyscopes resolve reported-state membership through resumable pages before returning occurrence rows
sdwis_get_enforcement_actions tool
- Actions require
pwsidor reported legal-entitystate, with optional state-qualifiedcounty; geographic membership resolves before action retrieval.section:associationsand anyviolation_idfilter requirepwsid; supplied geography still intersects that system action_type,originator, and inclusive enforcement-date filters apply only to actions. Associations page separately; source action text does not imply a federal order or monetary penalty- Action types match the complete published code exactly and case-insensitively, including punctuation; missing dictionary labels remain null
- Supports
stage,canvas_id, andstage_max_rows(5,000 default, 25,000 maximum)
sdwis_dataframe_describe tool
- Required caller-held
canvas_id; optional exacttable_name;limitdefaults to 10 with a cap of 500 andcursorpagination - One whole table per item includes its
columnsarray, row count, expiry, filters, provenance, completeness, and continuation; counts and limits are in tables. There is no global canvas listing - Describe continuations retain their original deadline (at most 15 minutes or table expiry when issued) and reject changed membership, rows, schema, or lineage. Query-driven TTL extensions preserve cursor identity; responses report current authoritative expiry
selection_coveragereports which source partitions and required companion relations remain staged, separately from SQL results
sdwis_dataframe_query tool
- Required
canvas_idand one read-only SELECT, WITH, or FROM statement insql(at most 20,000 characters); describe the canvas first - Retains at most
CANVAS_DEFAULT_ROW_LIMIT(framework default 10,000), bounded by 25,000.row_count,truncated, andhas_moredistinguish retained rows from omitted rows; continuations read an immutable result for up to 15 minutes - File, network, write, and system-catalog access are refused.
source_completeconservatively includes every live source partition, including tables the SQL does not reference - Known caller-correctable SQL errors preserve path-redacted diagnostics and structured details; unknown engine/database failures remain generic
selection_coverage.chain_completeconfirms the canvas holds a complete source retrieval chain; it does not establish which tables the SQL uses or overridetruncated. Query continuations retain the original coverage snapshot
sdwis_dataframe_drop tool
- Required
canvas_idand exacttable_name; requiresCANVAS_PROVIDER_TYPE=duckdbandSDWIS_DATAFRAME_DROP_ENABLED=true - Idempotent: missing tables or expired canvases return
dropped:false; other staged partitions remain available
Features
Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
EPA-specific:
- Keyless SDWIS reads over EPA DMAP, paced at one request per second, with every returned row rechecked against the requested predicates
- Contact-free inventory and service membership; source codes kept alongside EPA dictionary labels, which stay null when EPA has none
- Quarterly SDWIS records, LCR summaries, and limited-participation UCMR 5 monitoring kept distinct; empty results establish neither current compliance, tap-water safety, nor contaminant absence
- UCMR 5 archive downloaded and indexed once per published revision on first use; censored results keep a null value with the reporting limit
Agent-friendly output:
- Provenance —
effective_filters, source URL,retrieved_at, publication/HTTP validators when available, and interpretation caveats; source dates keep their calendar day, with non-midnight timestamps in a_rawfield - Completeness —
source_complete:falsecan stay false withhas_more:falseonce earlier rows went to other pages or partitions; aggregation does not restore it - Source coverage —
selection_partitionidentifies a retrieval and its delivered partition; canvasselection_coveragedistinguishes a fully staged chain from missing, dropped, or expired partitions and companions - Whole-record paging — every
limit