---
summary: "BREAKING: hucCd is now optional on water_find_sites sites[].hucCd and the usgs-water://site/{siteId} resource. It is omitted for sites USGS NWIS assigns no Hydrologic Unit Code, where the prior release backfilled an empty string that printed a bare HUC label. Consumers must treat hucCd as possibly-absent."
breaking: true
security: false
---

# 0.2.0 — 2026-07-17

## Breaking Changes

- **`hucCd` is now optional** — the `water_find_sites` output field `sites[].hucCd` and the `usgs-water://site/{siteId}` resource shape now type `hucCd` as optional. It is omitted for any site USGS NWIS has not assigned a Hydrologic Unit Code, where the previous release always returned an empty string (`hucCd: ""`). Consumers reading `hucCd` must treat it as possibly-absent: check for `undefined` rather than assuming a string, and read an absent value as "no HUC assigned" instead of relying on the former `""` placeholder. ([#22](https://github.com/cyanheads/usgs-water-mcp-server/issues/22))

## Fixed

- **Bare `HUC:` label for sites with no HUC** — `mapSiteRow` backfilled a missing `huc_cd` with `''`, so `format()` rendered an empty `**HUC:**` line and `structuredContent` carried `hucCd: ""` for any site NWIS left unassigned. `hucCd` is now omitted like every other sparse site field (`stateCd`, `countyCd`, `drainageArea`, `altitude`, `contributingArea`), and the HUC / State / County line is built from only the parts present, so an absent HUC prints nothing. Canvas staging carries `huc_cd: null` for these sites. ([#22](https://github.com/cyanheads/usgs-water-mcp-server/issues/22))
