About River Level MCP
River Level MCP is an MCP server for AI assistants that reads USGS and NWS data to report current U.S. river conditions and forecasts, without an API key.
Key features
- 01Find active gauges by river, place, or coordinates
- 02Query current stage, flow, and water temperature
- 03Review daily stage or flow history
- 04Get NWS flood stages and river forecasts
Use cases
- 01Check current levels and flow on a nearby river
- 02See whether a gauge is near flood stage
- 03Review flow changes over recent months
- 04Look up forecast crests and flood categories
MCP support
The MCP server exposes tools for finding USGS gauges, retrieving water measurements, and querying NWS flood forecasts.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://river-level-mcp.lipmichal.workers.dev/mcpclaude mcp add --transport http theluckystrike-river-level https://river-level-mcp.lipmichal.workers.dev/mcp{"mcpServers":{"theluckystrike-river-level":{"type":"http","url":"https://river-level-mcp.lipmichal.workers.dev/mcp"}}}Open in Cursor{"servers":{"theluckystrike-river-level":{"type":"http","url":"https://river-level-mcp.lipmichal.workers.dev/mcp"}}}Open in VS Code{"mcpServers":{"theluckystrike-river-level":{"type":"http","url":"https://river-level-mcp.lipmichal.workers.dev/mcp"}}}{"mcpServers":{"theluckystrike-river-level":{"serverUrl":"https://river-level-mcp.lipmichal.workers.dev/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEriver-level-mcp
Live US river levels for AI assistants: river stage, streamflow and water temperature from USGS stream gauges, with NWS flood stages and river forecasts.
This is a Model Context Protocol (MCP) server. It reads the USGS Water Data API and the NOAA National Water Prediction Service at call time. It needs no API key.
Tools
| Tool | What it returns |
|---|---|
find_river_gauges | Active USGS river and stream gauges by river and place name, state, or latitude and longitude, with each gauge's latest stage and flow. Active gauges first. |
get_river_level | Current river stage (gage height, ft), streamflow (discharge, ft3/s) and water temperature where measured, the measurement time, NWS flood stages, current flood category, feet below flood stage and record crest. Flags readings over 48 hours old. |
get_river_history | Daily mean streamflow or stage for 2 to 366 days, with first, last, low, high, mean and change. |
get_flood_forecast | The current NWS river forecast for a gauge: forecast series, forecast crest and its flood category, latest observation, flood stages and record crest. |
Every result has structured JSON, a one-paragraph summary, as_of, source (the USGS or NWS gauge page) and more (a page on lakelevelnow.com).
What it knows that your model does not
- Today's river level. Gauges report every 5 to 60 minutes and a river can rise 10 feet in a day. A model's training data is months old.
- Whether a river is near flood stage right now, using the NWS action, minor, moderate and major flood stages for that gauge.
- The latest NWS river forecast and its crest, reissued several times a day.
- The new USGS Water Data API. The legacy waterservices.usgs.gov service shuts down on February 22, 2027, so code that calls it will stop working. This server already uses api.waterdata.usgs.gov.
Install
Hosted (Claude.ai custom connector, ChatGPT developer mode)
Paste this URL. No token, no sign-up.
https://river-level-mcp.lipmichal.workers.dev/mcp
Claude Code
claude mcp add --transport http river-level https://river-level-mcp.lipmichal.workers.dev/mcp
Or run it locally over stdio:
claude mcp add river-level -- npx -y github:theluckystrike/river-level-mcp
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"river-level": { "command": "npx", "args": ["-y", "github:theluckystrike/river-level-mcp"] }
}
}
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"river-level": { "url": "https://river-level-mcp.lipmichal.workers.dev/mcp" }
}
}
VS Code
Add to .vscode/mcp.json:
{
"servers": {
"river-level": { "type": "http", "url": "https://river-level-mcp.lipmichal.workers.dev/mcp" }
}
}
Node 20 or newer is needed for the local stdio version.
Example prompts
- "What is the Mississippi River level at St. Louis right now?"
- "Is the Potomac at Little Falls near flood stage?"
- "How much water is flowing in the Colorado River at Austin, and how has it changed over the last 90 days?"
- "When will the river crest at EADM7, and will it reach flood stage?"
- "Which stream gauges are within 10 miles of 38.95, -77.13?"
Data sources
Full list with fetch dates in DATA_SOURCES.md.
- River stage, streamflow, water temperature, daily means and site details from the USGS Water Data API (OGC API collections
latest-continuous,daily,monitoring-locations). - Flood stages, record crests and river forecasts from the NOAA National Water Prediction Service API.
- The hosted server caches readings at the edge for a few minutes and site details for a day, so repeat calls do not reach USGS or NOAA.
Limitations
- USGS real-time data are provisional and can be revised. The tools say so.
- Only gauges that are NWS forecast points have flood stages and forecasts. Other gauges still return the USGS reading.
- NWS stage and USGS gage height normally use the same gauge datum, but check the NWS gauge page before relying on a threshold comparison for safety. Follow local NWS warnings for flood decisions.
- The USGS API applies a rate limit to keyless callers. When it answers 429 or is down, the tool returns a clear error instead of a stale or remembered number.
- Lakes and reservoirs are covered by lake-level-mcp.
More
Live lake and reservoir levels for Lake Mead, Lake Powell, Lake Travis and more are on lakelevelnow.com.
Part of the Zovo MCP collection: https://mcp.zovo.one
Development
npm install
npm test # builds, then runs the fixture tests against saved USGS and NOAA payloads
node scripts/smoke-stdio.mjs # live stdio check, one real call per tool
npx wrangler deploy # Cloudflare Worker, Streamable HTTP at /mcp
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.