---
summary: "nws_get_forecast hourly mode caps structuredContent at 48 periods (matching content[]), with the pre-cap total and a truncation notice surfaced via enrichment; whitespace-only office and zone_id inputs now fail schema validation instead of reaching the upstream lookup"
breaking: false
security: false
---

# 0.7.2 — 2026-07-02

## Added

- **`nws_get_forecast` enrichment** — new `totalPeriodCount` field carries the pre-cap upstream period total, and a `notice` is set when truncation occurs (e.g. "Returning the first 48 of 156 forecast periods…"). `periodCount` now reports the returned (capped) count. ([#23](https://github.com/cyanheads/nws-weather-mcp-server/issues/23))

## Fixed

- **`nws_get_forecast` hourly cap** — the 48-period cap moved from `format()` into the handler as a single `MAX_PERIODS` constant, so `structuredContent.periods` and the `content[]` markdown share the same bounded set. Previously only the markdown was truncated — structured-content clients received all ~156 hourly periods. The formatter's inline "...and N more periods" remainder line is removed; truncation is reported via enrichment instead. ([#23](https://github.com/cyanheads/nws-weather-mcp-server/issues/23))
- **Whitespace-only `office` / `zone_id`** — `nws_get_office_discussion` and `nws_get_zone_forecast` input schemas now use `z.string().trim().min(1)`, rejecting blank input at parse time instead of sending `""` to the upstream lookup. `.trim()` has no JSON Schema keyword, so the advertised input schema is unchanged (`minLength: 1`). ([#24](https://github.com/cyanheads/nws-weather-mcp-server/issues/24))

## Dependencies

- `@biomejs/biome` `^2.5.1 → ^2.5.2`
- `@types/node` `^26.0.1 → ^26.1.0`
