MCP server providing access to USGS Water Services for streamflow, flood stages, and peak events
Project description
usgs-mcp
MCP server providing access to USGS Water Services for real-time streamflow, flood stages, peak events, and historical statistics.
This server fills a critical gap in the ocean-mcp ecosystem by providing inland flooding and river data — often the deadliest aspect of hurricanes and storms.
Data Sources
- USGS Water Services (
waterservices.usgs.gov) — real-time and historical streamflow data - USGS NWIS Peak (
nwis.waterdata.usgs.gov) — annual peak streamflow records
No API key required. All data is public domain.
Tools (10)
Site Discovery
| Tool | Description |
|---|---|
usgs_find_sites |
Find gauge stations by state or bounding box |
usgs_get_site_info |
Get detailed metadata for a specific site |
usgs_find_nearest_sites |
Find sites near a lat/lon point |
Streamflow Data
| Tool | Description |
|---|---|
usgs_get_instantaneous_values |
Real-time ~15-minute interval data (up to 120 days) |
usgs_get_daily_values |
Daily mean/min/max values (decades of history) |
usgs_get_hydrograph |
Summary with trend and historical median comparison |
Flood Analysis
| Tool | Description |
|---|---|
usgs_get_peak_streamflow |
Annual peak flow records (50+ years at many sites) |
usgs_get_flood_status |
Current conditions vs. historical context |
Statistics
| Tool | Description |
|---|---|
usgs_get_monthly_stats |
Monthly mean/min/max/percentiles |
usgs_get_daily_stats |
Daily percentiles (flow duration) |
Quick Start
Install from PyPI
uvx usgs-mcp
Install from source
cd servers/usgs-mcp
uv sync
uv run usgs-mcp
Claude Desktop Configuration
{
"mcpServers": {
"usgs": {
"command": "uvx",
"args": ["usgs-mcp"]
}
}
}
Example Queries
- "What is the current streamflow on the Potomac River?" →
usgs_get_instantaneous_values(site_number="01646500") - "Find USGS gauges in Texas" →
usgs_find_sites(state_code="TX") - "Is the Mississippi at St. Louis flooding?" →
usgs_get_flood_status(site_number="07010000") - "What were the biggest floods on the Potomac?" →
usgs_get_peak_streamflow(site_number="01646500")
Development
cd servers/usgs-mcp
uv sync --group dev
# Unit tests (no network)
uv run pytest tests/ --ignore=tests/test_live.py --ignore=tests/test_mcp_protocol.py -v
# Integration tests (needs network)
uv run pytest tests/test_live.py -v
# MCP protocol test
uv run pytest tests/test_mcp_protocol.py -v
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file usgs_mcp-0.1.0.tar.gz.
File metadata
- Download URL: usgs_mcp-0.1.0.tar.gz
- Upload date:
- Size: 35.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
009a4cc9b6d83782f1fb8151f60c79e05960f35db5177e6e42487be28b14abe3
|
|
| MD5 |
c1b19bb3c35209579550476da082f5e2
|
|
| BLAKE2b-256 |
8dc9fa8b01b926fa47b531ee8a8bb50c10d4ade6f344efd36b7a38562d563aa2
|
Provenance
The following attestation bundles were made for usgs_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on mansurjisan/ocean-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
usgs_mcp-0.1.0.tar.gz -
Subject digest:
009a4cc9b6d83782f1fb8151f60c79e05960f35db5177e6e42487be28b14abe3 - Sigstore transparency entry: 1046835244
- Sigstore integration time:
-
Permalink:
mansurjisan/ocean-mcp@da97045418f62e29e6f6c0adc18ce30a48da766f -
Branch / Tag:
refs/tags/usgs-mcp-v0.1.0 - Owner: https://github.com/mansurjisan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@da97045418f62e29e6f6c0adc18ce30a48da766f -
Trigger Event:
push
-
Statement type:
File details
Details for the file usgs_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: usgs_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe77bc53637debf3b58369a64ae9023378317ce88bce4d30c6e12bd68da50699
|
|
| MD5 |
d60bb1772836ee6dccc69d14b007d109
|
|
| BLAKE2b-256 |
788d65305c00ef63b0d3403082bf4666e43cfd2145bc570511ad91448e020086
|
Provenance
The following attestation bundles were made for usgs_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on mansurjisan/ocean-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
usgs_mcp-0.1.0-py3-none-any.whl -
Subject digest:
fe77bc53637debf3b58369a64ae9023378317ce88bce4d30c6e12bd68da50699 - Sigstore transparency entry: 1046835245
- Sigstore integration time:
-
Permalink:
mansurjisan/ocean-mcp@da97045418f62e29e6f6c0adc18ce30a48da766f -
Branch / Tag:
refs/tags/usgs-mcp-v0.1.0 - Owner: https://github.com/mansurjisan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@da97045418f62e29e6f6c0adc18ce30a48da766f -
Trigger Event:
push
-
Statement type: