Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

BioMCP-TS

NPM · BIOMCP · SCANNED SEP 20

Biomedical MCP server: genes, variants, trials, literature, patents, optional SQL/R/biowasm tools.

Available components

+4 this week 79 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 1 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency45
Schema Quality & AI Usability69
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6077 tokens (~148/item across 41 items; 41 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management67
  • Stability observed for 20 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 94% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 41 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 41 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the BioMCP-TS MCP server?

BioMCP-TS runs locally as an npm package, launched with npx -y biomcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · biomcp

# add to Claude Code
claude mcp add yeyuan98-biomcp-ts -- npx -y biomcp
// .cursor/mcp.json
{
  "mcpServers": {
    "yeyuan98-biomcp-ts": {
      "command": "npx",
      "args": [
        "-y",
        "biomcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "yeyuan98-biomcp-ts": {
      "command": "npx",
      "args": [
        "-y",
        "biomcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add yeyuan98-biomcp-ts -- npx -y biomcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "yeyuan98-biomcp-ts": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "biomcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add yeyuan98-biomcp-ts --command npx --arg -y --arg biomcp
# ~/.hermes/config.yaml
mcp_servers:
  yeyuan98-biomcp-ts:
    command: "npx"
    args: ["-y", "biomcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "yeyuan98-biomcp-ts": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "biomcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add yeyuan98-biomcp-ts -t stdio -c npx -a -y biomcp
// mcp.json
{
  "mcpServers": {
    "yeyuan98-biomcp-ts": {
      "command": "npx",
      "args": [
        "-y",
        "biomcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +15
    • Malware scan: unverified → pass security
  • 14 Sept 26 −14
    • Malware scan: pass → unverified security
    • Package version: 1.4.2 → 1.4.3 functional
  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 0
    • Tool safety: pass → unverified security
    • Stability: 0.30 → unverified security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • First check of Schema quality: unverified functional
    • Package version: 1.1.1 → 1.4.2 functional
  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/biomcp@1.4.3

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 1 package
Packages resolved 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 41 exposed · ~6,077 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
article_get ~268

Get article by PMID/PMCID/DOI. Citation: fast mode (~4s, 4 providers, auto-fallback to PubMed) or full mode (~15-30s, all 5 providers incl. PubMed). Forward citation lists come from Europe PMC, Semantic Scholar, and OpenCitations; Crossref provides counts and references only.

NameTypeReqDescription
citation_directionstringCitation direction: "forward" (articles citing this one), "backward" (references), "both" (default)
citation_modestringFast: Europe PMC, Semantic Scholar, OpenCitations, Crossref counts/references (~4s). Full: All 5 providers incl. PubMed (~15-30s). Fast mode auto-falls back to PubMed when other providers return no i…
idstringyesArticle identifier: PMID (numeric, e.g. "12345"), PMCID (e.g. "PMC1234567"), or DOI (e.g. "10.1038/s41586-021-03819-2")
limitintegerMaximum items per section (e.g., 20 citations)
sectionsarraySections to include. Use ["citation"] for citation data, ["all"] for everything.

No output schema declared.

No examples provided.

article_search ~204

Search literature across multiple backends with federated search and deduplication

NameTypeReqDescription
dateRangestringDate range as YYYY-MM-DD/YYYY-MM-DD. Open-ended: "2020-01-01/" or "/2023-12-31". Only pubmed, europepmc, semantic_scholar support this.
limitintegerMaximum results to return. Applied to final deduplicated results, not per-source. Each source may fetch more internally before deduplication.
offsetintegerResult offset. EuropePMC windows are capped at 1000 rows; use narrower queries or another source for deeper results
querystringyesSearch query (title, abstract, or keyword). Journal scoping: PubMed matches full journal names and NLM abbreviations; EuropePMC JOURNAL:"..." filters require the NLM abbreviation (e.g. "N Engl J Med")
sourcestringSpecific source to search

No output schema declared.

No examples provided.

batch_get ~25

Get multiple entities in parallel

NameTypeReqDescription
inputsarrayyesList of entity requests

No output schema declared.

No examples provided.

biomcp_configure ~671

Inspect and configure biomcp — unified observability and restricted controllability for every parameter. **What it covers:** three optional feature groups (database, analysis_r, analysis_biowasm) whose knobs live in the .biomcp.json project config file (written by this tool, loaded at server startup — a restart applies changes), plus every environment-only parameter (API keys, proxy, security boundaries), which is query-only. **Actions:** - status (default; call with {}): per-feature running state (with each feature's settable_keys), config file health, conflicts (e.g. an env var vetoing the file), pending-restart flags, dependency prerequisites, and parameter counts. The full parameter catalog is NOT inlined — use filter for detailed rows: 'file', 'env', a feature id ('analysis_r'), or a dotted-id prefix ('features.database'). - set: create/modify file parameters in one atomic batch. Enable/disable is just features.<group>.enabled. null removes a key (restores default). Sensitive keys (connection targets, mirrors) require confirm_sensitive=true. Nothing is written when any key is invalid (dry_run=true validates and diffs without writing). - reset: remove a feature section (target: feature id) or specific keys (target: [dotted ids]). **Hard rules:** environment parameters are never settable here (the response tells you how to set them in your client's env block); env var values are never displayed (masked: presence + fingerprint only); the file write is refused when the server's working directory is not a project root — the response then carries a paste-ready env block instead. **Examples:** {"action":"status"} · {"action":"status","filter":"features.analysis_r"} · {"action":"set","values":{"features.analysis_biowasm.enabled":true}} · {"action":"set","values":{"features.database.enabled":true,"features.database.type":"sqlite","features.database.sqlite_path":["data/geo.db"]}} · {"action":"set","values":{"features.analysis_r.mirror_url":null}} · {"action":"reset"…

NameTypeReqDescription
actionstringstatus = inspect (default, works with no other arguments); set = create/modify file parameters; reset = remove.
confirm_sensitivebooleanRequired true when set/reset touches sensitive keys (connection targets, mirrors, credentials).
dry_runbooleanValidate and diff without writing (set/reset).
filterstringFor status: "file" | "env" | feature id | dotted-id prefix — returns detailed rows (effects, how-to-set).
targetFor reset: a feature id ("database" | "analysis_r" | "analysis_biowasm") removes the whole section, or a list of dotted file-param ids removes those keys.
valuesobjectFor set: {"<dotted file-param id>": <value|null>} — e.g. {"features.analysis_r.enabled": true}. null removes the key. Valid ids are listed by status.

No output schema declared.

No examples provided.

discover ~49

Free-text concept resolution - find entities matching a free-text query

NameTypeReqDescription
querystringyesFree-text query (e.g., "BRAF V600E", "lung cancer", "imatinib")

No output schema declared.

No examples provided.

disease_drugs ~35

Get drugs for a disease via OpenTargets

NameTypeReqDescription
disease_idstringyesDisease ID
limitinteger

No output schema declared.

No examples provided.

disease_get ~59

Get detailed disease information by ID

NameTypeReqDescription
disease_idstringyesDisease ID (e.g., "DOID:0060268", "C0018794")
limitinteger
sectionsarraySections to include

No output schema declared.

No examples provided.

disease_search ~54

Search for diseases by name, phenotype, or keyword

NameTypeReqDescription
limitintegerMaximum results
offsetintegerResult offset
querystringyesDisease name, phenotype, or keyword to search for

No output schema declared.

No examples provided.

disease_trials ~32

Get clinical trials for a disease

NameTypeReqDescription
disease_idstringyesDisease ID
limitinteger

No output schema declared.

No examples provided.

drug_get ~73

Get detailed drug information by name

NameTypeReqDescription
limitinteger
namestringyesDrug name (e.g., "imatinib", "aspirin")
sectionsarraySections to include (adverse_events = FDA FAERS adverse reactions ranked by report count; limit applies to reaction rows)

No output schema declared.

No examples provided.

drug_search ~53

Search for drugs by name, mechanism, or keyword

NameTypeReqDescription
limitintegerMaximum results
offsetintegerResult offset
querystringyesDrug name, mechanism, or keyword to search

No output schema declared.

No examples provided.

drug_trials ~24

Find clinical trials for a drug

NameTypeReqDescription
drugstringyesDrug name

No output schema declared.

No examples provided.

ensembl_consequence ~279

Predict the functional consequence of a variant on demand via Ensembl VEP — works even for NOVEL variants absent from every database, and for non-human species. Input forms: HGVS c./p./g. notation ("NM_004333:c.1799T>A", "ENST00000288602:c.1799T>A") or a dbSNP rsID ("rs113488060"). Prefer HGVS over rsIDs when both are available — rsIDs are resolved through dbSNP's coordinate mapping, which can yield less specific consequences. Returns the most severe consequence plus per-transcript effects (impact, codon/amino-acid change, SIFT/PolyPhen where available) and co-located known variants (ClinVar/COSMIC IDs, gnomAD/1000G frequencies when present). For KNOWN human variants, variant_get additionally provides deep pre-computed scores (CADD, REVEL, AlphaMissense, ClinVar stars) — prefer it there.

NameTypeReqDescription
limitintegerMax transcript consequences returned (sorted by impact severity)
speciesstringSpecies — 'human' (default), 'mouse', …
variantstringyesHGVS notation (NM_004333:c.1799T>A) or dbSNP rsID (rs113488060)

No output schema declared.

No examples provided.

ensembl_homology ~233

Find orthologues or paralogues of a gene across species (Ensembl Compara) — the cross-species gene mapping source in biomcp. Returns target stable IDs, species, taxonomy level, and percent identity, sorted by identity. Accepts an HGNC symbol or Ensembl gene ID; scope to one species with target_species ('mouse') or target_taxon (10090). Use it for conservation questions ('is this gene conserved?', 'what is the mouse orthologue of BRAF?').

NameTypeReqDescription
genestringyesGene symbol (BRAF) or Ensembl gene ID (ENSG00000157764)
limitintegerMaximum homologies to return (sorted by percent identity)
speciesstringSource species — 'human' (default), 'mouse', …
target_speciesstringRestrict results to one species, e.g. 'mouse'
target_taxonintegerRestrict results to a taxon ID, e.g. 10090 (Mus musculus)
typestringHomology type to fetch

No output schema declared.

No examples provided.

ensembl_lookup ~244

Resolve a gene in Ensembl terms for ANY Ensembl species (356 available): stable ID (ENSG…), symbol↔ID mapping, versioned identifier, canonical transcript, and coordinates on the current assembly (GRCh38 human, GRCm39 mouse, …). With expand=true, returns all transcripts with translation/protein IDs. Accepts an HGNC symbol (BRAF) or Ensembl gene ID (ENSG00000157764, versioned or bare — versions are resolved to the current record). Species accepts scientific names or aliases ('homo_sapiens'/'human', 'mus_musculus'/'mouse'). For rich human gene annotation (summary, pathways, drugs, diseases) use gene_get instead — this tool is the identifier/structure authority.

NameTypeReqDescription
expandbooleanInclude all transcripts with translation/protein IDs
gene_or_idstringyesHGNC symbol (BRAF) or Ensembl gene ID (ENSG00000157764, versioned or bare)
speciesstringSpecies name or alias — 'human' (default), 'mouse', 'mus_musculus', 'rat', …

No output schema declared.

No examples provided.

ensembl_region ~191

Query what lives in a genomic interval on the current assembly (GRCh38 for human): genes/transcripts (stable IDs, symbols, biotypes) and known variants (rsIDs, alleles, consequence terms, clinical significance). Ideal for locus triage — "what genes and known variants sit in this GWAS hit interval?". Keep spans modest (<1 Mb recommended); output is capped at limit with a truncated marker. For sequence text use genbank_get; for entity-level annotation chain IDs into gene_get / variant_get.

NameTypeReqDescription
featuresarrayFeature types to include
limitintegerMaximum features returned
regionstringyesGenomic region chr:start-end (1-based, GRCh38 for human) — e.g. 7:140450000-140480000
speciesstringSpecies — 'human' (default), 'mouse', …

No output schema declared.

No examples provided.

genbank_genes ~105

Map a GenBank/RefSeq nucleotide accession to its NCBI Gene IDs (elink nuccore→gene). The returned gene_ids are entrezgene IDs usable directly with MyGene-backed gene tools (gene_get, gene_search). Useful bridge from a sequence record to gene-level annotation.

NameTypeReqDescription
accessionstringyesGenBank/RefSeq accession, versioned or bare — e.g. NG_017013.2, NC_000023.11

No output schema declared.

No examples provided.

genbank_get ~299

Fetch a GenBank/RefSeq nucleotide record as text (GenBank flat file or FASTA). Whole-record fetches are capped at 2,000,000 bp — larger records require a seq_start/seq_stop region (1-based, inclusive, up to 10 Mb span; set strand=2 for a reverse-strand slice where seq_start > seq_stop — the region field echoes the request as given, while NCBI's text shows complement(min..max)). Output guard: sequence_text is truncated to its first 200,000 characters when oversized — request a narrower region for the full text.

NameTypeReqDescription
accessionstringyesGenBank/RefSeq accession, versioned or bare — NC_000023.11, NG_017013.2, KJ668569.2
formatstringRecord format: genbank flat file (default) or fasta
max_response_bytesintegerHard cap on the raw NCBI response in characters (default 30,000,000) — oversized responses error instead of truncating
seq_startintegerRegion start (1-based, inclusive) — required with seq_stop for records over 2 Mb
seq_stopintegerRegion stop (1-based, inclusive)
strandnumberStrand: 1=plus (default), 2=minus (reverse slice; allows seq_start > seq_stop)

No output schema declared.

No examples provided.

genbank_search ~163

Search NCBI nucleotide records (GenBank/RefSeq/INSDC). Queries may be plain terms, an accession, or NCBI field syntax ("TP53[Gene Name] AND Homo sapiens[Organism]", "BRCA1[Gene Name]"). Results include accession.version, definition, length_bp, organism, and topology — chain accessions into genbank_get or genbank_genes.

NameTypeReqDescription
limitintegerMaximum results
offsetintegerResult offset for pagination
organismstringFilter by organism (e.g. "Homo sapiens")
querystringyesNucleotide query, e.g. "TP53[Gene Name] AND Homo sapiens[Organism]" or an accession

No output schema declared.

No examples provided.

gene_articles ~25

Find articles about a gene

NameTypeReqDescription
symbolstringyesHGNC gene symbol

No output schema declared.

No examples provided.

gene_diseases ~61

Get diseases associated with a gene. Requires DISGENET_API_KEY environment variable for DisGeNET data; falls back to OpenTargets gene-disease associations when unavailable.

NameTypeReqDescription
limitinteger
symbolstringyesHGNC gene symbol

No output schema declared.

No examples provided.

gene_drugs ~37

Find drugs targeting a gene

NameTypeReqDescription
symbolstringyesHGNC gene symbol (e.g., "BRAF", "TP53")

No output schema declared.

No examples provided.

gene_enrich ~31

Perform pathway enrichment analysis for a gene list

NameTypeReqDescription
genesarrayyesList of HGNC gene symbols

No output schema declared.

No examples provided.

gene_get ~131

Get detailed gene information by symbol

NameTypeReqDescription
limitinteger
sectionsarraySections to include
smartbooleanWhen true, automatically resolves gene aliases and common names to the official HGNC symbol before lookup (e.g., "HER2" → "ERBB2"). Zero overhead when input is already a valid HGNC symbol.
symbolstringyesOfficial HGNC gene symbol (e.g., "BRAF", "TP53", "ERBB2"). Common aliases like "HER2" or "NEU" are NOT accepted unless smart=true is enabled.

No output schema declared.

No examples provided.

gene_search ~73

Search for genes by symbol, name, or keyword

NameTypeReqDescription
chromosomestringFilter by chromosome (e.g., "7", "X")
limitintegerMaximum results
offsetintegerResult offset
querystringyesGene symbol, name, or keyword to search for

No output schema declared.

No examples provided.

gene_trials ~26

Find clinical trials for a gene

NameTypeReqDescription
symbolstringyesHGNC gene symbol

No output schema declared.

No examples provided.

geo_get ~217

Get the full SOFT record details for a GEO entry: series (GSE...), sample (GSM...), or platform (GPL...). A series detail includes summary, organisms, platform_ids, a sample preview, supplementary file URLs, and cross-references for chaining: sra → sra_get(SRP.../SRR...), pubmed_ids → article_get, samples → geo_get(GSM...), platform_ids → geo_get(GPL...). download=true additionally saves the first supplementary file (.gz/.csv/.txt, subject to max_bytes) to a local temp path and returns its path, size, and source URL.

NameTypeReqDescription
accessionstringyesGEO accession (GSE series, GSM sample, or GPL platform; GDS curated DataSets return guidance pointing at the underlying GSE/GSM)
downloadbooleanDownload the first supplementary file (.gz) to a local temp path
max_bytesintegerSize cap in bytes for the downloaded supplementary file (default 52428800 = 50 MB)

No output schema declared.

No examples provided.

geo_search ~218

Search NCBI GEO (Gene Expression Omnibus) for functional genomics studies — expression microarrays, RNA-seq, and other high-throughput sequencing series. Queries accept plain terms ("breast cancer RNA-seq", "melanoma single cell") or NCBI field syntax ("GSE183947[Accession]"). Each result carries cross-links for chaining: sra_project → sra_get, bioproject, pubmed_ids → article_get, and accession → geo_get for full details.

NameTypeReqDescription
entry_typestringGEO entry type — gse=study (default), gsm=sample, gpl=platform, gds=curated dataset
limitintegerMaximum results
offsetintegerResult offset for pagination
organismstringFilter by organism (e.g. "Homo sapiens", "Mus musculus")
querystringyesFree-text GEO search terms, e.g. "breast cancer RNA-seq", "melanoma single cell"

No output schema declared.

No examples provided.

gtex_eqtl ~140

Get significant cis-eQTL associations for a gene in a specific GTEx tissue (GTEx Analysis v10): variant_id, p_value, and NES (effect direction/size), sorted by ascending p-value. tissue is a required GTEx tissueSiteDetailId (e.g. Whole_Blood, Brain_Cortex).

NameTypeReqDescription
genestringyesHGNC symbol (TP53) or Ensembl gene ID (ENSG00000141510, versioned or bare)
limitintegerMaximum associations to return
tissuestringyesGTEx tissueSiteDetailId — required, e.g. Whole_Blood

No output schema declared.

No examples provided.

gtex_expression ~159

Get median gene expression across GTEx tissues (GTEx Analysis v10, 54 tissue sites, TPM, sorted highest first). Accepts an HGNC symbol (TP53) or Ensembl gene ID (ENSG00000141510, versioned or bare). Optionally filter to a single tissue via its tissueSiteDetailId (e.g. Brain_Cortex, Whole_Blood).

NameTypeReqDescription
genestringyesHGNC symbol (TP53) or Ensembl gene ID (ENSG00000141510, versioned or bare)
limitintegerMaximum tissues to return (highest expression first)
tissuestringGTEx tissueSiteDetailId filter, e.g. Brain_Cortex, Whole_Blood

No output schema declared.

No examples provided.

patent_get ~125

Get patent details by publication number (e.g. "US11027025B2", "EP3904939B1", "US20260240819A1"). Sections: abstract, claims (US fulltext via USPTO Public Search; EP/WO via EPO OPS), citations (backward + forward), family, classifications.

NameTypeReqDescription
limitintegerMax entries per section array
patent_idstringyesPublication number, e.g. "US11027025B2"
sectionsarraySections to include (default: core only)

No output schema declared.

No examples provided.

patent_search ~472

Search patents worldwide (US, EP, WO, JP, and 100+ authorities). Quote exact multi-word concepts (e.g. "mRNA display") to avoid off-topic matches. Backend characters: ppubs = USPTO Public Search full-text conceptual search (US only, keyless, relevance-ranked; default US backend) | ops = EPO OPS worldwide bibliographic search over titles/abstracts (needs EPO_OPS_CONSUMER_KEY/EPO_OPS_CONSUMER_SECRET) | uspto_odp = US application metadata, bibliographic only but inventor/CPC/continuity-rich (needs USPTO_API_KEY) | google_patents = worldwide best-effort (often unavailable). Auto mode queries worldwide + ppubs concurrently; if ppubs fails hard it falls back to uspto_odp once (tagged with _note). Pass source to force a specific backend. Results are ranked by relevance by default (ppubs sort_by). Foundational prior art is auto-discovered via co-citation mining of the top results and returned in seminal_prior_art (surfaces seminal documents whose own vocabulary predates the query concept).

NameTypeReqDescription
assigneestringFilter by assignee/applicant organization, e.g. "Moderna"
cpcstringFilter by CPC classification symbol (full symbol, e.g. "C12N15/11")
date_rangestringDate range "YYYY-MM-DD/YYYY-MM-DD" (either side may be empty)
inventorstringFilter by inventor name
limitintegerMaximum results
offsetintegerResult offset for pagination
querystringyesFree-text query; quote exact multi-word concepts like "mRNA display" for precise matching
seminalbooleanDiscover foundational prior art via co-citation analysis of the top results (default: true; adds ~5-30s; set false for the fastest bibliographic lookups)
sort_bystringResult ranking: "relevance" (default, conceptual match ranking) or "recency" (newest first). Currently affects the ppubs backend only
sourcestringForce a specific backend
statusstringFilter by grant status

No output schema declared.

No examples provided.

pdb ~284

Access the Protein Data Bank (RCSB PDB) for macromolecular structure data. SEARCH: Provide "query" to find structures (e.g., "kinase inhibitor", "hemoglobin"). GET: Provide "pdb_id" to retrieve entry metadata with optional detail sections. DOWNLOAD: Provide "pdb_id" + download=true to save the structure file and get the file path.

NameTypeReqDescription
downloadbooleanSave the structure file to disk and return the file path. Only used with pdb_id.
formatstringFile format: "cif" (mmCIF, recommended, always available) or "pdb" (legacy format, may not exist for some entries). Only used with download=true.
limitintegerMax search results
offsetintegerSearch result offset
pdb_idstringPDB identifier (e.g., "1CRN", "4HHB"). Required for get/download.
querystringFree-text search query to find PDB entries. Omit pdb_id when searching.
sectionsarrayMetadata sections: polymer_entities (chains and sequences), ligands (small molecules and ions), assembly (biological assembly), experiment (method, resolution), citation (publication). Use "all" for…

No output schema declared.

No examples provided.

sra_get ~164

Get full details for an NCBI SRA accession: SRR run (instrument, spots, bases, size), SRX experiment (library design), SRP study (experiment list), or SRS sample. Chain from geo_get (sra field) or sra_search (experiment_accession / first_run_accession). European (ERP/ERR) and DDBJ (DRP/DRR) accessions are NOT indexed in NCBI SRA — use ENA (https://www.ebi.ac.uk/ena) for those.

NameTypeReqDescription
accessionstringyesNCBI SRA accession: SRP (study), SRX (experiment), SRR (run), or SRS (sample), e.g. SRR14432476

No output schema declared.

No examples provided.

sra_search ~162

Search NCBI's Sequence Read Archive (SRA) for sequencing experiments and runs. The query may be free text, an accession (SRP study, SRX experiment, SRR run, SRS sample), or NCBI field syntax ("RNA-SEQ AND Homo sapiens[Organism]"). Results list experiment/study/sample accessions, organism, library strategy, run count, and first_run_accession for chaining into sra_get.

NameTypeReqDescription
limitintegerMaximum results
offsetintegerResult offset for pagination
querystringyesFree text or accession — SRP study, SRX experiment, SRR run, SRS sample, or terms like "RNA-SEQ AND Homo sapiens[Organism]"

No output schema declared.

No examples provided.

trial_get ~56

Get detailed trial information by NCT ID

NameTypeReqDescription
limitinteger
nct_idstringyesNCT ID (e.g., "NCT01234567")
sectionsarraySections to include

No output schema declared.

No examples provided.

trial_search ~114

Search clinical trials by condition, intervention, or keyword

NameTypeReqDescription
intervention_typestringFilter by intervention type (Drug, Device, etc.)
limitintegerMaximum results
page_tokenstringPage token from previous response for pagination
phasestringFilter by phase (Phase 1, Phase 2, etc.)
querystringyesCondition, intervention, or keyword to search for
statusstringFilter by status (Recruiting, Completed, etc.)

No output schema declared.

No examples provided.

variant_get ~108

Get detailed variant information with optional sections. Core data (id, gene, rsid, significance) is always returned at the top level. Use sections to request additional data.

NameTypeReqDescription
idstringyesVariant ID (rsid, HGVS, or ClinVar ID)
limitinteger
sectionsarraySections to include: core, frequency, predictions, clinical, alphagenome_scores (currently unavailable — returns an error stub pending AlphaGenome gRPC reimplementation)

No output schema declared.

No examples provided.

variant_oncokb ~72

Get OncoKB annotations for a variant in a cancer gene. Requires ONCOKB_TOKEN environment variable.

NameTypeReqDescription
genestringyesGene symbol (e.g., BRAF, EGFR)
protein_changestringyesProtein change (e.g., V600E, L858R)

No output schema declared.

No examples provided.

variant_search ~307

Search for variants. Use structured parameters for best results: - rsid: e.g. query="rs113488022" - HGVS: e.g. query="NM_004333.4:c.1799T>A" - Gene filter: e.g. gene="BRAF" with hgvsp="V600E" or consequence="missense" - ClinVar significance: e.g. significance="pathogenic" Do NOT use compound free-text like "BRAF V600E" — use separate gene and hgvsp parameters instead.

NameTypeReqDescription
consequencestringVariant consequence (e.g., missense, synonymous)
genestringFilter by gene symbol (e.g., "BRAF"). Use together with hgvsp for protein change queries.
hgvscstringcDNA change
hgvspstringProtein change (e.g., V600E). Use with gene parameter for compound queries.
limitintegerMaximum results
max_frequencynumberMaximum allele frequency (0-1)
min_caddnumberMinimum CADD score
offsetintegerResult offset
querystringVariant query (rsid or HGVS notation). Avoid compound queries like "BRAF V600E" — use gene + hgvsp parameters instead.
rsidstringdbSNP rsID
significancestring

No output schema declared.

No examples provided.

variant_trials ~34

Find clinical trials for a variant

NameTypeReqDescription
variantstringyesVariant ID (rsID, HGVS, or variant ID)

No output schema declared.

No examples provided.

Common questions

What is the BioMCP-TS MCP server?

BioMCP-TS is an MCP server listed in the public MCP registry as io.github.yeyuan98/biomcp-ts. Biomedical MCP server: genes, variants, trials, literature, patents, optional SQL/R/biowasm tools. This page covers its npm package (biomcp).

Is the BioMCP-TS MCP server safe to use?

BioMCP-TS scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the BioMCP-TS MCP server expose?

BioMCP-TS exposes 41 tools: gene_search, gene_get, gene_diseases, gene_drugs, gene_trials, and 36 more. Their descriptions and schemas cost roughly 6,077 tokens of context every time the server is loaded.

Is the BioMCP-TS MCP server still maintained?

BioMCP-TS is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the BioMCP-TS MCP server under?

BioMCP-TS declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.