| summary | search_studies fields description hardened against Sponsor/*List hallucinations; three tool descriptions anchor on "clinical trial"; framework bumped to 0.8.14 with skill sync. |
|---|---|
| breaking | false |
Polish release. Two LLM-discoverability fixes against the tool surface, plus a routine framework bump and skill resync.
clinicaltrials_search_studies fields description gets a refined example set — LeadSponsorName restored inline (the canonical leaf was missing, and lowercase "sponsor" as the discovery-query example was being lifted as a field name in 4-session bursts), BriefSummary and Phase added, the discovery-query example switched to multi-word concepts ("adverse events", "eligibility") that can't be mistaken for PascalCase pieces. Validated against the live ClinicalTrials.gov /studies/metadata tree (454 piece names) — every example resolves, every previously-hallucinated form (Sponsor, ConditionList, InterventionList, LocationList) returns 400/500 upstream as the issue documented.
clinicaltrials_get_study_record, clinicaltrials_get_study_results, and clinicaltrials_get_study_count now anchor on "clinical trial" + "ClinicalTrials.gov" in their first-line description. Tool-search registries indexing by keyword no longer skip these three on a generic "clinical trial" query.
clinicaltrials_search_studiesfieldsdescription — example set nowNCTId, BriefTitle, BriefSummary, OverallStatus, Phase, LeadSponsorName, Condition(wasNCTId, BriefTitle, OverallStatus, Condition, BriefSummary);LeadSponsorNameandPhaseadded inline so the canonical leaves for the two most-hallucinated concepts are visible without a discovery call. Discovery-query example switched from"enrollment", "sponsor"to"adverse events", "eligibility"— multi-word, can't be mistaken for PascalCase field names. Resolves #36.clinicaltrials_get_study_recorddescription —Fetch a single clinical study by NCT ID→Fetch a single clinical trial study by NCT ID from ClinicalTrials.gov. Resolves #43.clinicaltrials_get_study_resultsdescription —Fetch trial results data for completed studies→Fetch clinical trial results data from ClinicalTrials.gov for completed studies. Resolves #43.clinicaltrials_get_study_countdescription —Get total study count matching a query→Get total clinical trial study count from ClinicalTrials.gov matching a query. Resolves #43.@cyanheads/mcp-ts-core0.8.13 → 0.8.14 —disabledTool/DisabledMetadatanow re-exported from the package root, newtool-defs-analysisaudit skill, polished example definitions, Worker-runtime test harness via@cloudflare/vitest-pool-workers. See @cyanheads/mcp-ts-core 0.8.14 release notes.@cloudflare/workers-types4.20260503.1 → 4.20260505.1 (devDep).- Skills synced —
tool-defs-analysis(new, v1.0),add-tool2.6 → 2.7,api-errors1.4 → 1.5,api-workers1.2 → 1.3. - Agent protocol —
CLAUDE.md/AGENTS.mdErrors section gained the "Declare contracts inline on each tool" guidance from upstream;tool-defs-analysisreferenced in the What's Next list and skills table.
scripts/split-changelog.ts— one-shot CHANGELOG migration helper synced from upstream framework scripts. Dormant in this project (changelog already migrated to per-version files).
DEFAULT_MAX_RETRIESlowered from 6 to 3 inClinicalTrialsService. With 1s base exponential backoff, 6 retries totalled ~63s of wall-clock burn on hard failures — too long for an LLM-driven tool call. The original 60s-burn case (invalidfields→ upstream HTTP 500) is now caught in <100ms by pre-flightvalidateFields(added in 2.4.3), so the retry budget should serve transient failures only. New default: 1+2+4 = ~7s total. Production behavior change; tests usingfastOptionsalready capped at 3 so test wall-clock is unaffected.server.jsonphantom env var — removedCT_MAX_ELIGIBLE_CANDIDATESfrom both stdio and HTTP package descriptors. The variable was documented with a default of100but never read by any code insrc/.