---
summary: "Outcome rendering and filter-disclosure correctness — not-reached arms retained in summaries, truncation/cap flags gated on real overflow, empty field lists rejected"
breaking: false
security: false
---

# 2.7.2 — 2026-06-14

## Changed

- **`get_study_count` `searchCriteria`** echoes `sentinelFilterActive: true` when the default unknown-enrollment exclusion (`EnrollmentCount=99999999`) is in effect, matching `search_studies`. Previously a count silently diverged from an unfiltered `/stats` total with no signal a filter applied. ([#78](https://github.com/cyanheads/clinicaltrialsgov-mcp-server/issues/78))
- **`get_study_record` `filtersApplied`** records a `locationLimit` / `outcomeLimit` / `referenceLimit` (and its corresponding upstream total) only when the cap actually trimmed the set, instead of echoing it whenever the parameter was passed. `nearLocation` still always echoes — it always filters. Tool and parameter descriptions updated from "whenever a cap is applied" to "only when the cap trims the set." ([#80](https://github.com/cyanheads/clinicaltrialsgov-mcp-server/issues/80))
- **`get_study_record` `nearLocation`** description notes that returned `distanceMi` reflects ClinicalTrials.gov geocoding granularity — typically city-centroid, not facility-level — so multiple sites in the same city resolve to near-identical distances. ([#81](https://github.com/cyanheads/clinicaltrialsgov-mcp-server/issues/81))

## Fixed

- **`get_study_results`** retains outcome arms whose value is the `NA`/`NR` sentinel instead of dropping them. For `MEDIAN` measures these encode "median not reached"; dropping them removed an entire arm from the rendered measure while `groupCount` still reported the full count, which could invert the clinical reading. The new `displayMeasurementValue` renders such cells as `not reached` for `MEDIAN` paramType; genuinely-empty (`null`) cells stay dropped. Applies to both `extractTopStats` (top-line/text channel) and `formatBaseline` (full-mode baseline). ([#76](https://github.com/cyanheads/clinicaltrialsgov-mcp-server/issues/76))
- **`get_field_definitions`** sets the search-mode `truncated` flag only when the match set exceeded the cap. `searchFields` now returns `{ entries, total }` with the pre-cap match total, so the tool gates `ctx.enrich.truncated` on `total > limit` rather than calling it unconditionally — the "raise the cap" notice no longer fires when fewer fields matched than the limit. ([#77](https://github.com/cyanheads/clinicaltrialsgov-mcp-server/issues/77))
- **`get_field_values`** rejects an empty `fields` list with an actionable `field_invalid` error instead of dropping the `fields` query param and dumping the full ~418-field catalog. A handler guard on the normalized list closes both the `[]` array and the `"[]"` stringified-array forms; the array branch also carries `.min(1)`. ([#82](https://github.com/cyanheads/clinicaltrialsgov-mcp-server/issues/82))
