Usgs Water MCP Server
by usgs-water.caseyjhand.com in Developer tools
Query real-time and historical USGS water data from ~8,000 stream gages and groundwater wells.
https://usgs-water.caseyjhand.com/mcp
Last 30 days
- Uptime
- 100%
- Response time
- 236 ms typical, 236 ms slowest 5%
- Last check
- 5 h ago
- Next check
- in 49 min
How to call it
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"usgs-water-mcp-server": {
"type": "http",
"url": "https://usgs-water.caseyjhand.com/mcp"
}
}
}7 tools
- water_list_parameters
Look up USGS parameter codes — the 5-digit codes every other tool's parameterCd takes. With no query, lists a curated set of well-known codes with names, units, and thematic group, from a built-in table (no network call): 00060 = "Discharge" (ft³/s), 00065 = "Gage height" (ft), 0
- water_find_sites
Find USGS water monitoring sites by bounding box, state, county, or HUC watershed code, filtered by site type and parameter availability. Returns site numbers, names, coordinates, types, altitude, and (in expanded mode) drainage area. Call this first — water_get_readings, water_g
- water_get_readings
Get the latest instantaneous (~15-min, real-time) values for up to 100 USGS sites in one call — per-site, per-parameter records with timestamp, value, unit, and provisional/approved qualifiers. Omitting parameterCd returns every parameter each site publishes. A site measuring one
- water_get_series
Get a daily or instantaneous time series for one USGS site and parameter over a date range, as time-ordered value records. NWIS can hold several series for one query — one per daily statistic (mean, maximum, minimum) and one per sensor (method); this returns one, reporting its st
- water_get_conditions
Get a USGS site's current reading ranked against its full period-of-record daily-mean percentiles for the same calendar day — a "how unusual is this" percentileClass (record-high to record-low), not a flood-stage or drought determination (this tool fetches no authoritative thresh
- water_dataframe_query
Run a read-only SQL SELECT against water data tables staged on a DataCanvas by water_get_series or water_find_sites. Workflow: run water_get_series or water_find_sites (get canvas_id + table_name) → water_dataframe_describe (confirm the table and its columns) → water_dataframe_qu
- water_dataframe_describe
List tables and columns staged on a DataCanvas by water_get_series or water_find_sites. Call this after water_get_series or water_find_sites returns a canvas_id to discover the exact table name and column types before writing a query. Then pass the table name to water_dataframe_q
Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 5 h ago | Passed | 200 | 236 ms |