The MCP server: biomcp-ts

biomcp-ts (npm package biomcp, pinned 1.1.1) is an MCP server for biomedical data: 41 core + 15 optional tools over stdio JSON-RPC, spanning articles, trials, genes, variants, drugs, diseases, patents, omics databases, GTEx and Ensembl/PDB — keyless by default, rate-limited in-process.

GitHub ↗ npm ↗

Tool catalog (41 + 15)

Core tools · 41
articlesarticle_search article_get
genesgene_search gene_get gene_diseases gene_drugs gene_trials gene_articles gene_enrich
variantsvariant_search variant_get variant_oncokb variant_trials
drugsdrug_search drug_get drug_trials
diseasesdisease_search disease_get disease_drugs disease_trials
clinical trialstrial_search trial_get
patentspatent_search patent_get
omics databasesgeo_search geo_get sra_search sra_get genbank_search genbank_get genbank_genes
GTExgtex_expression gtex_eqtl
Ensembl/PDBensembl_lookup ensembl_homology ensembl_consequence ensembl_region pdb
utilitydiscover batch_get biomcp_configure
Optional tools · 15 (env-gated, register at server start)
SQL database (mysql2)db_query db_list_tables db_describe_table
R analysis (webR)analysis_r_deseq2 analysis_r_edger analysis_r_limma analysis_r_session_info
Biowasm (SAM/BCF/BED)analysis_bam_summary analysis_bam_view_region analysis_bcf_summary analysis_bcf_view_region analysis_bed_op analysis_biowasm_convert analysis_biowasm_session_info analysis_biowasm_cli

Wiring (opencode)

With the server named biomcp, tools surface as biomcp_article_search, biomcp_gene_get, … Exact version pinning via -p is mandatory (bare npx biomcp cannot resolve peer deps).

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": { "biomcp": { "type": "local",
    "command": ["npx", "-y", "-p", "biomcp@1.1.1", "biomcp"] } }
}

Full wiring matrix (Claude Code, Codex, Cursor, …)

True captures

Real request/response pairs captured by a deterministic stdio probe — not hand-written examples.

variant_search

Structured variant query: gene + protein change (never compound free text like "BRAF V600E").

Request

{
  "gene": "BRAF",
  "hgvsp": "V600E",
  "limit": 3
}

Response (excerpt, as captured)

[{"id":"rs113488022","gene":"BRAF","hgvs_p":"V600E","hgvs_c":"c.1799T>A","significance":"Pathogenic","gnomad_af":0.00000397994}]

article_search

Federated PubMed search (Europe PMC / Semantic Scholar / PubTator / LitSense); returns PMIDs + titles.

Request

{
  "query": "BRCA1 DNA repair",
  "limit": 3
}

Response (excerpt, as captured)

[{"doi": "10.1042/BJ20141077", "title": "Protein stability versus function: effects of destabilizing missense mutations on BRCA1 DNA repair activity.", "authors": ["David C. A. Gaboriau", "P. Rowling", "C. Morrison", "L. Itzhaki"], "journal": "Biochemical Journa…

gene_get

Gene detail by HGNC symbol with section filtering (16 section values incl. all).

Request

{
  "symbol": "BRCA1",
  "sections": [
    "core"
  ]
}

Response (excerpt, as captured)

{"symbol": "BRCA1", "name": "BRCA1 DNA repair associated", "summary": "This gene encodes a 190 kD nuclear phosphoprotein that plays a role in maintaining genomic stability…

Full tours: MCP tool tour — true request/response pairs from 8 core tools · MCP tool tour — the BRAF V600E variant-to-trials chain (zh notes) — complete server documentation: MCP doc