Skip to content
Agentmart
Submit a tool

BioMCP-TS

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

Connector by yeyuan98 · GitHub account verified by the MCP Registry

IndexedApache-2.0Local (stdio)★ 12
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/yeyuan98-biomcp-ts

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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

Use cases: deep-research, data-analysis

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
47 read · 4 write · 7 delete
Secrets
5 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Node.js package

Tools by what they do 58

Read from the source code; the running server may list different tools.

Read 47 · Look things up without changing anything.

  • analysis_bam_summary
  • analysis_bcf_summary
  • analysis_biowasm_session_info
  • analysis_r_session_info
  • article_get
  • article_search
  • batch_get
  • db_describe_table
  • db_list_tables
  • db_query
  • discover
  • disease_drugs
Show 35 more tools
  • disease_get
  • disease_search
  • disease_trials
  • drug_get
  • drug_search
  • drug_trials
  • ensembl_consequence
  • ensembl_homology
  • ensembl_lookup
  • ensembl_region
  • genbank_genes
  • genbank_get
  • genbank_search
  • gene_articles
  • gene_diseases
  • gene_drugs
  • gene_enrich
  • gene_get
  • gene_search
  • gene_trials
  • geo_search
  • gtex_eqtl
  • gtex_expression
  • journal_metrics
  • patent_get
  • patent_search
  • preprint_fulltext
  • sra_get
  • sra_search
  • trial_get
  • trial_search
  • variant_get
  • variant_oncokb
  • variant_search
  • variant_trials

Write 4 · Create, change, send or run things.

  • analysis_bam_view_region
  • analysis_bcf_view_region
  • analysis_biowasm_convert
  • geo_get

Delete 7 · Delete, drop, revoke or wipe things.

  • analysis_bed_op
  • analysis_biowasm_cli
  • analysis_r_deseq2
  • analysis_r_edger
  • analysis_r_limma
  • biomcp_configure
  • pdb

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • DISGENET_API_KEY
  • NCBI_API_KEY
  • ONCOKB_TOKEN
  • OPENFDA_API_KEY
  • S2_API_KEY

Other settings (environment variables or headers).

  • ANALYSIS_BIOWASM
  • ANALYSIS_R
  • DB_TYPE

Network hosts it talks to 60

  • alphafold.ebi.ac.uk · found in code
  • api-v3.monarchinitiative.org · found in code
  • api.biorxiv.org · found in code
  • api.crossref.org · found in code
  • api.disgenet.com · found in code
  • api.fda.gov · found in code
  • api.github.com · found in code
  • api.openalex.org · found in code
  • api.opencitations.net · found in code
  • api.platform.opentargets.org · found in code
  • api.reporter.nih.gov · found in code
  • api.semanticscholar.org · found in code
  • api.uspto.gov · found in code
  • archive.org · found in code
  • artistic-license.rtfd.org · found in code
  • bioc.r-universe.dev · found in code
  • biorxiv.org · found in code
  • biowasm.com · found in code
  • civicdb.org · found in code
  • clinicaltrials.gov · found in code
  • code.bioconductor.org · found in code
  • cran.r-project.org · found in code
  • cran.r-universe.dev · found in code
  • data.rcsb.org · found in code
  • depmap.org · found in code
  • dgidb.org · found in code
  • disgenet.org · found in code
  • doi.org · found in code
  • ebi.ac.uk · found in code
  • europepmc.org · found in code
Show 30 more hosts
  • eutils.ncbi.nlm.nih.gov · found in code
  • export.arxiv.org · found in code
  • extranet.who.int · found in code
  • files.rcsb.org · found in code
  • ftp.1000genomes.ebi.ac.uk · found in code
  • ftp.ncbi.nlm.nih.gov · found in code
  • github.com · found in code
  • gnomad.broadinstitute.org · found in code
  • gtexportal.org · found in code
  • hpo.jax.org · found in code
  • info.arxiv.org · found in code
  • mychem.info · found in code
  • mydisease.info · found in code
  • mygene.info · found in code
  • myvariant.info · found in code
  • ncbi.nlm.nih.gov · found in code
  • oncokb.org · found in code
  • opencode.ai · found in code
  • ops.epo.org · found in code
  • patents.google.com · found in code
  • pmc.ncbi.nlm.nih.gov · found in code
  • ppubs.uspto.gov · found in code
  • proteinatlas.org · found in code
  • r-project.org · found in code
  • reactome.org · found in code
  • rest.ensembl.org · found in code
  • rest.uniprot.org · found in code
  • sandbox.zenodo.org · found in code
  • search.clinicalgenome.org · found in code
  • zenodo.org · found in code

Files it touches

  • /dev/null
  • /dev/stderr
  • /dev/stdout
  • /home/administrator/temp/biowasm-e2e/realdata/data
  • /home/administrator/temp/biowasm/assets/worker-loader.cjs
  • /home/administrator/temp/biowasm/data
  • /home/administrator/temp/biowasm/data/na12878.chr20.bam
  • /home/administrator/temp/biowasm/data/na12878.chr20.bam.bai
  • /opt/biomcp
  • /proc/self/status
  • /tmp/opencode/worker-src.cjs
  • Your home directory (~)
  • ~/.codex/config.toml
  • Any path the agent passes to its tools

Tools (58)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • analysis_bam_summaryread-only

    Inspect an alignment (SAM/BAM/CRAM) before deeper work — "what is in this BAM?": header contigs and lengths, sample and read groups, flagstat mapping metrics, and per-contig mapped/unmapped counts via idxstats when an index is available. Follow up with analysis_bam_view_region for loci of interest; analysis_biowasm_convert for format plumbing. Large host files are estimate-gated: when the full flagstat stream is estimated to exceed ~45 s the tool returns guidance instead — re-run with proceed_on_large_input=true to stream anyway (progress will be reported). **Input:** `source` accepts inline `…

  • analysis_bam_view_region

    Reads, depth, or pileup in a genomic region of an alignment (samtools view/depth/mpileup): mode="count" answers "how many reads overlap this locus?" (index-driven, touches only the relevant index blocks); "depth" gives a per-base (optionally binned via depth_bins) coverage profile; "pileup" gives base-level pileup rows; "reads" returns SAM rows or, with format="artifact", a BAM artifact for downstream analysis_bed_op / analysis_biowasm_convert work. Region queries work on any source: indexed sources use fast positional retrieval; indexless sources stream through a synthesized BED region filter…

  • analysis_bcf_summaryread-only

    Inspect a VCF/BCF before querying variants — "what is in this variant file?": total variant record count (from the index per-contig counts when available, else a streaming count), contigs, sample count and names (watch for cohort-scale files), and the full INFO/FORMAT field inventory from the header (bcftools view -h; with an index, per-contig record counts are included). Follow up with analysis_bcf_view_region to pull a narrow projection of variants. Large sample-dense host files are estimate-gated: when the streaming count is estimated to exceed ~45 s the tool returns guidance instead — re-r…

  • analysis_bcf_view_region

    Variants in a genomic region as a narrow field projection instead of raw VCF rows (bcftools query): pick columns (CHROM/POS/REF/ALT/…/GT), a `samples` subset (strongly recommended for cohort VCFs — the #1 context-reduction lever), an expression `filter` (e.g. 'INFO/DP>10 && QUAL>30'), and variant_types. format="artifact" returns a sliced VCF.gz for analysis_biowasm_convert instead. Default response is a bounded table (top_n rows), never megabyte-wide rows. **Input:** `source` accepts inline `content` (BED/VCF/SAM text, format-sniffed), a prior `artifact_id` from any analysis_biowasm response, …

  • analysis_bed_op

    Interval algebra on BED tracks (bedtools): intersect, merge, subtract, coverage, jaccard, or sort. Binary ops take `source` (A) and `b_source` (B) — pass b_source as an OBJECT like {"content": "chr1\t10\t20\nchr1\t100\t200\n"} or {"host_path": "..."}, never as a JSON-encoded string; set sorted_inputs=true for the memory-frugal -sorted algorithm on coordinate-sorted inputs (B-side inputs are otherwise loaded into the wasm heap — prefer sorted or bounded B). Produces a bounded table/json; pairs with analysis_bam_view_region artifacts and analysis_biowasm_convert. **Input:** `source` accepts inli…

  • analysis_biowasm_cli

    Advanced escape hatch: run an allowlisted samtools/bedtools/bcftools subcommand directly (args are passed as an array to the tool — never through a shell). Prefer the workflow tools — analysis_bam_summary, analysis_bam_view_region, analysis_bcf_summary, analysis_bcf_view_region, analysis_bed_op, analysis_biowasm_convert — which validate inputs and bound outputs; use this only for subcommands they do not cover. Constraints: subcommand-level allowlist (phase 1), max 32 args, no shell metacharacters, no "..", paths only under /shared (inputs land in /shared/data; write outputs to /shared/out). Ou…

  • analysis_biowasm_convert

    Format plumbing between the biowasm tools: SAM/BAM/CRAM via samtools view, VCF/BCF via bcftools view, and VCF/BCF -> TSV via bcftools query with a field projection and optional filter. The input format is inferred from the source (inline content is sniffed); the result is an artifact handle (id, sha256, size, preview) reusable as artifact_id by every other analysis_biowasm tool — the glue for multi-step workflows (e.g. convert a BAM slice from analysis_bam_view_region, then summarize it with analysis_bam_summary). include_content=true inlines artifacts <= 2 MB as base64(gzip). **Input:** `sour…

  • analysis_biowasm_session_inforead-only

    Biowasm runtime report: pinned samtools/bedtools/bcftools versions, asset cache location and verification time, engine status, retained artifact count, and process memory — for diagnosing analysis_biowasm_* issues. Read-only; never downloads assets or starts the worker.

  • analysis_r_deseq2

    Description is built at runtime.

  • analysis_r_edger

    Description is built at runtime.

  • analysis_r_limma

    Description is built at runtime.

  • analysis_r_session_inforead-only

    Report the R analysis runtime status: R/WebAssembly version, installed Bioconductor package versions, library paths, memory usage, and the package mirror endpoint. Use this to diagnose analysis tool issues.

  • article_getread-only

    Get article by PMID/PMCID/DOI. Section response keys differ from request names: "oa" is stored as sections.open_access, "graph" as sections.citation_graph. Preprint DOIs (bioRxiv/medRxiv, e.g. "10.1101/2025.03.05.641768" or new prefix "10.64898/...") return the preprint record: all versions, license, category, funders, JATS full-text URL, published-version mapping, and (with sections=["citation"]) Europe PMC preprint citations. Journal articles, sections=["fulltext"]: returns the ACTUAL full text when freely readable in PMC/Europe PMC (open-access AND free-to-read). fulltext.status is "availab…

  • article_searchread-only

    Search literature across multiple backends with federated search and deduplication. Response is an envelope: { results, warnings?, errors? } — per-source failures ride in `errors` (never as items inside `results`), degradation notes (e.g. PubMed dropping unrecognized query terms, LitSense relevance-floor drops) in `warnings`. LitSense rows carry the matched sentence plus PubMed-enriched title/metadata when available.

  • batch_getread-only

    Get multiple entities in parallel. Article items return metadata (with inline abstract) by default; for full text pass sections:["fulltext"] on the item — PMC articles then return a small file handle (file_path + outline, never body text inline) while non-PMC articles return an explicit unavailable + reason. Nonexistent PMIDs yield a per-item error and the batch continues. For inline text use article_get with fulltext_output="inline"

Show 43 more tools
  • biomcp_configurecan change or delete data

    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…

  • db_describe_tableread-only

    Get the column schema for a specific table. **Returns for each column:** - Field name - Data type - Nullable status - Key type (PRI for primary key) - Default value **Workflow:** 1. Use `db_list_tables` first to see available databases, aliases, and tables 2. Use this tool to understand the column structure 3. Use `db_query` to query the data **Multiple databases:** table names resolve against the main database first, then attached databases in order; qualify as `alias.table` to disambiguate when the same table name exists in more than one database (SQLite multi-file setups).

  • db_list_tablesread-only

    List all tables/views across the configured database(s) with metadata. **Returns:** - `databases`: every reachable database (SQLite multi-file setups: `main` plus attached aliases) with its file path and table count - `collections`: table/view names with their owning `database`, type, and row count - Row count is approximate for MySQL; exact for SQLite tables, except for large databases (>256 MB) where it is omitted (use SELECT COUNT(*) instead) **Usage:** Call this first to discover available databases, aliases, and tables before using db_describe_table or db_query. Reference tables from at…

  • db_queryread-only

    Execute a read-only SELECT query on the configured database(s). **Examples:** - Simple query: `SELECT * FROM genes LIMIT 10` - With named params: `SELECT * FROM variants WHERE significance = :significance` - Cross-database join (multiple SQLite files configured): `SELECT m.CellLineName, e.value FROM gene_effect e JOIN models m ON m.model_id = e.model_id WHERE e.gene_symbol = 'KRAS' LIMIT 10` **Parameters:** - Use named placeholders like `:paramName` for parameters - Pass parameter values in the `params` object: { "significance": "pathogenic" } **Multiple databases:** when several SQLite fil…

  • discoverread-only

    Free-text concept resolution - find entities matching a free-text query. Prefers a candidate whose name/symbol exactly matches the query (case-insensitive), ranks those exact matches first across entity types, and demotes numbered susceptibility-locus labels (e.g. "lung cancer susceptibility 1") within each backend's candidates; each result's matched_on field reports why it was picked ("exact" or "first")

  • disease_drugsread-only

    Get drugs for a disease via OpenTargets. Results are ranked by max clinical phase, then trial-report count, with salt forms collapsed. Response is an envelope: { results, warnings?, errors? } — OpenTargets failures and unresolved diseases ride in errors[] as { source, message, retryable? } instead of inline items (issue #130)

  • disease_getread-only

    Get detailed disease information by ID

  • disease_searchread-only

    Search for diseases by name, phenotype, or keyword. Response is an envelope: { results, warnings?, errors? } (issue #130)

  • disease_trialsread-only

    Get clinical trials for a disease. Response is an envelope: { results, warnings?, errors? } (issue #130)

  • drug_getread-only

    Get detailed drug information by name

  • drug_searchread-only

    Search for drugs by name or keyword (chemical identity: names, synonyms, and identifiers in ChEMBL/MyChem). This is NOT a mechanism or target search — MyChem has no mechanism text in this query, so "EGFR inhibitor"-style queries return nothing. For drugs targeting a gene/mechanism, use gene_drugs with the target gene symbol.

  • drug_trialsread-only

    Find clinical trials for a drug

  • ensembl_consequenceread-only

    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", "NM_004333.6: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. RefSeq accessions may carry a version ("NM_004333.6:c.1799T>A"); when the version is not carried by the current Ensembl release the call is retried against the bare accessi…

  • ensembl_homologyread-only

    Find orthologues or paralogues of a gene across species (Ensembl Compara) — the cross-species gene mapping source in biomcp. Returns target stable IDs, gene symbols (when the assembly provides them, e.g. ARAF/RAF1 for BRAF paralogs), 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?').

  • ensembl_lookupread-only

    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 …

  • ensembl_regionread-only

    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?". Genes/transcripts are always fetched for the FULL requested span, but variation density can reach ~100k variants in dense loci (which times out upstream), so when the span exceeds 50 kb variation is queried only for a 50 kb window centered on the region midpoint — the result echoes effective_varia…

  • genbank_genesread-only

    Map a GenBank/RefSeq nucleotide accession to its NCBI Gene IDs (elink nuccore→gene). The returned gene_ids are NCBI Gene (entrezgene) IDs. gene_get takes an HGNC gene symbol, NOT a numeric entrez id, so an id must first be resolved to its symbol — gene_search result rows carry both symbol and entrez_id, so the id→symbol bridge exists via gene_search. Useful bridge from a sequence record to gene-level annotation.

  • genbank_getread-only

    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: records up to 1,000 characters are returned inline (sequence_text with char_count/truncated). Anything larger defaults to file mode — the FULL text is written to a server-side cache file and the reply carries m…

  • genbank_searchread-only

    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.

  • gene_articlesread-only

    Find articles about a gene. Response is an envelope: { results, warnings?, errors? } — per-backend failures ride in `errors` (never as items inside `results`), degradation notes in `warnings` (issue #130)

  • gene_diseasesread-only

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

  • gene_drugsread-only

    Find drugs targeting a gene. Results are ranked by max clinical phase, then trial-report count, with salt forms collapsed. Response is an envelope: { results, warnings?, errors? } — OpenTargets failures and unresolved genes ride in errors[] as { source, message, retryable? } instead of inline items (issues #130, #179)

  • gene_enrichread-only

    Perform pathway enrichment analysis for a gene list (Reactome over-representation). Requires at least 3 genes; the list is deduplicated (case-insensitive) before submission. Each pathway reports genes_overlap — the count of unique SUBMITTED genes Reactome matched there, resolved with one follow-up token lookup (Reactome's entity-level match count can exceed the gene count when one gene maps to multiple entities, e.g. a UniProt entry plus Ensembl gene/transcript). The reply also reports how many pathways Reactome found in total alongside the returned page.

  • gene_getread-only

    Get detailed gene information by symbol. Response section keys mirror the requested section names: sections:["clinical_evidence"] returns sections.clinical_evidence, "protein_atlas" returns sections.protein_atlas, "dosage_sensitivity" returns sections.dosage_sensitivity, "disease_associations" returns sections.disease_associations — the legacy storage keys (civic, hpa, clingen, disgenet) never appear in responses.

  • gene_searchread-only

    Search for genes by symbol, name, or keyword

  • gene_trialsread-only

    Find clinical trials for a gene

  • geo_get

    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...). GDS accessions (curated DataSets, not served by SOFT) return structured guidance as data — { accession, guidance, see_also: { series: "GSE…", sample: "GSM…" } } — pointing at the underlying series/sample records; this is a successful result…

  • geo_searchread-only

    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]"). Every result carries accession (→ geo_get for full details), bioproject, and pubmed_ids (→ article_get). sra_project (→ sra_get) appears only when NCBI has linked the SRA study to the series — many newer series lack the link — so geo_get(accession) is the reliable route to SRA accessions (its sra field).

  • gtex_eqtlread-only

    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). An empty associations list is a VALID scientific result — the gene was tested but has no significant cis-eQTLs in that tissue (not a lookup failure). In that case the result carries a note listing other tissues where significant eQTLs DO exist (or stating that none exist in any tissue).

  • gtex_expressionread-only

    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).

  • journal_metricsread-only

    Journal quality metrics — an open-access alternative to the Clarivate impact factor (IF). Returns the OpenAlex 2-year mean citedness score (an IF-style metric), h-index, i10-index, citation counts, open-access flag (is_oa), and quality-list tiers (e.g. medline, norway-2, jufo-3…). Accepts a journal name, NLM abbreviation (e.g. 'N Engl J Med'), or ISSN (e.g. '0028-0836'; article records carry journal_issn).

  • patent_getread-only

    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 when configured, otherwise Google Patents pages — see per-section source fields), citations (backward + forward), family, classifications.

  • patent_searchread-only

    Search patents worldwide (US, EP, WO, JP, and 100+ authorities). Quote exact multi-word concepts (e.g. "flow cytometry") 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 wor…

  • pdb

    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. Sections list per-entity records (polymer_entities, ligands, assembly); when some records fail while siblings succeed, each failure appears as an inline {_error} item AND the response carries a top-level "warnings" array naming the section and failed item. DOWNLOAD: Provide "pdb_id" + download=true to save the structure file and get the file path.

  • preprint_fulltextread-only

    On-demand bioRxiv/medRxiv preprint full text (JATS XML, parsed to sections). Input: a preprint DOI (e.g. "10.1101/2025.03.05.641768"), optional version (default: latest). Downloads are strictly on-demand (never run during search), paced, and cached per (doi, version) — JATS per version is immutable, so repeat calls are served from cache without re-downloading. www.biorxiv.org rate-limits aggressively: on a 429/Cloudflare verdict this tool pauses downloads for >=60s (Retry-After honored) and every call during the cooldown returns an honest unavailable/rate_limited envelope with retry_after_sec …

  • sra_getread-only

    Get full details for an SRA accession indexed by NCBI: 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, European (ENA), and DDBJ submissions alike, so accessions returned by sra_search resolve here regardless of prefix. Chain from geo_get (sra field) or sra_search (experiment_accession / first_run_accession).

  • sra_searchread-only

    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 (NCBI S…, European E…, or DDBJ D… prefixes — all resolvable by sra_get), organism, library strategy, run count, and first_run_accession for chaining into sra_get.

  • trial_getread-only

    Get detailed trial information by NCT ID

  • trial_searchread-only

    Search clinical trials by condition, intervention, or keyword

  • variant_getread-only

    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. Response section keys mirror the requested section names: sections:["alphagenome_scores"] returns sections.alphagenome_scores — the legacy storage key (alphagenome) never appears in responses.

  • variant_oncokbread-only

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

  • variant_searchread-only

    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.

  • variant_trialsread-only

    Find clinical trials for a variant. Response is an envelope: { results, warnings? } — when MyVariant.info ID resolution fails, a warning rides alongside the results (which then come from searching the raw identifier) so a backend failure never masquerades as "no trials exist"; retry may resolve BRAF V600E-style naming (issue #198)

Compare and alternatives

    Featured in

    Signals

    Stars
    12
    Forks
    2
    Open issues
    2
    Last commit
    Oct 23, 2026 (5 days ago)
    Last release
    Oct 23, 2026 (5 days ago)

    From GitHub (fetched Oct 24, 2026).

    Details

    Registry name
    io.github.yeyuan98/biomcp-ts
    Version
    1.4.3
    Auth
    API key
    Packages
    npm biomcp
    License
    Apache-2.0
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    BioMCP-TS MCP server. Agent Mart. https://agentmart.dev/connectors/yeyuan98-biomcp-ts (last updated 2026-10-24)