GageLink

Hydrology data for AI agents, with the reference frames kept attached.

River levels, streamflow, flood forecasts, drainage basins and satellite water levels from USGS, NOAA, Hub'Eau, the UK Environment Agency and SWOT. Every value arrives carrying its unit, the datum it was measured from, its timezone, and whether the record is provisional or approved.

Run it

uvx --from gagelink gagelink-mcp

Or in an MCP client, with nothing installed:

{"mcpServers": {"gagelink": {"command": "uvx",
  "args": ["--from", "gagelink", "gagelink-mcp"]}}}

No account is needed.

Why the frames matter

A river stage is measured upward from the gage's own zero. A surveyed levee crest is measured upward from a national datum. Both are lengths in feet, so subtracting one from the other produces a number that reads as freeboard, and a units library will pass it.

At Little Falls on the Potomac that subtraction overstates the margin by 37 ft, in the direction of calling a levee safe. GageLink refuses it and returns the offset that makes it well defined, along with how well that offset is known.

For agents