mcp-usgs-water-data
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_instantaneous_valuesA | Query the USGS Instantaneous Values (IV) service for real-time and recent surface-water and groundwater readings (streamflow, gage height, water temperature, etc). Data is available from 2007-10-01 onward. Exactly one major filter is required to scope the query: sites, stateCd, huc,
bBox, or countyCd. Providing zero, or more than one, is rejected. Date range: use either This tool sends no Use mode:"summary" (not the default "values") for any window longer than a
day. It returns {count, nonNullCount, min, max, mean, first, last} per series
instead of every reading, avoiding truncation. mode:"values" returns up to
Returned values may be provisional (qualifier code "P") and subject to revision - present them as such, not as final measurements. A series is omitted entirely, with no placeholder, when a site does not
measure a requested parameter - a query for 3 parameterCd values can return
fewer than 3 series. Match results on each series' Don't know the 5-digit parameter code for what you want? Call list_common_parameter_codes first. |
| list_common_parameter_codesA | Look up the 5-digit USGS parameter code for a common measurement (e.g. streamflow, gage height, water temperature, dissolved oxygen) before calling get_instantaneous_values. Returns a static table of {code, name, unit, description}. No network call. |
| find_sitesA | Look up USGS station numbers (siteNumber) to pass to
get_instantaneous_values - use this whenever you have a place or river name
("what's the flow of the Chattahoochee in Atlanta") rather than a station
number. Returned Exactly one major filter is required: sites, stateCd, huc, bBox, or countyCd
A broad major filter with no Defaults to hasDataTypeCd:"iv" (only sites that report instantaneous
values), since a site without IV data cannot be used with
get_instantaneous_values. Also defaults to |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
The three tools have clearly distinct purposes: get_instantaneous_values fetches readings, find_sites resolves place names to station numbers, and list_common_parameter_codes maps common measurements to parameter codes. There is minor potential confusion between find_sites and get_instantaneous_values since both share the same filter options (sites/stateCd/huc/bBox/countyCd), but their distinct roles (lookup vs. data retrieval) are well documented.
The names mix conventions: get_instantaneous_values and list_common_parameter_codes use verb_object patterns but get_instantaneous_values is awkwardly verbose while find_sites and the others are not consistently phrased. There's no consistent verb (get, list, find) and no consistent noun form, though all are readable snake_case verbs followed by a noun.
Three tools form a tight, well-scoped workflow: resolve sites, look up parameter codes, then fetch values. Each tool is essential and earns its place with no obvious redundancy. The tight coupling (find_sites feeds get_instantaneous_values, list_common_parameter_codes feeds parameterCd) justifies exactly these three.
The core workflow of finding sites, mapping parameters, and retrieving instantaneous values is fully covered. Minor gaps exist such as no support for daily values or other USGS services (which are out of scope given the server name), and the user must manually chain the three tools, but within the stated 'instantaneous values' domain the surface is complete.