---
summary: "Enrichment adoption — search/list tools surface true result totals, pagination, and coverage/empty-result guidance via a typed enrichment block in both structuredContent and content[]"
breaking: false
security: false
agent-notes: |
  This release adopts the enrichment block pattern on all six search/list tools. The `output` schemas for these tools no longer include `message`, `coverage_note`, or `count` fields — those values now flow through `enrichment` (ctx.enrich). Consumer code that destructured `result.message` or `result.coverage_note` from tool output should read from the enrichment block instead.
---

# 0.1.5 — 2026-05-30

## Changed

- **Enrichment block** added to all six search/list tools (`openstates_search_bills`, `openstates_search_people`, `openstates_search_committees`, `openstates_search_events`, `openstates_get_legislators_by_location`, `openstates_list_jurisdictions`) — `totalItems`, `page`, and `maxPage` surface in a typed `enrichment` block reaching both `structuredContent` JSON and the `content[]` markdown trailer.
- **Empty-result and coverage guidance** moved from `output` fields to `ctx.enrich.notice()` / `ctx.enrich({ coverageNote })` — `notice` fires only when results are empty; `coverageNote` fires unconditionally on experimental-coverage tools (committees, events).
- **structuredContent field renames** — the following output-level fields were removed and re-surfaced under `enrichment` with updated keys:
  - `search-bills`, `search-people`: `message` → `enrichment.notice`
  - `search-committees`: `coverage_note` → `enrichment.coverageNote`
  - `search-events`: `coverage_note` → `enrichment.coverageNote`; `message` → `enrichment.notice`
  - `get-legislators-by-location`: `coverage_note` → `enrichment.notice`; `count` moved from output to `enrichment.count`
- **`@cyanheads/mcp-ts-core`** ^0.9.13 → ^0.9.16.

## Dependency bumps

- `@cyanheads/mcp-ts-core` ^0.9.13 → ^0.9.16
