Skip to content

v2.3.0

@cyanheads cyanheads tagged this 20 Apr 23:30
Fixed
- #18 get_study_record: format() now renders every populated field
  (detailedDescription, otherOutcomes, collaborators, keywords,
  secondary IDs, design info, submission/update dates, oversight,
  IPD sharing, references). RawStudyShape expanded to match.
- #19 format-helpers: dropped the 3-item per-array cap in collectLeaves
  that silently hid object-array data from content[]. Outer maxLines
  budget continues to bound total output.
- #20 ClinicalTrialsService: retry hardened (3→6 retries, 8s→30s cap,
  ±25% proportional jitter). 429 exhaustion now throws distinct
  McpError(RateLimited) instead of being lumped with 5xx
  ServiceUnavailable. New ClinicalTrialsServiceOptions ctor arg for
  test-friendly overrides.
- #21 get_study_count: format() iterates result.noMatchHints instead
  of hardcoding the fallback string.
- #22 NCT ID regex: consolidated six inline sites into a shared
  nctIdSchema (src/mcp-server/tools/utils/_schemas.ts). Two
  previously-unmessaged sites now return the canonical error string.
- #23 get_study_results: wrapped getStudiesBatch in try/catch; batch-
  wide failures map to per-ID fetchErrors entries. Removed the
  companion all-failed throw so partial and total failure paths
  return the same structured shape.
- #24 Framework bump: @cyanheads/mcp-ts-core ^0.4.1 → ^0.5.0;
  adopted parseEnvConfig helper in src/config/server-config.ts.
  Synced maintenance skill 1.2 → 1.3.
- #25 FieldValueStats: topValues and uniqueValuesCount marked
  optional (API omits them for BOOLEAN fields); added trueCount/
  falseCount to the interface. Empty topValues now renders an
  explicit fallback line in content[].

Added
- src/mcp-server/tools/utils/_schemas.ts — shared Zod schemas
  (starting with nctIdSchema)
- ClinicalTrialsServiceOptions — exported retry-config interface
- tests/mcp-server/tools/utils/format-helpers.test.ts

See CHANGELOG.md for the full entry and PR #26 for review history.
Assets 2
Loading