- Extended WHO Prequalification drug coverage to include active pharmaceutical
ingredients (APIs) alongside finished pharmaceutical products;
search drug --region who --product-type apifilters explicit WHO searches to API rows. (232) - Added the CDC CVX/MVX vaccine identity bridge for default and EU/all
vaccine-brand drug search, backed by local CDC bundle downloads and explicit
refresh via
biomcp cvx sync. (233) - Added CDC WONDER VAERS as the aggregate vaccine adverse-event source for
search adverse-event --source <faers|vaers|all>, including combined vaccine search, health visibility, and source inventory/docs surfaces. (235) - Added the local GTR-backed
diagnosticentity withsearch/get diagnostic, first-use bundle refresh, explicitbiomcp gtr sync, and the supporting health/docs/spec contract. (236) - Expanded
diagnosticinto a local multi-source surface with WHO Prequalified IVD infectious-disease products, source-aware search/get behavior, and explicitbiomcp who-ivd sync. (237) - Added FDA 510(k) and PMA regulatory overlays to
get diagnostic <id> regulatory, rendering source-aware FDA device status when records match and a truthful empty regulatory section when they do not. (238) - Added opt-in diagnostic pivots to gene and disease cards with
get gene <symbol> diagnosticsandget disease <name_or_id> diagnostics, backed by local GTR and WHO IVD diagnostic search. (239) - Extended article search follow-up guidance with cross-entity keyword hints:
JSON
_meta.next_commandsnow includes gene and drug pivots for recognizable keyword patterns, while markdownSee also:addsdiscoverandget diseaserecovery paths for short disease-like phrases. (242) - Added opt-in
clinical_featuresdisease output backed by MedlinePlus clinical summaries, reviewed HPO phenotype mapping, source-native evidence URLs, and unsupported-disease empty states viaget disease <name> clinical_features. (252, 253, 254) - Added offline routing via
biomcp suggest <question>so worked-example prompts can resolve to structured_meta.workflowguidance without requiring a live tool call. (279) - Added workflow-ladder sidecars and schema-backed
_meta.ladder[]payloads so routed workflows can carry explicit ladder steps across the CLI/MCP contract. (282) - Added richer CLI help examples for batch/variant-limit usage and preserved the parser-level skill uninstall contract through current help and MCP guard surfaces. (217, 224)
- Added opt-in article fulltext source-boundary coverage and PDF fallback so article retrieval can truthfully report source limits while recovering PDF text when structured fulltext is unavailable. (255, 256)
- Added DDInter-backed drug-drug interaction workflows with
biomcp drug interactions <name>,get drug <name> interactions, local bundle health, source-scoped empty wording, andbiomcp ddinter sync. (303)
- Added BioASQ-oriented how-to routing rows to
skills/SKILL.mdfor gene-disease association, gene localization/protein-function, drug regulatory date, and variant clinical-significance workflows, steering agents to structured-data shortcuts before article search. (240) - Refreshed architecture, source-integration, and current-state docs so the shipped architecture and CLI guidance match the post-decomposition repo surface. (272, 273, 274, 275)
- Repaired backtick quoting in the mustmatch study/spec contract, published
BioASQ benchmark guidance, and made the canonical
SKILL.mdrender/install contract explicit for agents and operators. (276, 280, 281) - Aligned the public landing-copy contract with the shipped
suggestand workflow landing bullets somake test-contractsaccepts the current README and docs homepage feature counts. (286) - Refreshed source, licensing, versioning, CLI decomposition, diagnostic, clinical-features, API-key, quality-bar, and staging-demo docs to match the shipped v0.8.22 surface and current local-runtime key expectations. (222, 272, 292, 304, 306, 314, 318, 329, 332, 341, 358, 362)
- Changed custom CLI validation failures (
BioMcpError::InvalidArgument) to exit2, matching clap parser failures and separating bad usage from runtime failures. (353) - Fixed
suggestso resistance-to-drug mechanism questions anchor starter commands on the drug instead of filler text. (291) - Patched
rustls-webpkito the safe release line and mademake checkenforce the cargo-deny advisory gate alongside the existing license gate. (290) - Fixed cargo-install compatibility, deterministic EMA freshness checks, OLS4 smoke routing, WHO drug JSON envelopes, and WHO API cache-limit wording so install, health, and explicit WHO/API drug searches stay stable. (218, 220, 226, 232)
- Added compact diagnostic rows and capped disease diagnostic pivots so gene/disease diagnostic follow-ups stay scannable and bounded. (266, 267)
- Replaced the stale GTR sample with a live-valid GTR example and added zero-result recovery for the local diagnostic surface. (268, 269)
- Tightened entity-aware article follow-ups with a same-session loop-breaker for overlapping suggestions and PubMed ESearch cleanup for bounded question-format filler words. (277, 278, 283)
- Improved sparse drug research-code recovery, relational
discoverfiltering, trial help example/flag consistency, and CTGov intervention alias preservation so generated follow-up commands stay useful and shell-safe for degraded or ambiguous inputs. (302, 310, 313, 338, 339, 340, 342, 351, 357) - Repaired the targeted
SPEC_SMOKE_ARGSlane so it stores stable smoke section IDs and resolves them to current mustmatch pytest item IDs at runtime; the quality ratchet now checks collectability before stale line-qualified selectors can reachmake spec-smoke. (288) - Hardened update and machine-readable CLI contracts:
biomcp updatefails closed when checksum sidecars are missing,biomcp --json versiondocuments its plain-text exception,biomcp --json listremains parseable, and short-literal update ratchets were replaced with structural behavior checks. (331, 333, 352, 355) - Stabilized MCP stdio no-input guidance, cBioPortal study download idle/stall handling, disease clinical-feature specs, OLS4 disease/discover fallback IDs, WikiPathways parallel tests, and protein ComplexPortal specs with regression coverage. (326, 336, 345, 346, 350, 354, 358)
- Surfaced Semantic Scholar authentication/degradation status in article search
and honored
Retry-Afterduring authenticated retries so throttled searches disclose source health and back off correctly. (364, 365, 366)
- Completed release/docs contract cleanup for the
0.8.22line so the latest release notes, ticket inventory, and release metadata stay aligned. (264, 265) - Made
make checkinclude the public Python/docs contract lane and addedmake release-gateas the named local release-blocking command, so release-readiness docs and validation profiles share one contract. (287) - Reworked
SPEC_SMOKE_ARGShandling around stable smoke inventory and current mustmatch pytest item IDs, and cleaned up.marchartifact handling for repo submission paths. (270, 271) - Migrated the release gate to the spec-v2 corpus, made
spec-prself-contained for March kickoff, restored release-gate reliability, and kept stable smoke, canary, cache-warm, and test-contract lanes aligned with the current shipped docs/spec surface. (294, 297, 298, 299, 300, 301, 307, 308, 344) - Decomposed oversized CLI modules, absorbed residual line-cap allowlists, clarified the benchmark harness as internal, and added runtime-wiring/line-cap ratchets so structural cleanup cannot reintroduce public-surface drift. (309, 319, 320, 321, 322, 323, 324, 325, 334, 335, 343, 347)
- Strengthened release readiness with gene-all warm-budget coverage, local gate uv-build fixes, leaked-artifact cleanup, binary asset attributes, CI wrapper stale-binary warnings, Python 3.12/Rust 1.95 CI compatibility, self-contained local-data spec fixtures, and final v0.8.22 readiness audits before publish. (247, 258, 262, 263, 285, 289, 315, 316, 317, 327, 328, 330, 348, 363, 367)
- Recorded the diagnostic-entity, HPO clinical-feature, Obsidian vault, biomedical news, post-v0.8.21 shipped-surface, and neural-reranking reviews as architecture or deferred work unless runtime wiring shipped in the bullets above. (230, 243, 244, 245, 246, 284)
- Added article date-range filtering (
--date-from/--date-toand--year-min/--year-maxaliases) tosearch article. (182) - Added EMA regulatory region (
--region eu) tosearch drugandget drug, backed by local EMA human-medicine feeds; data auto-downloads on first use viabiomcp ema sync. (203) - Added entity-aware HATEOAS suggestions (
_meta.next_commands) to article search JSON output; gene-anchored and keyword searches return contextually appropriate follow-up commands. (195, 202) - Added article search fallback suggestions when
discoverresolves no entities, so dead-end queries get recovery paths. (204) - Surfaced EuropePMC and PubMed
first_index_dateper article insearch article --json;nullfor sources that do not expose index dates. (196) - Expanded trial search with drug alias union so searches match trials registered under any approved drug name variant. (198)
- Surfaced opt-in section hints (
More:block) in gene and disease base card responses;get gene <symbol>andget disease <name>now showfundingandsurvivalopt-in hints. (209)
- Fixed
search all --counts-only --jsonso sections correctly omitresults,links, andtotalfields per the counts-only contract. (206) - Disambiguated FAERS 404 (drug not in post-marketing database) from "found but no matching events"; added ClinicalTrials.gov fallback for adverse-event lookups when FAERS returns 404. (197)
- Improved error messages for
study download403/404 (actionable, with--listrecovery hint) and DisGeNET 403 (env var name and docs URL). (212) - Added study subcommand help descriptions and a regression test so help completeness is enforced going forward. (210)
- Refreshed architecture docs to the post-decomposition state: source map, modes prose, and MCP allowlist contract. (213)
- Fixed documentation drift: README source count, CHANGELOG WHO entry, and root help command count. (211)
- Published two blog posts on biomcp.org: daraxonrasib six-commands workflow article and a follow-up that removes biomcp-python references. (200, 201)
- Added
mustmatch lintfor spec bash blocks so spec sections that silently skip due to a missing pipe are now caught. (221) - Untracked
.marchbuild artifacts from git so worktree state stays clean. (193) - Added Compact Approval Fields spec block for EMA and EU regulatory data contract assertions. (194)
- Consolidated
EnvVarGuardandTempDirGuardinto a centraltest_supportmodule shared across all test crates. (199) - Added docs-only validation profile so
make docscan run without triggering the full build gate. (205) - Updated
tarandrustls-webpkifor active RustSec advisories. (207) - Fixed 7
make test-contractsfailures from assertion drift after the decomposition batch. (208)
- Security fix: remove partial API key from health output so shared operator reports no longer leak credential fragments. (067)
- Hardened the MCP allowlist so mutating
study downloadpaths stay blocked while the safe--listpath remains available. (068)
- Fixed
batch --jsonso responses always include the_metacontract field. (069) - Hardened the GWAS variant section against live decode failures. (070)
- Fixed gene-to-PGx and disease-to-drug See-also routing so those pivots land on the correct entity helpers. (077)
- Fixed large PMC OA full-text downloads that were timing out on bigger payloads. (080)
- Added cross-entity See-also links for drug→PGx, gene→PGx, disease→study, and zero-result→discover routing. (076)
- Added the quality ratchet to
make checkso the repo gate now audits mustmatch lint, MCP allowlist coverage, and source-registry drift. (075) - Added the study top-mutated helper plus disease literature fallback for missing direct evidence paths.
- Added SEER Explorer-backed disease survival sections so
get disease <name_or_id> survivalcan show 5-year relative survival by sex for mapped cancers. (173) - Added NIH Reporter funding sections so
get gene <symbol> fundingandget disease <name_or_id> fundingcan show top grants from the most recent 5 NIH fiscal years. (174) - Added WHO Prequalification as the shipped local-data drug source for
get drug <name> regulatory --region whoandsearch drug --region who; runwho syncto force-refresh the local CSV before freshness-sensitive regional drug lookups.
- Reworked CLI help, typed-path guidance, and the skill catalog for self-teaching agent navigation. (072, 073, 074)
get diseasenow shows full disease definitions instead of truncated characterizations. (080)get diseasenow separates defining phenotypic features from the full HPO list with ranked key-feature summaries. (081)get genenow shows UniProt protein isoforms in the protein section. (082)get drugnow shows drug target family names alongside individual targets. (083)get genenow shows protein legacy names alongside current symbols. (084)get variantnow shows variant legacy nomenclature alongside current HGVS names. (085)- Improved purine-analog mechanism labels so ATC-exact and mechanism-of-action coverage stay aligned. (086)
- Closed the remaining BioASQ product gaps around protein function truncation, variant-specific targets, and disease feature coverage. (087)
- Replaced the in-shell mustmatch shim with the packaged
mustmatch lintentrypoint plus a small compatibility layer for the repo’s existing ratchet contract. (088)
- Added architecture contract docs for See-also links, discover grammar, CI, and post-tag public proof expectations. (078)
- Documentation consistency audit across the public docs surface.
- Repo cleanup for layout, example paths, and tracked
.marchartifacts. (079)
- Cleaned up Semantic Scholar health output so unauthenticated setups are reported as optional/shared-pool usage instead of looking like a broken configuration. (055)
- Added six more built-in study chart types: pie, density, violin, ridgeline, heatmap, and stacked bar. (041)
- EMA-backed drug data now auto-downloads on first use and refreshes stale local caches, so EU drug coverage no longer requires manual setup. (057)
- Moved EMA-backed specs out of the PR-blocking stable lane into the smoke lane so CI keeps EMA coverage without destabilizing the release gate. (056)
- Refreshed the README, docs index, and source landing pages with clearer public-facing messaging.
- Added three new blog posts covering agent skills, article search, and built-in cancer genomics charts.
- Added EMA regional drug coverage backed by local EMA human-medicine feeds,
so
search drug,get drug, andget drug shortagesupport--region us|eu|allacross EU regulatory status, DHPCs, referrals, PSUSAs, shortages, and the existing US label surface. (043, 044) - Added the BioASQ benchmark module with
benchmarks/bioasq/ingest_public.py, dataset and validity manifests, and the published BioASQ benchmark reference atdocs/reference/bioasq-benchmark.md. (045, 046)
search drugnow defaults to--region all,get drug --regionis surfaced in help, OpenFDA label fallback prefers exact brand-name matches, and OpenTargets drug-indication lookups are corrected for mixed US/EU workflows. (043, 044)S2_API_KEYis now optional for Semantic Scholar-backed article enrichment and helpers: unauthenticated calls use the shared Semantic Scholar pool at 1 req/2sec, while authenticated calls keep the 1 req/sec quota with retry backoff. (047)
- Added WikiPathways as a third pathway source alongside Reactome and KEGG,
with source-aware section handling plus operator proof coverage in
biomcp healthandscripts/contract-smoke.sh. (025) - Added an optional Semantic Scholar search leg to
search articlewhenS2_API_KEYis set, merging PubTator3, Europe PMC, and Semantic Scholar results with identifier-aware deduplication and directness-first ranking. (034) - Added KEGG as a pathway source alongside Reactome and WikiPathways.
- Added gnomAD constraint metrics for variant-interpretation context.
- Added Human Protein Atlas tissue expression to gene output.
- Added ComplexPortal-backed protein complex data.
- Added DisGeNET gene-disease association scores.
- Added
biomcp discover <query>as the free-text concept-resolution entrypoint, using OLS4 as the required backbone with optional UMLS crosswalks and MedlinePlus disease/symptom context. (028) - Added
biomcp article batch <id>...for compact multi-article summary cards with parallel article fetch and optional batched Semantic Scholar enrichment; the command is limited to 20 IDs. (037)
- Restored pathway progressive disclosure and exact-title-first ranking, so default pathway cards stay concise and exact pathway-title matches rise to the top across sources. (017)
- Expanded operator proof surfaces and refreshed source-aware architecture docs so the shipped source inventory, API-key handling, proof expectations, and section-availability rules are explicit and consistent. (018, 019, 030)
- Improved protein complexes terminal layout and normalized pathway CLI usage errors and remediation. (020, 021)
- Added source labels and missing evidence URLs across entity detail outputs in Markdown and JSON for stronger traceability. (022, 025)
- Added paper/reproducibility and community-packaging artifacts, including
paper/,CONTRIBUTING.md,CODE_OF_CONDUCT.md, and.zenodo.json. (023) get geneandget drugmisses now return discovery-backed canonical suggestions with structured_meta.alias_resolution/_meta.next_commandsguidance instead of dead-end errors. (029)- Help,
list, and docs now surface working typed paths, andsearch all/search articlecan emit--debug-planrouting metadata in Markdown or JSON when requested. (032) - Typed variant retrieval now accepts common shorthand forms, emits
variant-scoped recovery guidance on misses, and accepts long-form protein
notation such as
AKT2 p.Pro50Thr. (033, 039) search allcross-routing now stays inside controlled typed fallback rules, reducing noisy drill-downs and duplicate follow-up commands. (035)- Typed retrievals now expose compact answer-bearing summaries for approvals, population frequencies, and disease/variant evidence without removing the detailed sections. (036)
- Deepened OpenTargets integration with tractability and genetic-association sections.
- Added JATS-aware PMC full-text extraction for article detail views.
- MCP chart responses can now return SVG inline as a base64 image payload.
- Polished Kuva chart output with human-readable labels and KM curve improvements.
- Suppressed retry-middleware warnings from stderr.
- Pathway output now keeps section availability truthful and gives better guidance when a source lacks a section.
- Fixed drug interaction output so supported drugs no longer return empty interaction sections.
- Fixed g:Profiler enrichment timeouts.
- Fixed the DisGeNET template crash on sparse or null payloads such as
biomcp get gene KYNU disgenet. (031) - Fixed default article retraction filtering so only confirmed retractions are excluded; PubTator3 and Semantic Scholar rows with unknown retraction status remain visible. (038)
- Adopted the shared
bin/lintscript and wiredmake lint/make checkto the March repo convention for Rust repos. - Refreshed the README, homepage, CLI reference, and helper docs so the public release docs match the current BioMCP command surface.
- Expanded
skills/SKILL.mdfor article graph helpers,enrich,batch, chart discovery, chart flags, and updated drug interaction guidance. - Updated the Kuva chart blog post with checked-in SVG outputs for all nine worked examples plus placeholder references for terminal screenshots.
- Added Semantic Scholar article enrichment and helpers for TLDR, citations, references, and recommendations.
- Added Kuva-backed study chart rendering plus chart discovery/docs for SVG study outputs.
- Trial search now accepts fractional ages such as
0.5 years. - Generated
_meta.next_commandsnow pass a parser-level validity gate, and article JSON guidance is cleaner and more truthful. - Fixed federated article search offset and sort semantics with correctness coverage.
- Breaking MCP runtime change: renamed the MCP execution tool from
shelltobiomcp; update MCP clients and demos to callbiomcpaftertools/list. - Added
CITATION.cffand citation pointers in the README and public docs. - Fixed Semantic Scholar references to use cited papers instead of referenced papers.
- Fixed article search timeouts on
--exclude-retracted. - Fixed article retraction filtering and unary
NOTparsing. - Stabilized CTGov trial pagination and age-filtered totals: improved cursor behavior, aligned count/search params, clarified trial-filter guidance, and exposed approximate age-only counts when exact totals are too expensive.
- Expanded release-quality gates with contracts CI, version-sync checks, a PR-gated spec suite, stable/smoke lane splitting, and protein entity spec coverage.
- Updated lockfiles for the
quinn-protoandPyJWTvulnerability advisories. - Refined the Streamable HTTP demo into a tested end-to-end BRAF/melanoma workflow with a focused README and Python 3.11 compatibility.
- Fixed the planning-docs CI path regression so release validation uses the repo-local planning fixtures by default instead of an Ian-local absolute path. This is the fix from PR #191 that unblocks release packaging on GitHub Actions.
- Refreshed the public discovery docs so
search allis taught as the unified cross-entity entry point in the README and docs index. This is the docs alignment from PR #190.
- Promoted remote Streamable HTTP in newcomer docs with a dedicated getting-started page for
biomcp serve-http. - Added a runnable PEP 723 demo client at
demo/streamable_http_client.pyfor/mcp, including atools/listflow andbiomcp versiontool call. - Surfaced the canonical remote HTTP routes more prominently across public docs:
/mcp,/health,/readyz, and/. - Kept
serve-ssemigration guidance visible while shipping the Streamable HTTP release/docs/demo verification package together. - Reranked disease search results so exact-match canonical names surface first.
search articlenow rejects unsupported identifiers with explicit contract guidance instead of falling through ambiguously.- Defaulted article search sorting to relevance across CLI entry points.
- Normalized search aliases, identifiers, and trial phase semantics across entity searches.
- Broadened trial mutation matching across title, summary, keyword, and eligibility fields.
- Removed stale skill-discovery UX and refreshed
list/ help output to match the shipped CLI surface.
study survivalnow reports Kaplan-Meier median survival, 1/3/5-year survival landmarks, and two-group log-rank p-values.- Fixed survival median calculation: replaced raw follow-up median with Kaplan-Meier median survival.
study compare --type expressionnow reports Mann-Whitney U and p-value.- Added
study download <study_id>andstudy download --listfor local cBioPortal datahub installs. - Hardened
study download: no total body timeout for large archives, path-like study ID rejection, stream-to-disk download, and cleanup on failed extraction. - Refreshed
skills/SKILL.mdwith real study command usage, includingcohort,filter, andsurvival --endpointexamples.
- Added
studysubcommand: local cBioPortal study adapters with CLI query surface (download,cohort,survival,compare). - Added
study filter: multi-omics cross-table sample joins across mutation, CNA, expression, and clinical data. - Added Fisher exact p-values to co-occurrence pair analysis.
- Added skill installer auto-discovery: scans existing agent config directories in priority order and supports the
.agents/skills/cross-tool standard. - Refreshed skill guidance and reference material: adopted the measured
SKILL.mdrefresh and added drift validation for examples, schemas, and jq snippets. - CLI quality pass: positional search arguments, multi-token input handling, variant fallback, NCT ID validation, bare-entity shortcuts, staged trial fill, article request timeout, and
--untilalias.
- Added
expressionsection to gene output (GTEx tissue-specific TPM data). - Added
druggabilitysection to gene output (DGIdb drug-gene interactions and categories). - Added
clingensection to gene output (gene-disease validity and dosage sensitivity). - Added evidence URLs (
_meta.evidence_urls) to all entity output — includes Ensembl, OMIM, NCBI Gene, and UniProt links where available. - Added
spec/BDD documentation suite with 54 passing executable specifications. - Unified article search: fan-out across PubTator3 and Europe PMC in parallel with PMID deduplication, source-grouped rendering, and
--source <all|pubtator|europepmc>. - Added infinite cache mode via
BIOMCP_CACHE_MODE=infinitefor offline/demo workflows. - Consolidated CI into a single job; streamlined release pipeline.
- Added reusable presentations infrastructure with an intro deck, branded theme assets, and slide templates for BioMCP talks.
- Hardened PyPI release packaging for arm64 and portable version syncing in the release workflow.
- Polished
search alloutput: GWAS trait relevance filtering, clinical significance sorting, uninformative variant suppression. - Gene-anchored article search via
GENE_PROTEINfield for higher precision. - Added trial search improvements (
--mutationboolean handling and--criteriasupport). - Added PyPI trusted publisher setup and release workflow updates.
- Added
search allcross-entity command — parallel fan-out across major entities (genes, variants, diseases, drugs, trials, articles, pathways, PGx, GWAS, and adverse events) with counts-first display and HATEOAS deep-dive links.
- Output cleanup across entity renderers for consistent markdown formatting.
- Improved help discoverability and completeness across all subcommands.
- Rewrote footer output with streamlined next-step suggestions.
- Improved help text discoverability and completeness for all CLI subcommands.
- Fixed trial filter accuracy: age-based post-filtering, exclusion-criteria detection, and pathway source correctness.
- Fixed
install.shto resolvelatesttag to a release that has downloadable assets. - Hardened input safety with SSRF prevention on user-supplied URLs.
- Enforced pagination and validation contracts across search endpoints.
- Simplified CI/CD workflow triggers to avoid redundant post-merge runs.
- Added runner-aware
actions/cache@v4protoc caching in CI, docs deploy, and release workflows. - Pinned workflow protoc installation to
28.3with cache-aware conditional setup.
- Added inclusion-first eligibility post-filtering to reduce exclusion-only false positives in trial matching.
- Applied cryptography dependency security updates and refreshed release artifacts.
- Tightened CLI/docs consistency around trial filter behavior and output contracts.
- Added location-level facility and geo post-filtering for more accurate trial site matching.
- Embedded git tag version metadata in the binary for reliable
biomcp versionoutput. - Improved pagination and result-window handling across search command families.
- Expanded clinical-grade trial filtering with ~45 new search flags and validation rules.
- Added MCP tool auto-generation to reduce drift between CLI capabilities and server tool surface.
- Upgraded help/discoverability content and list-based guidance for agent-driven workflows.
Complete rewrite from Python to Rust. Single static binary, no runtime dependencies.
- Single-binary CLI and MCP server — no Python, no pip, no virtual environments
- 15 biomedical data sources, unified command grammar, compact markdown output
- 14 embedded skills (guided investigation workflows)
- MCP server (stdio + SSE) with tool and resource support
- HTTP proxy (
serve-http) for multi-worker shared rate limiting - Production installer with SHA256 verification (5 platforms)
- Progressive disclosure: search returns summaries, get returns full detail with selectable sections
- NCBI API key support for improved rate limits
- 429 retry with Retry-After backoff
MyGene.info, MyVariant.info (ClinVar, gnomAD, CIViC, OncoKB), ClinicalTrials.gov, NCI CTS API, PubMed/PubTator3, MyChem.info, Monarch/MONDO, Reactome, UniProt, OpenFDA FAERS, PharmGKB/CPIC, GWAS Catalog, Monarch (phenotypes), AlphaGenome (gRPC).
- Python package
biomcp-pythonis no longer maintained - MCP tool names and signatures have changed
- Configuration via environment variables only
Legacy Python BioMCP. See branch python-0.7.3 for source code.