## genomoncology/biomcp — v0.8.23…v0.8.24

_273+ commits._

### Features
- **code: add typed MCP search and get tools** (9361be7)
- **Merge Add Claude Code plugin marketplace config (install via /plugin)** (7733006)
- **Add Claude Code plugin marketplace config (install via /plugin)** (16888d7)
- **Merge Add opt-in rare-disease trial action summaries** (5e92c50)
- **feat: add trial action summaries** (e6fa68f)
- **design: land spec tests for add opt-in rare-disease trial action summaries** (d5b1824)
- **Merge Add semanticscholar as an individually selectable --source value** (a7bd14c)
- **Add semanticscholar as an individually selectable --source value** (b7dc154)

### Fixes
- **Fix release smoke metadata probe** (76f7da1)
- **fix gene alias get canonical resolution** (ee0859a)
- **review: relax trivia and fix syntactic red for 439-alias-resolver-prefer-canonical-hgnc-gene-over-ncit-mesh-for-known-gene-aliases-pd-l1-her2-p53** (9d63d38)
- **review: relax trivia and fix syntactic red for 435-typed-mcp-tool-surface-schema-typed-tools-replace-single-command-string** (9aec726)
- **review: relax trivia and fix syntactic red for 417-add-opt-in-rare-disease-trial-action-summaries** (9f9ea66)
- **review: relax trivia and fix syntactic red for 427-slim-routine-specs-to-pure-mustmatch-cli-mcp-contracts** (334a281)

### Backend
- **Merge Repo hygiene: remove leaked internal working docs, retired validation-profiles, and the paper dir from the public root** (61d4c6e)
- **Repo hygiene: remove leaked internal working docs, retired validation-profiles, and the paper dir from the public root** (e49188e)
- **Merge Harden release-smoke.sh: assert binary SHA matches HEAD, never smoke a stale build** (c61e59b)
- **Harden release smoke binary freshness** (4029f89)
- **Merge Release readiness v0.8.24: CHANGELOG current + gate/version confirmation + release smoke of all shipped fixes** (a659054)
- **Release readiness v0.8.24: CHANGELOG current + gate/version confirmation + release smoke of all shipped fixes** (ef72587)
- **Merge build.rs: re-run on git HEAD/ref changes so the baked version string stops going stale** (f324e7f)
- **build.rs: re-run on git HEAD/ref changes so the baked version string stops going stale** (ec0062a)
- **Merge Generalize get pathway identifier-redirect beyond UniProt (Ensembl, gene symbol, rsID)** (fc2922f)
- **Generalize get pathway identifier-redirect beyond UniProt (Ensembl, gene symbol, rsID)** (0ca01c0)
- **Merge Alias resolver: prefer canonical HGNC gene over NCIT/MESH for known gene aliases (PD-L1/HER2/P53)** (a3ea6a3)
- **Polish gene alias help text** (036b36d)
- **design: land spec tests for alias-resolver-prefer-canonical-hgnc-gene-over-ncit-mesh** (bc0acdd)
- **Merge -j: emit JSON error object on stdout for every error class** (0dbb7a0)
- **-j: emit JSON error object on stdout for every error class** (9a0e144)
- **Merge Restore parallel-isolation canary to SPEC_ROUTINE_PATHS (433 dropped it; make verify red)** (dab68f6)
- **Restore parallel-isolation canary to SPEC_ROUTINE_PATHS (433 dropped it; make verify red)** (8863371)
- **Merge get variant: accept transcript HGVS (NM_:c.) via the existing normalize seam** (956106e)
- **get variant: accept transcript HGVS (NM_:c.) via the existing normalize seam** (af8ec94)
- **Merge Quiet noisy cache disk-space WARN when cleanup succeeded** (1b8556c)
- **Quiet noisy cache disk-space WARN when cleanup succeeded** (66e6276)
- **Merge Bound CTGov trial-helper post-output latency for --limit 1** (9f12fcd)
- **Bound CTGov trial-helper post-output latency for --limit 1** (1265d0a)
- **Merge Actionable CLI rejection errors: limit bounds, multi-word names, identifier redirects** (6e4a9fa)
- **Actionable CLI rejection errors: limit bounds, multi-word names, identifier redirects** (8823489)
- **Merge Typed MCP tool surface: schema-typed tools (replace single command string)** (26f8009)
- **verify: strengthen typed MCP schema assertions** (99c25a4)
- **code-review: over-edit — remove brittle MCP docs helper assertion** (c044633)
- **design: land spec tests for typed-mcp-tool-surface-schema-typed-tools-replace-single-command-string** (5f1cf18)
- **Merge MCP source attribution: surface upstream provenance through the MCP boundary** (12498d1)
- **Surface MCP provenance metadata** (80b9172)
- **Merge Release prep v0.8.24: version bump + light review of the rmcp-client migration** (74c5cb4)
- **Release prep v0.8.24: version bump + light review of the rmcp-client migration** (132f2e7)
- **Merge SPIKE: drop Python mcp test-client dep, verify MCP contract from Rust (rmcp client)** (3acb45c)
- **Extract rmcp MCP contract client helper** (32d6bd9)
- **Document rmcp contract optimization results** (11e2988)
- **Stub optional MedlinePlus during rmcp contract tests** (b9f580e)
- **Optimize rmcp stdio full contract teardown** (0615b85)
- **Drop Python mcp contract dependency** (1b5143f)
- **Spike rmcp client MCP contract proof** (597ae44)
- **Merge serve-http: stop rejecting non-localhost Host headers** (3c4da30)
- **serve-http: stop rejecting non-localhost Host headers** (39247f0)
- **Merge Unblock biomcp lint: resolve RUSTSEC-2026-0186 memmap2 advisory** (94d4f0c)
- **Unblock biomcp lint: resolve RUSTSEC-2026-0186 memmap2 advisory** (6419b0f)
- **code-review: validation-gap — complete action-summary geo ranking and spec routing** (b80035f)
- **Merge Make spec-contracts self-contained in fresh March worktrees** (e6db190)
- **Make spec-contracts self-contained in fresh March worktrees** (1c6ee0a)
- **Merge Coverage honesty: explicit not-in-coverage signal for DDInter + cBioPortal local cohorts** (b8710d7)
- **Coverage honesty: explicit not-in-coverage signal for DDInter + cBioPortal local cohorts** (8506eaf)
- **Merge Slim routine specs to pure mustmatch CLI/MCP contracts** (9cebbc1)
- **code-review: validation-gap — require executable BIOMCP_BIN before spec reuse** (baad40e)
- **code: slim routine specs to pure mustmatch contracts** (074675d)
- **design: land spec tests for slim-routine-specs-to-pure-mustmatch-cli-mcp-contracts** (f67d5bd)
- **Merge adverse-event --count: reject the fake 'total' field instead of silently returning empty** (adfa68f)
- **adverse-event --count: reject the fake 'total' field instead of silently returning empty** (9b0e63b)
- **cleanup: remove verified dead code** (6f9c7d2)

### Tests
- **test: cover missing BIOMCP_BIN spec fallback** (8992c7f)
- **test: cover limited body success path** (9c099b1)
- **test: close final review follow-ups** (efb7378)
- **test: finish final gate cleanup** (d8d2102)
- **test: add ignored CLI live smokes** (7b9a3dd)
- **test: complete utility helper coverage checkpoint** (75c915d)
- **test: remove final mock-server dependency** (3e828e2)
- **test: make EMA sync coverage pure** (5499fde)
- **test: make CVX sync coverage pure** (86e87bf)
- **test: make WHO prequalification sync coverage pure** (3a0a5d2)
- **test: make WHO IVD sync coverage pure** (20b71a7)
- **test: remove duplicate retry stderr mock tests** (041dc2e)
- **test: remove duplicate pathway stderr mock test** (088658e)
- **test: make article usage errors pure** (e14eca7)
- **test: remove opentargets mock-server tests** (5ed5c3b)
- **test: make opentargets prevalence tests pure** (a00b001)
- **test: make opentargets clinical tests pure** (80dd6df)
- **test: make opentargets druggability tests pure** (301dcaf)
- **test: make opentargets disease target tests pure** (3ae67ee)
- **test: make opentargets drug section tests pure** (432ab17)
- **test: make shared source retry tests pure** (e514d58)
- **test: make article session json tests pure** (0a6fa54)
- **test: make diagnostic get tests pure** (5079f0f)
- **test: make diagnostic search tests pure** (c63a269)
- **test: make health vaers tests pure** (ff44a92)
- **test: make diagnostic cli json tests pure** (78b50b4)
- **test: make health auth tests pure** (5380e2e)
- **test: remove disease get mock-server proofs** (5b33ba4)
- **test: make study entity tests pure** (6e939d2)
- **test: make disease clinical feature fallback pure** (5b8c448)
- **test: make cache config tests pure** (ccc5ee3)
- **test: make health timeout tests pure** (d66fdc1)
- **test: make health cache dir tests pure** (5718c8e)
- **test: remove unused cli test support module** (1c99e8a)
- **test: make shared source cache tests pure** (47f5f9d)
- **test: make rate limit key tests pure** (d5e9db1)
- **test: make cache facade tests pure** (9327cf6)
- **test: make download util cache tests pure** (ff00809)
- **test: make cache cli path tests pure** (06e20c0)
- **test: make related disease study hints pure** (452518a)
- **test: remove stale article batch mock imports** (649d1bc)
- **test: make search-all pathway error test pure** (9924615)
- **test: make trial cli alias pagination test pure** (e12d6e3)
- **test: make disease diagnostic enrichment tests pure** (68092a7)
- **test: make gene diagnostic tests pure** (6b7497a)
- **test: make pathway entity tests pure** (8dae303)
- **test: make diagnostic regulatory tests pure** (0623cbc)
- **test: make gene reactome signal test pure** (c55f901)
- **test: make discover alias keyword tests pure** (cce4937)
- **test: make disease sparse identity proof pure** (2fb3d69)
- **test: make drug get tests pure** (189dfdb)
- **test: make pgx tests pure** (769cb74)
- **test: make article planner tests pure** (3551248)
- **test: make article graph tests pure** (e6748c1)
- **test: finish pure ctgov trial search tests** (084d1a1)
- **test: make ctgov fanout count tests pure** (9c84c94)
- **test: finish pure adverse event tests** (12b139c)
- **test: make adverse event ctgov aggregation pure** (268a6d0)
- **test: make adverse event all-source vaers pure** (5f4102f)
- **test: finish pure clinical feature tests** (17ffa6f)
- **test: make clinical feature fallback pure** (e697572)
- **test: make disease survival notes pure** (43cb4be)
- **test: trim adverse event vaers wrapper mocks** (97f4ea6)
- **test: finish pure disease fallback tests** (c6afa4d)
- **test: finish pure variant get sidecar** (3ffa4ab)
- **test: make disease fallback arnold crosswalk test pure** (ca38266)
- **test: make disease resolution weak-match test pure** (e500669)
- **test: make adverse event vaers validation tests pure** (2aeb36e)
- **test: make adverse event openfda status tests pure** (558c4ea)
- **test: make variant cancerhotspots success test pure** (90658b0)
- **test: make variant gwas unavailable test pure** (7898517)
- **test: trim ctgov next-page fanout test** (3f548b1)
- **test: make nci trial search tests pure** (95647f2)
- **test: make disease lookup path tests pure** (8ea5de0)
- **test: make nci trial mapping tests pure** (077cd1d)

### Docs
- **docs: sharpen dead-code cleanup candidates** (33e396b)
- **docs: record dead-code evaluation** (22d1729)
- **docs: record dead code audit** (875ee7a)
- **docs: record CLI test coverage checkpoint** (2e4b31a)
- **docs: record source test purity checkpoint** (904a499)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/genomoncology/biomcp?utm_source=github-action)._