BioMCP-TS

io.github.yeyuan98由 GitHub 帳號 yeyuan98 發布v1.4.3更新於 Oct 24, 2026

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

概覽

AI 產生的概覽

生物醫學 MCP 伺服器,讓助理檢索基因、變異、藥物、疾病、臨床試驗、文獻、專利與體學資料,並可選用 SQL 與分析工具。

可以做什麼
  • 檢索並解析基因、變異、藥物與疾病,支援路徑富集、OncoKB 註解與跨實體概念查找
  • 依適應症、介入、狀態或期別查找臨床試驗,並取得納入條件、地點與終點
  • 跨 PubMed、EuropePMC、Semantic Scholar、arXiv、PubTator 與 LitSense 檢索文獻,取得全文、引用圖譜與期刊指標
  • 檢索全球專利並取得申請專利範圍、引用與同族資訊
  • 查詢 GEO、SRA、GenBank、GTEx 表現量與 eQTL、Ensembl 查詢、同源基因、VEP 後果以及 PDB 結構
  • 可選執行唯讀 SQL 查詢、在 WebAssembly R 中做 Bioconductor 差異表現分析,以及 samtools/bedtools/bcftools 操作
適用情境
適合需要依據一手來源回答生物醫學或藥物研發問題的情境:基因與變異註解、標的到藥物或疾病到試驗的查詢、文獻與專利先前技術調查,以及表現量與定序資料探索。只有在需要本機差異表現分析或 BAM/VCF/BED 處理時,才值得啟用可選的分析與資料庫工具箱。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js 22.13 或更新版本。核心工具無需驗證。可選金鑰用於提高速率限制或解鎖功能:NCBI_API_KEY、OPENFDA_API_KEY、S2_API_KEY、DISGENET_API_KEY 和 ONCOKB_TOKEN。可選功能由 ANALYSIS_R、ANALYSIS_BIOWASM 和 DB_TYPE 控制,R 與 MySQL 還需額外 peer 套件;分析工具箱首次使用會下載並快取 WebAssembly 資源。
安裝前請注意
多個工具會把查詢送往第三方服務(NCBI、Europe PMC、OpenTargets、EPO、OpenAlex 等),研究主題會離開本機。可選金鑰與 OncoKB 權杖從環境變數或設定工具寫入的專案設定檔讀取。R 工具箱會啟動約 1 GB 的 WebAssembly 工作程序並下載套件;資料庫工具為唯讀,但仍會連線你的 MySQL 或 SQLite 資料。多個實例之間不共用速率限制,可能觸發 arXiv 與 bioRxiv 的限流。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 BioMCP-TS,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

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

bash
npx -y biomcp doctor   # diagnose a machine: Node gate, config health, feature gates, peer depsnpx 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; envelope { results, warnings?, errors? } — OpenTargets failures and unresolved genes ride in errors[], never as inline rows)
gene_trialsFind clinical trials for a gene
gene_articlesFind articles about a gene (federated across PubMed, EuropePMC, Semantic Scholar, arXiv, PubTator, LitSense; envelope { results, warnings?, errors? } — per-backend failures ride in errors)
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 (envelope { results, hint? } — when nothing matches, hint points mechanism/target queries at gene_drugs)
drug_getGet detailed drug info with optional sections (us_regulatory, who_regulatory, safety, targets, indications, adverse_events — FDA FAERS reactions ranked by report count; WHO PQ listing lookup, ~650 global-health priority products)
drug_trialsFind clinical trials for a drug

Disease (4)

ToolDescription
disease_searchSearch diseases by name, phenotype, or keyword (envelope { results, warnings?, errors? })
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; envelope { results, warnings?, errors? } — OpenTargets failures and unresolved diseases ride in errors[], never as inline rows)
disease_trialsGet clinical trials for a disease (ClinicalTrials.gov; envelope { results, warnings?, errors? })

Article (4)

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). Result records carry journal_issn
article_getGet detailed article info by identifier (PMID, PMCID, DOI, or bioRxiv/medRxiv preprint DOI) with optional sections: fulltext (the complete article text when freely readable in PMC/Europe PMC — open-access AND free-to-read articles; by default (fulltext_output="file") written to a server-side markdown file with the reply carrying file_path + an outline of headings with line numbers and char counts for selective Read/Grep, keeping body text out of the agent context; fulltext_output="inline" returns capped text sections via fulltext_max_chars, default 40000), oa (open-access/license metadata and links: status open_access/free_to_read/paywalled/not_in_pmc/unknown, license, pmc/pdf/doi links), annotations, graph (citation graph), citation (fast/full citation data; Europe PMC citations for preprints). all excludes fulltext. Preprint records include all versions, license, category, funders, JATS full-text URL (link only — use preprint_fulltext for the text), and published-version mapping. The record carries journal_issn
preprint_fulltextOn-demand bioRxiv/medRxiv preprint full text (JATS XML parsed to sections), by preprint DOI with optional version (default: latest). Strictly on-demand (never during search), downloads are paced (≥3 s spacing), cached per (doi, version) — JATS per version is immutable — and license-aware (cc_by → cc by + CC URL on every reply; the per-article license governs reuse). www.biorxiv.org rate-limits aggressively: on a 429/Cloudflare verdict all downloads pause ≥60 s (Retry-After honored) and calls during the cooldown get an honest rate_limited envelope with retry_after_sec; cached copies keep serving instantly. output="file" (default) writes a server-side markdown file (file_path + outline); output="inline" returns capped sections (fulltext_max_chars). Corpus-scale: use the bioRxiv/medRxiv monthly S3 buckets (https://www.biorxiv.org/tdm)
journal_metricsOpenAlex journal quality metrics (2yr mean citedness — an open-access impact-factor alternative), h-index, quality lists; by name, NLM abbreviation, or ISSN

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. "flow cytometry"). 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 when configured, otherwise Google Patents pages), 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 (bioproject, pubmed_ids; sra_project when NCBI links the SRA study — otherwise geo_get's sra field) 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. GDS curated DataSets return structured guidance ({ accession, guidance, see_also: { series, sample } }) pointing at the underlying GSE/GSM instead of a record

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: run (SRR/ERR/DRR — instrument, spots, bases, size), experiment (SRX/ERX/DRX — library design), study (SRP/ERP/DRP — experiment list), or sample (SRS/ERS/DRS); NCBI SRA indexes NCBI, ENA, and DDBJ accessions alike

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","[email protected]","-p","[email protected]","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.

來源:README.md,提交 6195da8

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.4.3最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分