USGS Water
live ScienceReal-time streamflow, gage height, and daily water data from USGS National Water Information System
3 tools
0ms auth
free tier 50 calls/day
Tools
get_current
required: site_id Get current instantaneous streamflow (discharge, cfs) and gage height (ft) for a USGS monitoring site.
Parameters
Name Type Description
site_id req string USGS site number (e.g., "01646500" for Potomac River at Little Falls, MD) Try it
Response
search_sites
required: state Find active USGS stream-gage sites in a US state that have real-time instantaneous data.
Parameters
Name Type Description
state req string Two-letter US state abbreviation (e.g., "VA", "CA", "TX") Try it
Response
get_daily
required: site_id, start, end Get daily mean streamflow values for a USGS site over a date range. Dates must be in YYYY-MM-DD format.
Parameters
Name Type Description
site_id req string USGS site number start req string Start date in YYYY-MM-DD format end req string End date in YYYY-MM-DD format Try it
Response
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
List available tools
bash
curl -X POST https://gateway.pipeworx.io/usgswater/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' Call a tool
bash
curl -X POST https://gateway.pipeworx.io/usgswater/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_current","arguments":{"site_id": "01646500"}}}' Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("get_current", {"site_id":"example"}); ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("real-time streamflow, gage height, and daily water data from usgs national water information system");