--- name: biomcp description: Search and retrieve biomedical data - genes, variants, clinical trials, diagnostic tests, articles, drugs, diseases, pathways, proteins, adverse events, pharmacogenomics, and phenotype-disease matching. Use for gene function, variant pathogenicity, trials, diagnostics, drug safety, pathway context, disease workups, and literature evidence. --- # BioMCP CLI If you don't know how to start, run `biomcp suggest ""` first, then open the returned `biomcp skill ` playbook for the full workflow. ## Routing rules - Start with the narrowest command that matches the question. - Use `biomcp discover ""` when you only have a single biomedical phrase and need the CLI to resolve the first typed command. `discover` is a single-entity resolver and single-entity free-text lookup only: use it to resolve the canonical name, ID, or category of one thing. It is not a relational query tool and not a list-question seed. Examples: `biomcp discover BRCA1` and `biomcp discover dabigatran`. Symptom-of-disease prompts, HPO symptom bridges, treatment prompts, gene+disease orientation, and unambiguous gene-plus-topic follow-ups remain supported exceptions. - Relational or multi-entity questions may redirect to `biomcp search all --keyword ""` instead of surfacing weak collocation matches as if they were a resolved discover answer. - Use `biomcp search all --gene --disease ""` when you know the entities but not the next pivot. - Treatment questions: `biomcp search drug --indication "" --limit 5` - Diagnostic-test questions: use structured pivots first with `biomcp get gene diagnostics` or `biomcp get disease "" diagnostics`; use `biomcp list diagnostic` for the full source/filter/section contract; use `biomcp search diagnostic --gene --limit 5`, `biomcp search diagnostic --disease "" --source all --limit 5`, or `biomcp get diagnostic ` when you need the full search/detail surface. - Symptom or phenotype questions: `biomcp get disease phenotypes` - Gene-function questions: `biomcp get gene ` - Drug-safety questions: `biomcp drug adverse-events ` and `biomcp get drug safety` - Drug-interaction questions: `biomcp drug interactions ` and `biomcp get drug interactions` - EMA and WHO regional drug data are local runtime files that auto-download on first use, DDInter is the local drug-interaction bundle, CDC CVX/MVX is the companion local vaccine-brand bridge for default/EU vaccine searches plus explicit WHO vaccine search, and GTR plus WHO IVD are local diagnostic-test backbones; run `biomcp ddinter sync`, `biomcp ema sync`, `biomcp who sync`, `biomcp cvx sync`, `biomcp gtr sync`, or `biomcp who-ivd sync` to force-refresh before freshness-sensitive local-runtime lookups. - Vaccine brand-name questions that miss on MyChem often need `biomcp search drug --region eu`, omitted `--region`, or explicit `biomcp search drug --region who --product-type vaccine`, which can bridge through CDC CVX/MVX into EMA or WHO vaccine matches. - Review-literature questions: `biomcp search article -k "" --type review --limit 5` - Keyword-only article searches may return `_meta.suggestions[]` objects when the whole keyword exactly matches a gene, drug, or disease label/alias; use the suggested `get gene`, `get drug`, or `get disease` command when structured data may answer before more article paging. - For repeated article keyword searches in one task, use JSON plus `--session ` with a short non-secret local label. If the next keyword overlaps the previous same-session keyword, `_meta.suggestions[]` can point to prior `article batch`, `discover`, or date narrowing instead of more reformulation. - Some first-call JSON responses include `_meta.workflow` and `_meta.ladder[]`; these are static sidecar-backed multi-step ladders. Treat `_meta.next_commands` as dynamic one-hop follow-ups and `_meta.ladder[]` as the worked-example path for the named workflow. - After `search article`, default to `biomcp article batch ...` instead of repeated `get article` calls. Batch up to 20 shortlisted papers in one call. - Use `biomcp batch gene ` when you need the same basic card fields, chromosome, or sectioned output for multiple genes. - For diseases with weak ontology-name coverage, run `biomcp discover ""` first, then pass a resolved `MESH:...`, `OMIM:...`, `ICD10CM:...`, `MONDO:...`, or `DOID:...` identifier to `biomcp get disease`. - Multi-hop article follow-up: `biomcp article citations --limit 5` and `biomcp article recommendations --limit 5` ## Section reference - `get gene ... protein`: UniProt function and localization detail - `get gene ... hpa`: Human Protein Atlas tissue expression and localization - `get gene ... expression`: GTEx tissue expression - `get gene ... diseases`: disease associations - `get gene ... diagnostics`: GTR diagnostic-test pivot for a gene - `get article ... annotations`: PubTator normalized entity mentions for standardized extraction - `get article ... tldr`: Semantic Scholar summary and influence - `get disease ... genes`: associated genes - `get disease ... phenotypes`: HPO phenotype annotations; source-backed and sometimes incomplete - `get disease ... pathways`: pathways from associated genes - `get disease ... diagnostics`: GTR and WHO IVD diagnostic-test pivot for a condition - `get diagnostic ... genes`: joined gene names from the GTR detail bundle - `get diagnostic ... conditions`: joined disease or condition names from GTR - `get diagnostic ... methods`: source-native GTR testing methods - `get diagnostic ... regulatory`: opt-in FDA device 510(k) and PMA overlay for supported diagnostic records - `get drug ... label`: FDA label indications, warnings, and dosage - `get drug ... regulatory`: regulatory summary - `get drug ... safety`: safety context and warnings - `get drug ... interactions`: DDInter-backed structured drug-drug interactions plus source-scoped empty wording - `get drug ... targets`: ChEMBL and OpenTargets targets - `get drug ... indications`: OpenTargets indication evidence ## Cross-entity pivot rules - `gene articles ` and `search article -g ` are equivalent starting points for gene-filtered literature. - Use helpers when the pivot is obvious: `drug interactions`, `drug trials`, `disease trials`, `variant articles`, `article citations`. - Use sectioned diagnostic pivots for gene or disease contexts: `get gene diagnostics` and `get disease diagnostics`. Use `biomcp list diagnostic` for source/filter/section details, and inspect returned IDs with `get diagnostic ` rather than inventing accessions or product codes. - Use `search article -d "" --type review --limit 5` when disease phenotypes or drug indications look sparse. - Use `article batch` as the default multi-article follow-up after `search article`; it replaces sequential `get article` calls and preserves Semantic Scholar enrichment when available. - Use `batch --sections ` when you need the same card shape for several entities. - Use `enrich ` once you have a real gene set and want pathways or GO-style categories. ## How-to reference For question patterns that need more than a one-line routing hint, start with the executable command or routing phrase below before you improvise the command sequence. | Question pattern | Start with | Why | |---|---|---| | Specific variant pathogenicity or clinical-evidence question | `biomcp get variant ""` | Use the bounded variant-pathogenicity workflow instead of mixing ad hoc variant, trial, and article commands | | Specific drug safety or adverse-event question | `biomcp drug adverse-events ` and `biomcp get drug safety` | Start with the drug-safety workflow before widening to literature | | Drug interaction question for a known medication | `biomcp drug interactions ` or `biomcp get drug interactions` | Start with the DDInter-backed helper when the anchor drug is known, then widen to safety or literature only for nuance | | Drug approval, licensing, or regulatory-date question | `biomcp get drug regulatory` | Use the structured-first workflow discipline: check `get drug ... regulatory` before falling back to articles for approval facts | | Broad gene-in-disease orientation | `biomcp search all --gene --disease ""` | Follow the shipped counts-first workflow for gene, drug, trial, and article pivots | | Gene-disease association for a known gene | `biomcp get gene diseases` | Check `get gene ... diseases` and `search variant --gene ...` for the full disease spectrum before searching articles | | Gene localization or protein-function question | `biomcp get gene protein` and `biomcp get gene hpa` | Pull `get gene ... protein` and `get gene ... hpa` first because UniProt and HPA usually answer localization or function directly | | Diagnostic-test inventory or detail question | `biomcp list diagnostic` and `biomcp get diagnostic GTR000006692.3` | Inspect the shipped diagnostic filters and sections first; use gene/disease diagnostic pivots or `search diagnostic` to get source-native IDs before `get diagnostic` detail | | You know the concept but not the first entity to inspect | `biomcp search all --keyword ""` | Use `search all` to choose the next typed command intentionally | | You need to normalize one clinical or guideline term to ontology or clinical codes | `biomcp skill normalize-to-codes` | Follow the discover workflow for source-labelled MONDO, HPO, ICD-10, SNOMED, or RxNorm-style identifiers | | "Most common" or prevalence question about a disease | `biomcp discover ""` | Use `biomcp discover` to resolve the canonical disease entity, then inspect structured disease data before widening to article search | | You already know the anchor entity and want the built-in related view | Use the matching helper such as `biomcp gene articles `, `biomcp drug interactions `, `biomcp drug trials `, or `biomcp disease trials ""` | Move from a known gene, disease, drug, or variant into trials, articles, drugs, pathways, or interaction review without rebuilding the query | | You need literature for a known gene, disease, drug, method, or outcome | `biomcp search article -k "" --type review --limit 5` | Translate the question into typed flags plus a focused keyword clause | | You need recruiting or completed trials for a disease, drug, or biomarker | `biomcp search trial -c "" --limit 5` | Start with condition and intervention filters, then add biomarker or geography only when needed | | You need to resolve or annotate a variant identifier | `biomcp get variant ""` | Normalize the variant first, then add significance or frequency filters | | You need a functional-effect prediction for a variant | `biomcp get variant "" predict` | Use `predict` only after you have a resolvable variant identifier | | You need to reproduce a paper-style workflow | Map the paper task to the closest BioMCP entity command, then use `biomcp article batch ...` for shortlisted papers | Map the paper task to the closest BioMCP workflow area before copying commands | | You need to review whether a workflow run is complete and trustworthy | Check command fidelity, evidence traceability, and reproducibility against the commands already run | Check command fidelity, evidence traceability, and reproducibility before signing off | ## Anti-patterns ### Don't use `discover` for relational or list questions `discover` resolves one biomedical entity at a time. If the prompt asks for relationships, classes, or a list, pivot to article keyword search first instead of treating `discover` as a relational query tool. - `"drug classes that interact with warfarin"` -> use `biomcp search article -k "drug classes that interact with warfarin" --type review --limit 5` - `"genes regulated by MEF2 in the heart"` -> use `biomcp search article -k "genes regulated by MEF2 in the heart" --type review --limit 5`, then `biomcp get gene ` once the literature or question gives you the concrete gene you actually need ### Don't keyword-reformulate Never do more than 3 article searches for one question. For iterative keyword searches, pass `--json --session ` so BioMCP can detect overlap across consecutive searches; the token is a local non-secret label, not a user ID. If two searches with different keywords return similar or empty results, follow the JSON `_meta.suggestions[]` ladder or change strategy entirely: inspect the previous result set with `biomcp article batch ...`, switch entity or source, narrow by year, or start with `biomcp discover ""`. ### Trial nicknames don't work in trial search ClinicalTrials.gov usually does not index nicknames like `CodeBreaK`, `COSMIC`, `BEACON`, or `KEYNOTE`. Search by drug plus condition instead, or use `biomcp search article -k ""` to recover the NCT ID first. ### Don't use `--type` for niche topics `--type` reduces recall to Europe PMC publication-type filtering today because PubTator3 and Semantic Scholar search results do not expose publication-type filtering. Use it for broad review questions with many results, not sparse or niche topics. ### Use `--drug` on article search for drug-specific questions When the question is about a specific drug's trial results, efficacy, or mechanism, add `--drug ` to `search article`. Without the drug filter, the key results paper often ranks too low to appear on the first page. ### Batch syntax is entity-specific `biomcp article batch ...` uses spaces between PMIDs. `biomcp batch gene ` and `biomcp batch drug ` use comma-separated IDs. ## Output and evidence rules - Quote multi-word IDs or names in commands. - Do not invent sections, filters, or helper flags that `biomcp list` does not show. - Treat empty structured regulatory drug results as signal for approved-drug questions, not as a CLI failure. - Prefer review articles for synthesis questions and structured sections for direct facts. - Use `_meta.next_commands` from JSON mode as the executable follow-up contract. - For article search, `_meta.suggestions[]` may contain exact keyword entity matches with `command`, `reason`, and `sections`, or session loop-breaker suggestions with `command` and `reason` only. Multi-concept phrases and typed-filter searches should not produce direct entity suggestions. ## Answer commitment - Only add more commands if a needed claim is still unsupported. If one command already answers the question, stop searching and answer. - If a structured section already contains the answer, use it. Anti-pattern: after `biomcp get drug nivolumab regulatory` shows `Sponsor: BRISTOL MYERS SQUIBB`, do not search articles just to confirm who developed nivolumab. - If 1-2 papers you already fetched state the answer in the abstract or TLDR, answer from those papers instead of hunting for a third paper. - If 3+ searches keep returning relevant papers, the answer is in what you already have or you need a different approach. If you keep reformulating the same search with different keywords, the answer is in what you already have or you need a different approach. Example: once repeated tau PET or European influenza vaccine searches keep surfacing relevant review papers, stop keyword-churning and extract the answer from those results. Run `biomcp skill list` for worked examples.