BioMCP-TS
NPM · BIOMCP · SCANNED SEP 20
Biomedical MCP server: genes, variants, trials, literature, patents, optional SQL/R/biowasm tools.
Available components
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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
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
claude mcp add yeyuan98-biomcp-ts -- npx -y biomcp
{
"mcpServers": {
"yeyuan98-biomcp-ts": {
"command": "npx",
"args": [
"-y",
"biomcp"
]
}
}
} {
"servers": {
"yeyuan98-biomcp-ts": {
"command": "npx",
"args": [
"-y",
"biomcp"
]
}
}
} codex mcp add yeyuan98-biomcp-ts -- npx -y biomcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"yeyuan98-biomcp-ts": {
"type": "local",
"command": [
"npx",
"-y",
"biomcp"
],
"enabled": true
}
}
} openclaw mcp add yeyuan98-biomcp-ts --command npx --arg -y --arg biomcp
mcp_servers:
yeyuan98-biomcp-ts:
command: "npx"
args: ["-y", "biomcp"] {
"McpServers": {
"yeyuan98-biomcp-ts": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"biomcp"
]
}
}
} assistant mcp add yeyuan98-biomcp-ts -t stdio -c npx -a -y biomcp
{
"mcpServers": {
"yeyuan98-biomcp-ts": {
"command": "npx",
"args": [
"-y",
"biomcp"
]
}
}
} 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.
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 →
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 →
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.
| Name | Type | Req | Description |
|---|---|---|---|
| citation_direction | string | – | Citation direction: "forward" (articles citing this one), "backward" (references), "both" (default) |
| citation_mode | string | – | Fast: 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… |
| id | string | yes | Article identifier: PMID (numeric, e.g. "12345"), PMCID (e.g. "PMC1234567"), or DOI (e.g. "10.1038/s41586-021-03819-2") |
| limit | integer | – | Maximum items per section (e.g., 20 citations) |
| sections | array | – | Sections 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
| Name | Type | Req | Description |
|---|---|---|---|
| dateRange | string | – | Date range as YYYY-MM-DD/YYYY-MM-DD. Open-ended: "2020-01-01/" or "/2023-12-31". Only pubmed, europepmc, semantic_scholar support this. |
| limit | integer | – | Maximum results to return. Applied to final deduplicated results, not per-source. Each source may fetch more internally before deduplication. |
| offset | integer | – | Result offset. EuropePMC windows are capped at 1000 rows; use narrower queries or another source for deeper results |
| query | string | yes | Search 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") |
| source | string | – | Specific source to search |
No output schema declared.
No examples provided.
batch_get ~25
Get multiple entities in parallel
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | array | yes | List 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"…
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | status = inspect (default, works with no other arguments); set = create/modify file parameters; reset = remove. |
| confirm_sensitive | boolean | – | Required true when set/reset touches sensitive keys (connection targets, mirrors, credentials). |
| dry_run | boolean | – | Validate and diff without writing (set/reset). |
| filter | string | – | For status: "file" | "env" | feature id | dotted-id prefix — returns detailed rows (effects, how-to-set). |
| target | – | – | For reset: a feature id ("database" | "analysis_r" | "analysis_biowasm") removes the whole section, or a list of dotted file-param ids removes those keys. |
| values | object | – | For 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
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Free-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
| Name | Type | Req | Description |
|---|---|---|---|
| disease_id | string | yes | Disease ID |
| limit | integer | – | – |
No output schema declared.
No examples provided.
disease_get ~59
Get detailed disease information by ID
| Name | Type | Req | Description |
|---|---|---|---|
| disease_id | string | yes | Disease ID (e.g., "DOID:0060268", "C0018794") |
| limit | integer | – | – |
| sections | array | – | Sections to include |
No output schema declared.
No examples provided.
disease_search ~54
Search for diseases by name, phenotype, or keyword
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum results |
| offset | integer | – | Result offset |
| query | string | yes | Disease name, phenotype, or keyword to search for |
No output schema declared.
No examples provided.
disease_trials ~32
Get clinical trials for a disease
| Name | Type | Req | Description |
|---|---|---|---|
| disease_id | string | yes | Disease ID |
| limit | integer | – | – |
No output schema declared.
No examples provided.
drug_get ~73
Get detailed drug information by name
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| name | string | yes | Drug name (e.g., "imatinib", "aspirin") |
| sections | array | – | Sections 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
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum results |
| offset | integer | – | Result offset |
| query | string | yes | Drug name, mechanism, or keyword to search |
No output schema declared.
No examples provided.
drug_trials ~24
Find clinical trials for a drug
| Name | Type | Req | Description |
|---|---|---|---|
| drug | string | yes | Drug 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max transcript consequences returned (sorted by impact severity) |
| species | string | – | Species — 'human' (default), 'mouse', … |
| variant | string | yes | HGVS 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?').
| Name | Type | Req | Description |
|---|---|---|---|
| gene | string | yes | Gene symbol (BRAF) or Ensembl gene ID (ENSG00000157764) |
| limit | integer | – | Maximum homologies to return (sorted by percent identity) |
| species | string | – | Source species — 'human' (default), 'mouse', … |
| target_species | string | – | Restrict results to one species, e.g. 'mouse' |
| target_taxon | integer | – | Restrict results to a taxon ID, e.g. 10090 (Mus musculus) |
| type | string | – | Homology 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.
| Name | Type | Req | Description |
|---|---|---|---|
| expand | boolean | – | Include all transcripts with translation/protein IDs |
| gene_or_id | string | yes | HGNC symbol (BRAF) or Ensembl gene ID (ENSG00000157764, versioned or bare) |
| species | string | – | Species 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.
| Name | Type | Req | Description |
|---|---|---|---|
| features | array | – | Feature types to include |
| limit | integer | – | Maximum features returned |
| region | string | yes | Genomic region chr:start-end (1-based, GRCh38 for human) — e.g. 7:140450000-140480000 |
| species | string | – | Species — '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.
| Name | Type | Req | Description |
|---|---|---|---|
| accession | string | yes | GenBank/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.
| Name | Type | Req | Description |
|---|---|---|---|
| accession | string | yes | GenBank/RefSeq accession, versioned or bare — NC_000023.11, NG_017013.2, KJ668569.2 |
| format | string | – | Record format: genbank flat file (default) or fasta |
| max_response_bytes | integer | – | Hard cap on the raw NCBI response in characters (default 30,000,000) — oversized responses error instead of truncating |
| seq_start | integer | – | Region start (1-based, inclusive) — required with seq_stop for records over 2 Mb |
| seq_stop | integer | – | Region stop (1-based, inclusive) |
| strand | number | – | Strand: 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum results |
| offset | integer | – | Result offset for pagination |
| organism | string | – | Filter by organism (e.g. "Homo sapiens") |
| query | string | yes | Nucleotide 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
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | HGNC 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| symbol | string | yes | HGNC gene symbol |
No output schema declared.
No examples provided.
gene_drugs ~37
Find drugs targeting a gene
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | HGNC gene symbol (e.g., "BRAF", "TP53") |
No output schema declared.
No examples provided.
gene_enrich ~31
Perform pathway enrichment analysis for a gene list
| Name | Type | Req | Description |
|---|---|---|---|
| genes | array | yes | List of HGNC gene symbols |
No output schema declared.
No examples provided.
gene_get ~131
Get detailed gene information by symbol
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| sections | array | – | Sections to include |
| smart | boolean | – | When 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. |
| symbol | string | yes | Official 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
| Name | Type | Req | Description |
|---|---|---|---|
| chromosome | string | – | Filter by chromosome (e.g., "7", "X") |
| limit | integer | – | Maximum results |
| offset | integer | – | Result offset |
| query | string | yes | Gene symbol, name, or keyword to search for |
No output schema declared.
No examples provided.
gene_trials ~26
Find clinical trials for a gene
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | HGNC 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.
| Name | Type | Req | Description |
|---|---|---|---|
| accession | string | yes | GEO accession (GSE series, GSM sample, or GPL platform; GDS curated DataSets return guidance pointing at the underlying GSE/GSM) |
| download | boolean | – | Download the first supplementary file (.gz) to a local temp path |
| max_bytes | integer | – | Size 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.
| Name | Type | Req | Description |
|---|---|---|---|
| entry_type | string | – | GEO entry type — gse=study (default), gsm=sample, gpl=platform, gds=curated dataset |
| limit | integer | – | Maximum results |
| offset | integer | – | Result offset for pagination |
| organism | string | – | Filter by organism (e.g. "Homo sapiens", "Mus musculus") |
| query | string | yes | Free-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).
| Name | Type | Req | Description |
|---|---|---|---|
| gene | string | yes | HGNC symbol (TP53) or Ensembl gene ID (ENSG00000141510, versioned or bare) |
| limit | integer | – | Maximum associations to return |
| tissue | string | yes | GTEx 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).
| Name | Type | Req | Description |
|---|---|---|---|
| gene | string | yes | HGNC symbol (TP53) or Ensembl gene ID (ENSG00000141510, versioned or bare) |
| limit | integer | – | Maximum tissues to return (highest expression first) |
| tissue | string | – | GTEx 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max entries per section array |
| patent_id | string | yes | Publication number, e.g. "US11027025B2" |
| sections | array | – | Sections 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).
| Name | Type | Req | Description |
|---|---|---|---|
| assignee | string | – | Filter by assignee/applicant organization, e.g. "Moderna" |
| cpc | string | – | Filter by CPC classification symbol (full symbol, e.g. "C12N15/11") |
| date_range | string | – | Date range "YYYY-MM-DD/YYYY-MM-DD" (either side may be empty) |
| inventor | string | – | Filter by inventor name |
| limit | integer | – | Maximum results |
| offset | integer | – | Result offset for pagination |
| query | string | yes | Free-text query; quote exact multi-word concepts like "mRNA display" for precise matching |
| seminal | boolean | – | Discover foundational prior art via co-citation analysis of the top results (default: true; adds ~5-30s; set false for the fastest bibliographic lookups) |
| sort_by | string | – | Result ranking: "relevance" (default, conceptual match ranking) or "recency" (newest first). Currently affects the ppubs backend only |
| source | string | – | Force a specific backend |
| status | string | – | Filter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| download | boolean | – | Save the structure file to disk and return the file path. Only used with pdb_id. |
| format | string | – | File format: "cif" (mmCIF, recommended, always available) or "pdb" (legacy format, may not exist for some entries). Only used with download=true. |
| limit | integer | – | Max search results |
| offset | integer | – | Search result offset |
| pdb_id | string | – | PDB identifier (e.g., "1CRN", "4HHB"). Required for get/download. |
| query | string | – | Free-text search query to find PDB entries. Omit pdb_id when searching. |
| sections | array | – | Metadata 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.
| Name | Type | Req | Description |
|---|---|---|---|
| accession | string | yes | NCBI 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum results |
| offset | integer | – | Result offset for pagination |
| query | string | yes | Free 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
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| nct_id | string | yes | NCT ID (e.g., "NCT01234567") |
| sections | array | – | Sections to include |
No output schema declared.
No examples provided.
trial_search ~114
Search clinical trials by condition, intervention, or keyword
| Name | Type | Req | Description |
|---|---|---|---|
| intervention_type | string | – | Filter by intervention type (Drug, Device, etc.) |
| limit | integer | – | Maximum results |
| page_token | string | – | Page token from previous response for pagination |
| phase | string | – | Filter by phase (Phase 1, Phase 2, etc.) |
| query | string | yes | Condition, intervention, or keyword to search for |
| status | string | – | Filter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Variant ID (rsid, HGVS, or ClinVar ID) |
| limit | integer | – | – |
| sections | array | – | Sections 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.
| Name | Type | Req | Description |
|---|---|---|---|
| gene | string | yes | Gene symbol (e.g., BRAF, EGFR) |
| protein_change | string | yes | Protein 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.
| Name | Type | Req | Description |
|---|---|---|---|
| consequence | string | – | Variant consequence (e.g., missense, synonymous) |
| gene | string | – | Filter by gene symbol (e.g., "BRAF"). Use together with hgvsp for protein change queries. |
| hgvsc | string | – | cDNA change |
| hgvsp | string | – | Protein change (e.g., V600E). Use with gene parameter for compound queries. |
| limit | integer | – | Maximum results |
| max_frequency | number | – | Maximum allele frequency (0-1) |
| min_cadd | number | – | Minimum CADD score |
| offset | integer | – | Result offset |
| query | string | – | Variant query (rsid or HGVS notation). Avoid compound queries like "BRAF V600E" — use gene + hgvsp parameters instead. |
| rsid | string | – | dbSNP rsID |
| significance | string | – | – |
No output schema declared.
No examples provided.
variant_trials ~34
Find clinical trials for a variant
| Name | Type | Req | Description |
|---|---|---|---|
| variant | string | yes | Variant ID (rsID, HGVS, or variant ID) |
No output schema declared.
No examples provided.
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.