Skip to main content
Glama
GSA-TTS

mcp-server-usgs-nationalmap

by GSA-TTS

Find NHD Waterways (Flowlines)

hydro_find_waterways
Read-onlyIdempotent

Find streams, rivers, canals, and other waterways intersecting a point or geometry, with flow attributes like stream order and drainage area.

Instructions

Find NHD flowlines (streams, rivers, canals, artificial paths) intersecting a geometry.

Uses NHDPlus HR NetworkNHDFlowline (layer 3), which carries stream order, total drainage area (totdasqkm), slope, smoothed elevation, and EROM mean-annual flow (qama, cfs) / velocity (vama, fps) estimates.

Use lat+lon when: "What river runs through 45.5, -122.6?" Use geometry when: "What streams cross this project polygon / pipeline corridor?" Set include_non_network=True to also capture isolated (non-routed) flowlines. Set verbose=True for the full attribute set (network IDs + full EROM suite).

Returns: { "finding": str, # plain-language summary "count": int, "truncated": bool, # true if capped at max_records "features": [...], # flowline attributes (+ ftype_label / fcode_label) "non_network": {...}, # present only when include_non_network=True "provenance": {...}, "query_geometry": {"type": str, "crs_epsg": int} }

ftype/fcode are integer codes; ftype_label/fcode_label give readable names.

Error responses:

  • "Error: supply either lat+lon or geometry, not both (or neither)"

  • "Error: unsupported geometry type ..."

  • "Error: NHDPlus HR request failed: ..."

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees (WGS84). Use with 'lon' for a quick point query. Omit when supplying 'geometry'.
lonNoLongitude in decimal degrees (WGS84). Use with 'lat' for a quick point query. Omit when supplying 'geometry'.
verboseNoReturn ALL flowline attributes (~80 fields incl. full EROM modeled-flow suite and network-navigation IDs) instead of the curated core set. Only applies to the network flowline layer. Default False.
geometryNoGeoJSON geometry object as a JSON string. Supported types: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon. Also accepts a BoundingBox shorthand: {"type": "BoundingBox", "bbox": [minLon, minLat, maxLon, maxLat]}. All coordinates must be WGS84 decimal degrees. Supply either this OR lat+lon, not both.
include_non_networkNoAlso query the NonNetworkNHDFlowline layer (isolated flowlines with identity attributes only, no stream order / drainage area / flow). Default False.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent), the description discloses truncation via 'truncated' field, conditional fields like 'non_network' only present when include_non_network=True, and lists exact error response strings. It also details the data source and attribute set, providing rich behavioral context without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections: purpose, data source, usage examples, return format, and error messages. Every sentence contributes useful information, and the formatting improves readability. It is thorough yet not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, the description covers input methods, optional flags, return structure, error handling, and provenance information. The presence of an output schema does not make this redundant; the description adds practical examples and clarifies expected outputs. It is fully adequate for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with detailed descriptions for each parameter. The description reinforces and adds usage context (e.g., lat/lon for point queries, geometry for polygons/corridors), and explains the meaning of verbose and include_non_network in practical terms. This adds value over the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds NHD flowlines (streams, rivers, canals, artificial paths) intersecting a geometry. It uses specific verbs and resources and distinguishes itself from sibling tools like hydro_find_waterbodies and hydro_find_gages by focusing on flowlines/waterways.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage scenarios: 'Use lat+lon when...' and 'Use geometry when...', with concrete example queries. It also explains when to set include_non_network and verbose, giving actionable guidance. However, it does not explicitly name alternative tools for when-not-to-use, though the sibling list and purpose make this mostly clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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