River Level MCP

io.github.theluckystrikePublished by GitHub account theluckystrikev1.0.0Updated Nov 3, 2026

Live US river levels, streamflow and NWS flood forecasts from USGS stream gauges.

VerifiedStreamable HTTPWeb executable

Overview

River Level's hosted MCP server (river-level-mcp.lipmichal.workers.dev); no sign-in required; Streamable HTTP; 4 tools.

No AI overview yet: these facts come from the registry entry and the server itself.

Endpoint
river-level-mcp.lipmichal.workers.dev
Last checked

Installation

In SourceWeft

  1. Open River Level MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.theluckystrike%2Friver-level-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "river-level": {
      "type": "http",
      "url": "https://river-level-mcp.lipmichal.workers.dev/mcp"
    }
  }
}

README

river-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

ToolWhat it returns
find_river_gaugesActive 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_levelCurrent 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_historyDaily mean streamflow or stage for 2 to 366 days, with first, last, low, high, mean and change.
get_flood_forecastThe 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:

json
{  "mcpServers": {    "river-level": { "command": "npx", "args": ["-y", "github:theluckystrike/river-level-mcp"] }  }}

Cursor

Add to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "river-level": { "url": "https://river-level-mcp.lipmichal.workers.dev/mcp" }  }}

VS Code

Add to .vscode/mcp.json:

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 installnpm test            # builds, then runs the fixture tests against saved USGS and NOAA payloadsnode scripts/smoke-stdio.mjs   # live stdio check, one real call per toolnpx wrangler deploy            # Cloudflare Worker, Streamable HTTP at /mcp

License

MIT

Source: README.md at commit 8c975e3

Tools

4

find_river_gauges

Find river gauges

Search USGS stream gauges nationwide by river and place name (for example "mississippi st louis", "potomac little falls"), by state, or within a radius of a latitude and longitude. Returns site numbers with whether each is reporting now and its latest stage and flow, active gauges first.

Parametersquerystatelatitudelongituderadius_miles

get_river_level

Get current river level

Current river stage (gage height in feet), streamflow (discharge in cubic feet per second) and water temperature where measured, read now from a USGS stream gauge (readings every 5 to 60 minutes). Adds the NWS flood stages (action, minor, moderate, major), the current flood category, feet below flood stage and the record crest when the gauge is an NWS forecast point. Flags readings over 48 hours old. Your training data cannot know today's river level.

Parameterssiterequired

get_river_history

Get river level history

Daily mean streamflow (default) or stage for a USGS gauge over the last 2 to 366 days, with first, last, low, high, mean and change. Use it for trend, drought and "is the river rising" questions. Many gauges publish daily means for discharge only.

Parametersdayssiterequiredparameter

get_flood_forecast

Get river flood forecast

The current NOAA National Water Prediction Service river forecast for a gauge: the forecast stage and flow series, the forecast crest with its flood category, the latest observation, flood stages and the record crest. Works for NWS forecast points (accepts the NWS id or the USGS site number). Forecasts are reissued several times a day.

Parameterssiterequired

Version history

1
  1. v1.0.0LatestNov 3, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts