Skip to main content
Glama

usgs-water-mcp-server

Water Get Site Data Catalog

water_get_site_data_catalog
Read-onlyIdempotent

Discover a USGS site’s parameters, sensors, statistics, and UTC record bounds before calling water_get_series. Find site numbers with water_find_sites. Each row is a distinct series; metadata bounds may contain gaps and lag observations. For water_get_series, take YYYY-MM-DD from beginDate/endDate, pass statCd only for daily rows, and obtain methodId from a water_get_series response; timeSeriesId is an OGC identifier, never an NWIS methodId. Rows with null seriesType are other computations and cannot be requested with water_get_series. Follow nextCursor with the same filters and limit until null.

Input Schema

NameRequiredDescriptionDefault
siteYesUSGS site number (8–15 digits), from water_find_sites; e.g. "01646500".
limitNoMaximum metadata rows per page (1–1000; default 100). Keep unchanged when using cursor.
cursorNoOpaque nextCursor from the previous page; keep site, parameterCd, seriesType, and limit unchanged.
seriesTypeNoLimit to Daily computations or Points/Instantaneous computations. Omit to include all periods.
parameterCdNoOptional 5-digit parameter code from water_list_parameters, e.g. "00060".

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
seriesNoOne metadata page; distinct sensors/statistics remain separate. Empty when a known site has no matching rows.
siteNameNoUpstream site name, or null when unavailable.
nextCursorNoContinuation for the same filters and limit, or null when no next page exists.
siteNumberNoUSGS site number, preserving leading zeros.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnly/idempotent/openWorld. The description adds genuine behavioral traits the annotations cannot: metadata bounds may contain gaps and lag observations, null seriesType rows are unrelated computations, and timeSeriesId is an OGC identifier rather than an NWIS methodId — a distinction that prevents a concrete mis-invocation downstream.

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

Conciseness4/5

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

Front-loaded with purpose and the key 'before calling water_get_series' routing, and no sentence is filler. Slightly dense: several sentences explain how to feed results into a different tool, which crowds the primary purpose, though that guidance has nowhere else to live.

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?

With an output schema present, the description need not describe return values, and it covers everything else an agent needs: prerequisites, pagination contract, filter semantics, and the data-quality caveats that affect interpretation. Nothing essential to correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents site, limit, cursor, seriesType, and parameterCd (including enum and pattern). The description mostly adds cross-tool mapping advice for water_get_series's parameters (statCd, methodId) rather than meaning for this tool's own inputs; the cursor chaining note adds only marginal value beyond the schema's 'keep unchanged' wording.

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?

Specific verb ('Discover') plus resource ('a USGS site's parameters, sensors, statistics, and UTC record bounds') with an explicit scope qualifier ('before calling water_get_series'). It clearly distinguishes itself from water_get_series (catalog/metadata vs. data) and water_find_sites (site discovery).

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

Usage Guidelines5/5

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

Explicitly sequences sibling tools: use water_find_sites to find site numbers, call this before water_get_series, and follow nextCursor with identical filters until null. It even states a when-not: rows with null seriesType cannot be requested via water_get_series.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.