PluginBench
MCP Server
Active
Apache-2.0

BioMCP-TS MCP Server

io.github.yeyuan98/biomcp-ts

Federated access to 50+ biomedical databases: genes, variants, drugs, diseases, trials, literature, patents, and structural biology—with optional R and biowasm analysis.

What is the BioMCP-TS MCP server?

BioMCP-TS is a biomedical MCP server providing agentic access to 50+ bioinformatics, pharmaceutical, and patent databases through a unified interface. It exposes tools for gene, variant, drug, disease, trial, and literature queries, plus optional local analysis via Bioconductor (R/DESeq2/edgeR/limma) and biowasm (samtools/bedtools/bcftools). Setup is zero-config via npm; optional features require environment variables or peer dependencies.

BioMCP democratizes access to biomedical research infrastructure for AI agents. Query genes, variants, drugs, diseases, and clinical trials across 50+ federated databases; search literature (PubMed, arXiv, bioRxiv); retrieve patents; analyze genomic data locally with R or command-line tools—all without installing R, C toolchains, or containers. Designed for biomedical researchers, drug discovery teams, and clinical informaticists who need programmatic access to integrated biomedical knowledge.

How to install BioMCP-TS

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • ANALYSIS_BIOWASM

    Set to 1 to enable the samtools/bedtools/bcftools biowasm analysis tools

  • ANALYSIS_R

    Set to 1 to enable the R/Bioconductor analysis tools (requires the webr peer dependency; use the pinned one-shot client command)

  • DB_TYPE

    Set to mysql or sqlite to enable the read-only SQL database tools

  • NCBI_API_KEY
    secret

    Higher NCBI E-utilities rate limits (3 -> 10 req/s)

  • S2_API_KEY
    secret

    Higher Semantic Scholar rate limits

  • OPENFDA_API_KEY
    secret

    Higher OpenFDA rate limits

  • ONCOKB_TOKEN
    secret

    Required by the variant_oncokb tool (OncoKB annotations)

  • DISGENET_API_KEY
    secret

    Required for DisGeNET disease-gene associations

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "biomcp-ts": {
      "command": "npx",
      "args": [
        "-y",
        "biomcp"
      ],
      "env": {
        "ANALYSIS_BIOWASM": "<YOUR_ANALYSIS_BIOWASM>",
        "ANALYSIS_R": "<YOUR_ANALYSIS_R>",
        "DB_TYPE": "<YOUR_DB_TYPE>",
        "NCBI_API_KEY": "<YOUR_NCBI_API_KEY>",
        "S2_API_KEY": "<YOUR_S2_API_KEY>",
        "OPENFDA_API_KEY": "<YOUR_OPENFDA_API_KEY>",
        "ONCOKB_TOKEN": "<YOUR_ONCOKB_TOKEN>",
        "DISGENET_API_KEY": "<YOUR_DISGENET_API_KEY>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • gene_search — Search genes by symbol, name, or keyword with chromosome filter
  • gene_get — Get detailed gene info by HGNC symbol with optional sections (pathways, protein, ontology, GO, interactions, expression, constraint, druggability, clinical evidence, disease associations)
  • gene_diseases — Get diseases associated with a gene (DisGeNET / OpenTargets)
  • gene_drugs — Find drugs targeting a gene (OpenTargets)
  • gene_trials — Find clinical trials for a gene
  • gene_articles — Find articles about a gene
  • gene_enrich — Pathway enrichment analysis for a gene list (Reactome)
  • variant_search — Search variants by rsid, HGVS, gene, ClinVar significance, frequency, CADD
  • variant_get — Get detailed variant info with optional sections (frequency, predictions, clinical)
  • variant_oncokb — Get OncoKB cancer variant annotations (requires ONCOKB_TOKEN)
  • variant_trials — Find clinical trials for a variant
  • drug_search — Search drugs by name, mechanism, or keyword
  • drug_get — Get detailed drug info with optional sections (regulatory, safety, targets, indications, adverse events)
  • drug_trials — Find clinical trials for a drug
  • disease_search — Search diseases by name, phenotype, or keyword
  • disease_get — Get detailed disease info by ID (DOID, MONDO, OMIM) with optional sections (gene associations, phenotypes, pathways)
  • disease_drugs — Get drugs for a disease (OpenTargets)
  • disease_trials — Get clinical trials for a disease (ClinicalTrials.gov)
  • article_search — Federated literature search across PubMed, EuropePMC, Semantic Scholar, arXiv, PubTator, and LitSense with optional date range filtering
  • article_get — Get detailed article info by identifier (PMID, PMCID, DOI) with optional sections (open access info, annotations, citation graph)

Use cases

  • Query gene-disease associations, drug targets, and clinical trials to accelerate drug discovery and target validation
  • Search biomedical literature (PubMed, arXiv, bioRxiv) and patents to identify prior art and research context
  • Analyze RNA-seq or genomic data locally using Bioconductor (DESeq2, edgeR, limma) without installing R or containers
  • Retrieve and filter genomic data (BAM, VCF, BED) using samtools, bcftools, and bedtools in WebAssembly for fast region queries
  • Integrate biomedical databases into AI-driven research workflows for hypothesis generation and evidence synthesis

BioMCP-TS MCP server FAQ

What is BioMCP-TS?

BioMCP-TS is a biomedical MCP server that gives AI agents access to 50+ integrated bioinformatics, pharmaceutical, and patent databases. It includes tools for querying genes, variants, drugs, diseases, clinical trials, literature, and structural biology, plus optional local analysis via R (Bioconductor) and biowasm (samtools/bedtools/bcftools).

Is BioMCP-TS free?

Yes. BioMCP-TS is open-source (npm: biomcp). Most databases are free to query; some optional features (e.g., OncoKB variant annotations) require API keys.

How do I install BioMCP-TS in Claude Desktop or Cursor?

Install via npm (Node ≥ 22.13): `npx -y biomcp doctor` to diagnose your setup, then follow the guided config in docs/AGENT-INSTALL.md. Copy-paste config entries for Claude Desktop, Claude Code, Codex, or OpenCode into your MCP settings. For multi-agent setups, run a shared `biomcp serve` daemon (see docs/SELF-HOSTING.md).

Do I need to install R or C toolchains?

No. Optional R analysis (DESeq2, edgeR, limma) runs in sandboxed WebAssembly R (~1 GB RSS, ~62 MB download at first use). Biowasm analysis (samtools/bedtools/bcftools) is also WebAssembly-based (~4.5 MB, no extra npm packages).

What API keys or authentication do I need?

Most tools are keyless. Optional features require: OncoKB_TOKEN for cancer variant annotations, and DB_TYPE + connection env vars for optional SQL database access (MySQL or SQLite). Use `biomcp_configure` to manage all settings.

Can I query my own databases?

Yes. Set DB_TYPE (MySQL or SQLite) and connection env vars to enable read-only SQL tools: db_query, db_list_tables, db_describe_table. See docs/DATABASE.md.

README (reference)

Source of truth, from the repository.

BioMCP

npm version downloads/mo downloads YTD commits/30d software DOI

BioMCP-TS architecture

Highlights

Democratizing agentic access to bioinformatics and biopharmaceutical databases and analyses.

  • Section-based federated access to 50+ bioinformatics, pharmaceutical, and patent databases
  • Optional toolboxes for local database curation and dependency-free analysis with Bioconductor and SAM/BED/BCFtools — no R installation, C toolchain, or containers
  • Concrete example vignettes, developed fully in the open

Install

npx -y biomcp doctor   # diagnose a machine: Node gate, config health, feature gates, peer deps
npx biomcp             # zero-config stdio MCP server (this is what MCP clients run); Node >= 22.13

Setup is guided in docs/AGENT-INSTALL.md — a one-minute start, copy-paste config entries for Claude Desktop, Claude Code, Codex, and OpenCode (one canonical pinned command covering every feature), biomcp doctor as the single troubleshooting entry point, and agent-friendly paths for API keys and optional features.

Multiple agents on one machine: biomcp enforces arXiv's Terms-of-Use rate limit (1 request / 3 s) per process. When running multiple biomcp MCP instances on one machine (e.g., one stdio instance per agent), rate limits are not coordinated across processes, and arXiv's TOU applies to all your machines in aggregate. For multi-agent single-machine deployments, run a single shared biomcp serve daemon (see docs/SELF-HOSTING.md) so all agents share one process and one global rate limiter.

Available Tools

Full tool schemas (params, enums, defaults) live in src/server/README.md.

Gene (7)

ToolDescription
gene_searchSearch genes by symbol, name, or keyword with chromosome filter
gene_getGet detailed gene info by HGNC symbol with optional sections (core, pathways, protein, ontology, go, interactions, expression, protein_atlas, constraint, druggability, dosage_sensitivity, clinical_evidence, disease_associations, diseases, funding). Set smart=true to auto-resolve gene aliases (e.g., "HER2" → "ERBB2")
gene_diseasesGet diseases associated with a gene (DisGeNET / OpenTargets)
gene_drugsFind drugs targeting a gene (OpenTargets)
gene_trialsFind clinical trials for a gene
gene_articlesFind articles about a gene
gene_enrichPathway enrichment analysis for a gene list (Reactome)

Variant (4)

ToolDescription
variant_searchSearch variants by rsid, HGVS, gene, ClinVar significance, frequency, CADD
variant_getGet detailed variant info with optional sections (frequency, predictions, clinical; alphagenome_scores currently returns an unavailability error pending reimplementation)
variant_oncokbGet OncoKB cancer variant annotations (requires ONCOKB_TOKEN)
variant_trialsFind clinical trials for a variant

Drug (3)

ToolDescription
drug_searchSearch drugs by name, mechanism, or keyword
drug_getGet detailed drug info with optional sections (us_regulatory, eu_regulatory, who_regulatory, safety, targets, indications, adverse_events — FDA FAERS reactions ranked by report count)
drug_trialsFind clinical trials for a drug

Disease (4)

ToolDescription
disease_searchSearch diseases by name, phenotype, or keyword
disease_getGet detailed disease info by ID (DOID, MONDO, OMIM, etc.) with optional sections (gene_associations, phenotypes, pathways)
disease_drugsGet drugs for a disease (OpenTargets)
disease_trialsGet clinical trials for a disease (ClinicalTrials.gov)

Article (2)

ToolDescription
article_searchFederated literature search across PubMed, EuropePMC, Semantic Scholar, arXiv, PubTator, and LitSense with optional date range filtering; source: "preprint_only" switches to bioRxiv+medRxiv preprints only (abstracts, citation counts, date filtering)
article_getGet detailed article info by identifier (PMID, PMCID, DOI, or bioRxiv/medRxiv preprint DOI) with optional sections: oa (open access / license info), annotations, graph (citation graph), citation (fast/full citation data; Europe PMC citations for preprints). Preprint records include all versions, license, category, funders, JATS full-text URL, and published-version mapping

Trial (2)

ToolDescription
trial_searchSearch clinical trials by condition, intervention, status, or phase. Cursor-based pagination via page_token
trial_getGet detailed trial info by NCT ID with optional sections (eligibility, locations, outcomes)

Utility (2)

ToolDescription
discoverFree-text concept resolution across all entity types
batch_getRetrieve multiple entities in parallel

Structural Biology (1)

ToolDescription
pdbSearch PDB structures, get entry metadata with optional sections (polymer entities, ligands, assembly, experiment, citation), and download structure files (mmCIF/PDB)

Patents (2)

ToolDescription
patent_searchSearch patents worldwide (US, EP, WO, JP, 100+ authorities) with assignee/inventor/CPC/status/date filters and relevance ranking (sort_by). Quote exact multi-word concepts (e.g. "mRNA display"). Foundational prior art is auto-discovered via co-citation mining (seminal_prior_art; disable with seminal: false). Default backends: USPTO Public Search full-text (US, keyless, relevance-ranked) + EPO OPS (worldwide, keyed); uspto_odp (US bibliographic metadata) and google_patents (best-effort) available via source
patent_getGet patent details by publication number with sections: abstract, claims (US fulltext via USPTO Public Search; EP/WO via EPO OPS), citations (forward + backward), family, classifications

GEO (2)

ToolDescription
geo_searchSearch NCBI GEO for functional genomics studies (expression microarrays, RNA-seq, single-cell series) by entry type (GSE/GSM/GPL/GDS) and organism; results carry cross-links (sra_project, bioproject, pubmed_ids) for chaining
geo_getGet the full SOFT record for a GEO series/sample/platform: summary, organisms, sample preview (≤20), supplementary file URLs, and cross-references; optionally download the first supplementary file

SRA (2)

ToolDescription
sra_searchSearch NCBI's Sequence Read Archive for sequencing experiments and runs by free text, accession, or field syntax; returns experiment/study/sample accessions with library strategy and run counts
sra_getGet full details for an SRA accession: SRR run (instrument, spots, bases, size), SRX experiment (library design), SRP study (experiment list), or SRS sample; ENA/DDBJ accessions rejected with an ENA pointer

GenBank (3)

ToolDescription
genbank_searchSearch NCBI nucleotide records (GenBank/RefSeq/INSDC) by plain terms, accession, or field syntax; results include accession.version, definition, length, organism, topology
genbank_getFetch a GenBank/RefSeq record as GenBank flat file or FASTA; whole records capped at 2 Mb — larger records require a seq_start/seq_stop region (up to 10 Mb, reverse-strand via strand=2)
genbank_genesMap a GenBank/RefSeq accession to its NCBI Gene IDs (elink nuccore→gene) for bridging into gene tools

GTEx (2)

ToolDescription
gtex_expressionGet median gene expression across GTEx tissues (Analysis v10, 54 tissue sites, TPM, highest first); accepts HGNC symbol or Ensembl gene ID, with optional single-tissue filter
gtex_eqtlGet significant cis-eQTL associations for a gene in a specific GTEx tissue (v10): variant_id, p_value, NES, slope, sorted by ascending p-value

Ensembl (4)

ToolDescription
ensembl_lookupResolve a gene in Ensembl terms for any of ~356 species: stable ID (+version), symbol, coordinates on the current assembly, canonical transcript; expand=true adds transcripts with translation/protein IDs
ensembl_homologyFind orthologues/paralogues across species via Ensembl Compara — target stable IDs, taxonomy level, percent identity, sorted by identity; filter with target_species/target_taxon
ensembl_consequenceCompute variant consequences on demand via Ensembl VEP for NOVEL variants and non-human species: most severe consequence, per-transcript effects (SIFT/PolyPhen), co-located ClinVar/COSMIC/gnomAD data. Known human variants get deeper pre-computed scores via variant_get; prefer HGVS input over rsIDs for precision
ensembl_regionQuery genes/transcripts/known variants in a genomic interval (chr:start-end) on the current assembly — locus triage

R Analysis (4, optional — ANALYSIS_R=1)

ToolDescription
analysis_r_deseq2Differential expression for RNA-seq counts with Bioconductor DESeq2 (negative binomial, independent filtering, optional LFC shrinkage) in sandboxed WebAssembly R. Inputs: integer count matrix + sample metadata + design formula; output: markdown table of top genes by adjusted p-value with summary (format="json", include_full=true for full base64(gzip(TSV)) table)
analysis_r_edgerDifferential expression with edgeR — TMM normalization, empirical-Bayes dispersion, quasi-likelihood F-test (test="qlm") or 2-group exact test; same input/output contract
analysis_r_limmaDifferential expression with limma-voom — precision-weighted linear models with empirical-Bayes moderation; same input/output contract
analysis_r_session_infoR runtime report: R/webR versions, installed package versions, memory, mirror endpoint — for diagnosing analysis issues

First use starts a ~1 GB WebAssembly R worker and downloads the wasm package bundle (~62 MB) from GitHub releases (cached). Requires webr installed next to biomcp. Guide: docs/R-ANALYSIS.md.

Biowasm Analysis (8, optional — ANALYSIS_BIOWASM=1)

ToolDescription
analysis_bam_summaryInspect an alignment (SAM/BAM/CRAM): header contigs, sample/read groups, flagstat mapping metrics, per-contig counts via idxstats when indexed — "what's in this BAM?" before region work
analysis_bam_view_regionReads, depth, pileup, or read extraction in a genomic region (samtools view/depth/mpileup); indexed sources use fast positional retrieval, indexless sources stream a BED filter (depth requires coordinate-sorted input and detects order violations), returning counts, coverage tables, SAM rows, or a BAM artifact
analysis_bcf_summaryInspect a VCF/BCF: contigs, sample count and names, INFO/FORMAT field inventory from the header
analysis_bcf_view_regionVariants in a region as a narrow field projection (bcftools query): chosen columns, sample subsets, expression filters, variant types — or a sliced VCF.gz artifact
analysis_bed_opInterval algebra on BED tracks (bedtools intersect/merge/subtract/coverage/jaccard/sort) with the streaming -sorted algorithm for sorted inputs
analysis_biowasm_convertFormat plumbing: SAM/BAM/CRAM via samtools view, VCF/BCF via bcftools view, VCF/BCF → TSV via bcftools query; results are artifact handles reusable as artifact_id
analysis_biowasm_session_infoBiowasm runtime report: pinned tool versions, asset cache state, engine status, retained artifacts, memory
analysis_biowasm_cliConstrained escape hatch: an allowlisted samtools/bedtools/bcftools subcommand with schema-validated args (no shell, paths under /shared only)

First use downloads checksum-verified wasm assets (~4.5 MB, cached); no extra npm packages. Indexed sources answer region queries with fast positional retrieval (~0.2 % of file read); indexless sources fall back to streaming BED filters. Guide: docs/BIOWASM-ANALYSIS.md.

Citation Module

Citations federate 5 providers in fast (~4s) or full (~15-30s) mode. Forward citation lists come from Europe PMC, OpenCitations, and Semantic Scholar; Crossref supplies counts and backward references. Provider matrix and schema details: src/server/README.md.

Optional Features

Capabilities that ship with the package but stay inactive until enabled. Each links to its own guide:

FeatureEnableGuide
Database access — read-only SQL tools (db_query, db_list_tables, db_describe_table) for MySQL and local-file SQLiteSet DB_TYPE (+ connection env vars); MySQL needs the mysql2 peer dep — use the pinned one-shot client command (see docs/DATABASE.md)docs/DATABASE.md
R analysis — Bioconductor differential expression (analysis_r_deseq2, analysis_r_edger, analysis_r_limma, analysis_r_session_info) running DESeq2/edgeR/limma in sandboxed WebAssembly R; wasm packages download from GitHub releases at first use (~62 MB, cached; slow links: asset_timeout_ms or a self-fetched mirror_url)Set ANALYSIS_R=1; needs the webr peer dep — use the pinned one-shot client command ["npx","-y","-p","biomcp@1.5","-p","webr@0.6","biomcp"] (all-features variant adds -p mysql2@3); expect ~1 GB RSSdocs/R-ANALYSIS.md
Biowasm analysis — samtools/bedtools/bcftools (BAM/BED/VCF) in sandboxed WebAssembly; streams/indexes real human-scale datasets (~300 MB BAM scans, region queries touch ~0.2 % of the file); assets ~4.5 MB cached at first use; no extra npm packagesSet ANALYSIS_BIOWASM=1docs/BIOWASM-ANALYSIS.md

Instead of hand-editing env blocks, agents (and users) can self-serve through the always-available biomcp_configure tool: it reports every parameter's status/provenance, writes the .biomcp.json project config file for the optional features above (env vars keep precedence; env-only parameters are query-only and value-masked), validates changes, detects conflicts, checks peer-dependency prerequisites, and spells out the restart/verify steps. Details: docs/ENV-VARS.md → Project config file.

Documentation

DocContents
docs/AGENT-INSTALL.mdGuided installation & client configuration (Claude Desktop, Claude Code, Codex, OpenCode)
docs/ENV-VARS.mdSingle source of truth for every environment variable
docs/DATABASE.mdDatabase access feature guide
docs/R-ANALYSIS.mdR analysis feature guide (Bioconductor in WebAssembly)
docs/BIOWASM-ANALYSIS.mdBiowasm analysis feature guide (samtools/bedtools/bcftools in WebAssembly)
docs/DEVELOPMENT.mdBuild, test, publish workflow
docs/development/CI.mdCI pipeline, Dependabot automation, auto-merge safety model
src/server/README.mdFull tool schemas (params, enums, defaults)
agent-test/README.mdUser-agent E2E tests for the analysis tools

License

Licensed under the Apache License, Version 2.0. See NOTICE for attributions.

BioMCP-TS is adapted from the upstream BioMCP Rust project (MIT) with an agent-first development approach and enhancements — kudos to the original authors.

Related MCP servers

COCodex Bridge logo

Connect ChatGPT, Qwen, and local agents to manage tasks, approvals, and projects in a self-hosted desktop app.

69
Swift
Apache-2.0
View repository →

OpenRouter for browser agents. One MCP to route browser tasks across 250+ runners.

RARAWThink logo

RAWThink

Active

Persistent memory for AI thinking partnerships: hybrid search and a temporal knowledge graph.

0
Python
MIT
View repository →

Discover Servd venues, browse menus, validate carts, place confirmed orders, and track status.

View repository →

Compare Japan's household fixed costs: electricity, city gas, fiber and mobile plans, with bundles.

Reviewed public-data search and execution with provenance and verifiable integrity receipts.

0
Python
MIT
View repository →