biomedmcp

io.github.unibio-intelligencePublished by GitHub account unibio-intelligencev0.2.5Updated Nov 6, 2026

Integrated public biomedical research with cited, bounded evidence.

VerifiedStreamable HTTPWeb executableKnowledge & MemoryData & Analytics

Overview

AI-generated overview

BioMedMCP gives an AI assistant cited access to public biomedical sources such as PubMed, UniProt, ClinicalTrials.gov, ChEMBL, Open Targets and GTEx.

What you can do
  • Search genes, proteins, drugs, diseases, phenotypes, pathways, variants, studies, patents and authors, then fetch one record with chosen evidence sections
  • Search papers across PubMed, Europe PMC, PubTator and LitSense, and search clinical trials by condition, intervention, phase and status
  • Retrieve variant evidence from ClinVar, gnomAD, CIViC and optional prediction sources, and analyze installed public cancer genomics studies
  • Resolve names to species-qualified IDs, list records linked to a record, and build multi-section dossiers with citations
  • Run source-specific operations, batch up to ten read calls, and list enabled sources, sections, workflows and remaining quota
When to use it
Useful when an assistant must answer biomedical research questions with checkable, cited records instead of unsourced claims, for example target dossiers, variant interpretation, literature reviews or trial lookups.
Requirements
Either the hosted Streamable HTTP endpoint, where you sign in when prompted, or a local install: Python 3.13+ with the biomedmcp package (or the container image), run with the UBI_PROFILE environment variable set. Some sources need a key or an installed dataset; credentials belong in environment variables or client secret storage.
Before you install
Signing in to the hosted service ties usage to an account, and quota limits apply. Some sources require API keys or installed datasets. Retrieved data keeps its source terms, and a failed or partial source is a gap rather than proof of absence. Private lake, imports and modeling are outside this server.

Installation

In SourceWeft

  1. Open biomedmcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.unibio-intelligence%2Fbiomedmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "biomedmcp": {
      "type": "http",
      "url": "https://biomedmcp.unibiointelligence.com/mcp"
    }
  }
}

README

biomedmcp

BioMedMCP gives your AI agent cited access to biomedical sources, including PubMed, UniProt, ClinicalTrials.gov, ChEMBL, Open Targets and GTEx, so its answers point to records you can check.

Start with a research question

Try this with your MCP client:

Build an evidence notebook on LDL-receptor biology and cholesterol lowering. Start with a human LDLR target dossier, inspect tissue expression, then find PCSK9 genetic studies. Separate observations, intervention results and open questions. Cite the records you read and identify any unavailable sources.

Connect to https://biomedmcp.unibiointelligence.com/mcp using Streamable HTTP and sign in when prompted. For a local server, install the Python distribution or build from this checkout; see connection options.

Run the same investigation locally

Use Python 3.13+ in an activated virtual environment:

sh
python -m pip install biomedmcp==0.2.5UBI_PROFILE=local biomedmcp build_dossier '{"workflow":"target_dossier","focus":"LDLR","species":9606}'

The single Python distribution includes all source adapters. From a source checkout, uv sync --frozen installs the locked environment; prefix commands with uv run --frozen when using it.

These focused calls can fill gaps in the notebook:

sh
UBI_PROFILE=local biomedmcp get_record '{"entity":"gene","id":"LDLR","species":9606,"sections":["expression"]}'UBI_PROFILE=local biomedmcp search_literature '{"query":"PCSK9","filters":{"source":"pubmed","date_from":"2024-01-01"}}'UBI_PROFILE=local biomedmcp get_variant_evidence '{"id":"PCSK9 R46L"}'

Check each response's source, species and identifiers before combining records; a partial or unavailable section is a gap, not a negative result. Follow its continuation and recovery links to see more than the preview.

Choose the next question

Research taskWhere to start
Separate target observations from causal claimsEvidence investigations
Inspect an allele without conflating transcript or genome buildTyped call examples
Read a paper's accessible text and tablesget_record with entity: "article" and sections: ["fulltext"]
Examine registered studiestrial_search; inspect each study's submitted record
Reproduce a local analysisSynthetic study walkthrough

Connect a local agent

sh
UBI_PROFILE=local biomedmcp-server --transport http --host 127.0.0.1 --port 8000

Use http://127.0.0.1:8000/mcp, or configure a stdio client using the connection guide. The call reference covers exact JSON arguments; result handling explains partial results and evidence boundaries.

Some sources need a key or installed dataset. Run biomedmcp diagnose and consult source access. Keep credentials in environment variables or client secret storage. A failed source doesn't mean there is no evidence.

The integration code uses Apache-2.0. Retrieved data retains its source terms. See notices, release notes and contributing.

Acknowledgements

We gratefully acknowledge support from Anthropic's AI for Science rare disease research grants.

Source: README.md at commit 70ca3db

Tools

13

search_records

Search biomedical records

Search genes, proteins, drugs, diseases, phenotypes, pathways, variants, pharmacogenomics, GWAS, diagnostics, adverse events, studies, patents or authors by text; returns IDs for get_record (variants: get_variant_evidence). Papers: search_literature. Trials: search_trials. Patent search is chemistry-linked (SureChEMBL); assignee/inventor/CPC search is query_source(source=patents). e.g. {"entity":"gene","query":"BRCA1","filters":{"species":9606}}

Parameterslimitqueryrequiredcursorentityrequiredoutputfiltersfreshness

get_record

Get record and evidence sections

Fetch one record by ID with optional evidence sections, e.g. gene expression/eqtl/diseases/druggability, drug label/safety, article fulltext, trial eligibility, protein domains/structures. Variants: get_variant_evidence. List an entity's sections with get_capabilities(entity=...). e.g. {"entity":"gene","id":"PCSK9","species":9606}

Parametersidrequiredentityrequiredsourcesspeciessectionsfreshnesssource_versionssection_parameters

search_literature

Search literature

Search papers across PubMed, Europe PMC, PubTator and LitSense with date, author, journal, article-type and open-access filters. Deduplicates across sources and reports each source's outcome. Read abstracts or full text with get_record(entity=article). e.g. {"query":"PCSK9 LDL cholesterol"}

Parameterslimitqueryrequiredcursoroutputfiltersfreshness

search_trials

Search clinical trials

Search clinical trials (ClinicalTrials.gov, NCI) by condition, intervention, phase and recruitment status. Read arms, eligibility or outcomes with get_record(entity=trial). Does not assess an individual's eligibility. e.g. {"query":"familial hypercholesterolemia","filters":{"status":"RECRUITING"}}

Parameterslimitqueryrequiredcursoroutputfiltersfreshness

get_variant_evidence

Get variant evidence

Get evidence for one variant (rsID, gene + protein change, HGVS or chr:pos:ref:alt). Defaults: ClinVar, gnomAD population, CIViC; add predictions (AlphaMissense), eve, cosmic, oncokb, hotspots, gwas or cbioportal. Ambiguous assembly or transcript is reported, not guessed; predictions keep source and uncertainty. e.g. {"id":"PCSK9 R46L"}

Parametersidrequiredsourcesassemblysectionsfreshnesssection_parameters

analyze_study

Analyze genomics study

Analyze an installed public cancer genomics study: gene_profile, mutation_cohort, survival, compare, co_occurrence, filter_cohort, top_mutated. List installed studies with get_capabilities(source=study); ubi_synthetic is invented demo data. Report sample denominators and exclusions. Private data analysis uses the Ubi platform. e.g. {"analysis":"gene_profile","study":"ubi_synthetic","gene":"TP53"}

Takes no parameters.

resolve_entity

Resolve identifiers

Map a name, alias or ambiguous identifier to exact species-qualified IDs before joining evidence. Returns candidates when ambiguous; a provider match score alone is not identity. Skip when you already hold an exact ID. e.g. {"entity":"gene","query":"LDL receptor","species":9606}

Parametersqueryrequiredentityspeciesassembly

build_dossier

Build research dossier

Build a multi-section dossier in one call: verified identity, default record sections and top related papers, with citations and per-source outcomes. Workflows: target_dossier, model_input_bundle (gene), drug_review, disease_landscape, pathway_review, variant_dossier, negative_evidence (bounded literature check; never proves absence). Add sections with get_record. e.g. {"workflow":"target_dossier","focus":"LDLR","species":9606}

Parametersfocusrequiredspeciesassemblysectionsworkflowrequiredsection_parameters

query_source

Query source directly

Run a source-specific operation that other tools do not cover, e.g. ChEMBL bioactivities, Ensembl coordinates, PDB structure quality, OmniPath interactions, NCBI Datasets genomes, ncbi-records for GenBank/GEO/SRA. Read get_capabilities(source=...) for operations and params first. e.g. {"source":"gtex","operation":"get_metadata","params":{"info_type":"tissues","dataset_id":"gtex_v10"}}

Parametersparamssourcerequiredfreshnessoperationrequired

run_batch

Run batched reads

Run up to ten independent read calls in parallel with one quota reservation; each result keeps its own outcome. build_dossier and utilities are not batchable. e.g. {"calls":[{"operation":"get_record","arguments":{"entity":"gene","id":"PCSK9","species":9606}}]}

Parameterscallsrequiredidempotency_key

get_capabilities

Inspect get_capabilities

List enabled sources, entity sections, dossier workflows and source operations with exact parameter schemas. Narrow with source or entity; diagnose=true probes source health. Examples: biomedmcp://guide. e.g. {}

Parametersentitysourcediagnose

get_quota

Check quota

Show remaining research allowance and reset times; signed-in accounts get higher limits. e.g. {}

Takes no parameters.

Version history

2
  1. v0.2.5LatestNov 6, 2026
  2. v0.2.4Nov 5, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts