nws-weather-usgs-water-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| API_USGS_PAT | No | Optional USGS personal access token for higher rate limits. Sent as X-Api-Key header. | |
| NWS_USER_AGENT | No | User-Agent identifying the application and contact (e.g., 'nws-weather-usgs-water-mcp (you@example.com)'). The server supplies a default if not set. | |
| NWS_USGS_CACHE_DIR | No | Override the OS-specific cache directory for SQLite database. | |
| NWS_USGS_CACHE_ENABLED | No | Set to '0' to disable local caching. | |
| USGS_WATERDATA_MAX_ROWS | No | Maximum number of rows returned in a single query (default 200, cap 5000). | |
| NWS_USGS_CACHE_MAX_ENTRIES | No | Limit the number of cached query results (default 10000?). | |
| NWS_USGS_CACHE_TTL_SECONDS | No | Default TTL for all cache entries (alerts capped at 60s). | |
| NWS_ALERTS_CACHE_TTL_SECONDS | No | Override TTL for active alerts (max 60 seconds). | |
| NWS_POINTS_CACHE_TTL_SECONDS | No | Override TTL for point-to-grid mappings (default 7 days). | |
| USGS_DAILY_CACHE_TTL_SECONDS | No | Override TTL for daily observations and statistics (default 6 hours). | |
| USGS_LATEST_CACHE_TTL_SECONDS | No | Override TTL for latest readings, nearby gauges, flood stage, flow anomaly (default 10 minutes). | |
| NWS_FORECAST_CACHE_TTL_SECONDS | No | Override TTL for forecasts (default 15 minutes). | |
| USGS_SAMPLES_CACHE_TTL_SECONDS | No | Override TTL for water-quality samples (default 1 hour). | |
| USGS_METADATA_CACHE_TTL_SECONDS | No | Override TTL for site and time-series metadata (default 6 hours). | |
| NWS_DISCUSSION_CACHE_TTL_SECONDS | No | Override TTL for forecast discussions (default 15 minutes). | |
| USGS_REFERENCE_CACHE_TTL_SECONDS | No | Override TTL for reference tables and queryable schemas (default 24 hours). | |
| USGS_CONTINUOUS_CACHE_TTL_SECONDS | No | Override TTL for continuous observations (default 10 minutes). | |
| USGS_STATISTICS_CACHE_TTL_SECONDS | No | Override TTL for statistics (default 6 hours). |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_infoA | Describe this server, its limits, common codes, and supported collections. |
| get_cache_infoA | Show whether local caching is enabled, its location, size, and TTL policy. |
| get_sun_timesA | Calculate local and UTC solar events using an IANA timezone. When |
| get_active_alertsA | Get active NWS watches, warnings, and advisories for a point. Check this first for flood and severe-weather safety questions. An empty successful result explicitly means NWS reports no active alerts there. |
| get_point_forecastB | Get the NWS multi-period forecast for a latitude and longitude. |
| get_hourly_forecastA | Get 1-168 hours of NWS forecast data with hourly precipitation odds. |
| get_forecast_discussionA | Get the latest raw NWS Area Forecast Discussion for a three-letter WFO. |
| get_wfo_for_pointA | Resolve a point to its NWS office, grid, forecast zone, county, and fire zone. |
| find_gaugesA | Find nearest active gauges with a latest reading, sorted by distance. Coordinates are WGS84 decimal degrees. The default parameter 00060 finds streamflow gauges; use 00065 for gage height or 00010 for water temperature. |
| search_sitesB | Search monitoring locations by a case-insensitive partial name.
|
| get_current_flowB | Get the latest streamflow/discharge (parameter 00060) for a USGS site. |
| get_flow_anomalyA | Compare current discharge with the median and percentiles for this date.
|
| get_flow_anomaliesA | Compare current discharge with date normals for 1-25 USGS sites. Duplicate site IDs are removed while preserving input order. |
| get_peak_flowsA | Get annual discharge peaks with all-time, seasonal, and current context. Seasons use peak-date calendar months. By default, monsoon is July through September and cool season is the complementary October-through-June span. A seasonal peak is the largest annual peak whose date falls in that season, not the maximum flow observed during the season each year: a year whose annual peak was a winter flood contributes nothing to the monsoon figure even if it also had a large summer pulse. Treat it as informational scale, not a safety threshold. |
| get_daily_flowB | Get mean daily streamflow (parameter 00060, statistic 00003).
|
| get_water_levelB | Get the latest gage height/water level (parameter 00065) for a site. |
| get_stage_trendA | Detect whether one site's gage height is rising, steady, or falling.
|
| get_water_temperatureC | Get latest water temperature with Celsius and Fahrenheit values. |
| get_flood_stageA | Get current gage height and any published action/flood-stage thresholds. Threshold availability varies by site. Values come from modern time-series metadata; this operation does not infer a threshold when none is published. |
| search_monitoring_locationsB | Find USGS monitoring locations by site, state, county, type, HUC, or bbox. |
| search_time_seriesC | Discover time series, their parameters, units, availability, and IDs. |
| get_observationsC | Get continuous or daily observations for one or more sites. |
| get_latest_valuesB | Get the latest continuous or daily value per matching time series. |
| get_field_dataC | Get discrete field measurements, metadata, channel measurements, or peaks. |
| get_statisticsC | Get historical summary statistics for specific monitoring locations. |
| get_water_quality_samplesB | Get discrete water-quality samples from the modern USGS Samples API. |
| lookup_reference_dataB | Look up parameter, statistic, site-type, state, county, or other codes. |
| get_collection_queryablesB | List the filterable fields and schemas for a modern OGC collection. |
| clear_cacheA | Delete all locally cached NWS and USGS API responses for this server. |
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 29 tools
Most tools have distinct purposes, e.g., get_current_flow vs get_water_level vs get_water_temperature target different parameters. However, get_flow_anomaly and get_flow_anomalies are similar, and get_observations, get_latest_values, and get_field_data could cause confusion despite detailed descriptions.
All tool names follow a consistent verb_noun pattern (clear, find, get, lookup, search). The most common verb is 'get', and the naming is predictable and uniform throughout.
At 29 tools, the count is slightly high but reasonable for a combined NWS and USGS domain. Each tool covers a specific operation, though some like get_sun_times feel peripheral.
The server covers core NWS forecasts/alerts and USGS water data well, including current conditions, historical stats, anomalies, and searches. Minor gaps exist, such as lack of radar/satellite tools, but they are outside the stated domain.