mcp-server-usgs-nationalmap
Provides tools for querying USGS NHDPlus HR hydrography data via ArcGIS REST MapServer, including streams, rivers, lakes, gages, water features, and watershed boundaries.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-usgs-nationalmapFind the watershed for lat 40.7128, lon -74.0060"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-usgs-nationalmap
An MCP (Model Context Protocol) server that wraps the USGS NHDPlus High Resolution (NHDPlus HR) ArcGIS REST MapServer, letting an LLM query official U.S. hydrography — streams, rivers, lakes, stream gages, water features, and watershed boundaries — for a point or arbitrary GeoJSON geometry.
Service:
https://hydro.nationalmap.gov/arcgis/rest/services/NHDPlus_HR/MapServerSource: USGS — National Hydrography Dataset Plus High Resolution
Auth: none (public service)
Package:
hydro_mcp
What the dataset is
NHDPlus HR is a nationally seamless, routed hydrography network built from the high-resolution NHD, the Watershed Boundary Dataset (WBD), and 3DEP elevation. The MapServer exposes 13 layers; this server wraps the ones most useful for site/hydrology analysis.
Related MCP server: geocontext
Tools
All geometry tools accept either a lat + lon pair (convenience) or a
GeoJSON geometry string. Supported GeoJSON types: Point, MultiPoint,
LineString, MultiLineString, Polygon, MultiPolygon, plus a BoundingBox
shorthand {"type": "BoundingBox", "bbox": [minLon, minLat, maxLon, maxLat]}.
All coordinates are WGS84 decimal degrees. Feature geometry is not returned
(payloads stay small); results include provenance.
Tool | Layers | Purpose |
| NetworkNHDFlowline (3), optional NonNetworkNHDFlowline (4) | Streams/rivers/canals with stream order, drainage area, slope, elevation, and EROM modeled flow ( |
| NHDWaterbody (9), NHDArea (8) | Lakes, ponds, reservoirs, swamps, and areal water features (wide rivers, bays, rapids, dams). |
| NHDPlusGage (0) | Stream gages with NWIS linkage ( |
| NHDPoint (2), NHDLine (7) | Springs, waterfalls, dams/weirs, gates, levees, wells, etc. |
| WBDHU12 (12) | HUC12 watershed name, 12-digit code, downstream HUC ( |
| any of the above | Count-only guardrail; check result size before a |
| service root | Discover all 13 layers (id, name, geometry type). |
Conventions & gotchas
Coordinates: WGS84 lat/lon. Convert addresses/place names to coordinates first.
Point/line layers (gages, water features): pass a
PolygonorBoundingBoxto capture nearby features — a bare point rarely coincides exactly with a point/line feature.Feature codes:
ftype/fcodeare integers; results addftype_label/fcode_label(e.g.46006 → "Stream/River: Perennial").hutypeandpurpcodeare similarly labeled.Drainage-area units differ: gages report
dasqmiin square miles; flowlines/watersheds useAreaSqKm/TotalDrainageAreaSqKm.Pagination: each layer caps at 2000 records/request; results paginate automatically and set
truncated: trueif a cap is hit.Field names on the service are lowercase; the CamelCase forms are aliases.
Setup
uv syncRun
# stdio (Claude Desktop, Claude Code, local MCP clients)
uv run python -m hydro_mcp.app
# HTTP (set PORT or DATABRICKS_APP_PORT); served at /mcp, health at /health
PORT=8000 uv run python -m hydro_mcp.appProject structure
src/hydro_mcp/
├── app.py # FastMCP init, instructions, transport wiring
├── routes.py # /health endpoint
├── models.py # constants, layer IDs, curated field lists, code label maps, dataclasses
├── utils.py # ArcGIS HTTP client (stdlib urllib), GeoJSON->Esri, code translation
└── tools/ # one file per tool
├── __init__.py # register_tools(mcp)
├── find_waterways.py
├── find_waterbodies.py
├── find_gages.py
├── find_water_features.py
├── identify_watershed.py
├── count_features.py
└── list_layers.pyPossible future add-ons
The current tools are geometry-intersection queries. NHDPlus HR is a fully routed network, which opens up several higher-value tools not yet implemented:
Upstream/downstream network tracing (
hydro_trace_upstream/hydro_trace_downstream): walk the flowline network from a starting reach usinghydroseq,levelpathi,uphydroseq/dnhydroseq, andfromnode/tonode. Enables "what's upstream of this point?" and pollutant/ flow-path questions.Watershed routing traversal: follow
tohucfrom a starting HUC12 down the drainage chain (or accumulate the upstream set) to build drainage lineages.Catchment lookup (NHDPlusCatchment, layer 10): return the elevation-based incremental catchment polygon(s) for a location, and join to flowline VAAs via
nhdplusid.Reach-code / NHDPlusID lookup tools: fetch a specific reach or feature by
reachcode/permanent_identifier/nhdplusidrather than by geometry.Gage cross-walk to NWIS: resolve
sourceid/gageidmato live USGS NWIS streamflow observations.Attribute filtering: expose a
wherefilter (e.g. minimum stream order, perennial-only) on thefind_*tools for large-area queries.
Data source & attribution
USGS The National Map — National Hydrography Dataset Plus High Resolution (NHDPlus HR). Public domain. See https://www.usgs.gov/national-hydrography/national-hydrography-dataset.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that gives LLMs access to geographic data conversion tools, enabling transformations between different formats like WKT, GeoJSON, CSV, TopoJSON, and KML, as well as performing reverse geocoding.91416MIT
- Alicense-qualityFmaintenanceAn experimental MCP server providing spatial context for LLMs by interfacing with French Geoplateforme services. It enables tasks such as geocoding, altitude lookups, and querying administrative, cadastral, or urban planning data.104MIT
- Alicense-qualityBmaintenanceAn MCP server that gives AI agents clean, token-efficient access to US civic & property data — geocoding, census tracts, Opportunity Zones, ACS demographics, and FEMA flood zones — sourced entirely from free federal open data.501MIT
- Alicense-qualityDmaintenanceAn MCP server that gives AI assistants direct access to the FEMA National Flood Hazard Layer (NFHL) for flood zone lookups, FIRM panel information, and flood map data in the United States.10MIT
Related MCP Connectors
MCP server for Mireye Earth — federal-source-cited geospatial data for any MCP-aware agent.
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/GSA-TTS/mcp-server-usgs-nationalmap'
If you have feedback or need assistance with the MCP directory API, please join our Discord server