---
summary: "Enrichment adoption: query/filter echoes, true result totals, and empty-result guidance in a typed enrichment block; removed unreachable no_results error; structuredContent key renames"
breaking: false
security: false
agent-notes: |
  Enrichment block adoption: tools now emit via ctx.enrich.total(), ctx.enrich.echo(), ctx.enrich.notice() instead of output fields.
  structuredContent field renames in find_datasets and list_portals: total_count → totalCount, query → effectiveQuery, message → notice (now in enrichment block).
  The no_results error contract on socrata_find_datasets was removed; empty results return success with an enrichment notice.
---

# 0.1.5 — 2026-05-30

## Changed

- **`socrata_find_datasets` enrichment** — `total_count`, `query`, and empty-result `message` moved from the `output` schema into a typed `enrichment` block (`totalCount`, `effectiveQuery`, `notice`); both `structuredContent` JSON and `content[]` markdown now carry this context automatically via `ctx.enrich`.
- **`socrata_list_portals` enrichment** — `total_count` and `message` moved into a typed `enrichment` block (`totalCount`, `notice`); surfaces in both channels automatically.
- **`socrata_query_dataset` enrichment** — zero-row results now emit a `notice` via `ctx.enrich.notice()` instead of relying solely on `content[]` text; both channels carry the guidance.
- **`socrata_dataframe_describe` enrichment** — canvas-disabled and no-tables status moved from `output.message` into `enrichment.notice`; `output.message` field removed.
- **`socrata_dataframe_query` enrichment** — zero-row SQL results now emit a `notice` via `ctx.enrich.notice()` in both channels.
- **`@cyanheads/mcp-ts-core`** ^0.9.13 → ^0.9.16.

## Removed

- **`no_results` error contract on `socrata_find_datasets`** — the code path was unreachable: empty Discovery API results return a success response with an `enrichment.notice`, never a `NotFound` error.
