AlphaFold Sovereign MCP
This server provides local-first MCP access to AlphaFold DB and multiple biomedical data sources for disease, variant, drug-target, and protein-structure research, plus a local SQLite knowledge graph.
Look up and search MONDO diseases, HPO phenotypes, ICD-10→MONDO mappings, and gene phenotype/gnomAD constraint profiles.
Explore Open Targets disease–target associations, common disease target profiles, and cross-disease target overlap.
Generate source-attributed variant reports and draft ACMG evidence summaries using ClinVar, gnomAD, VEP, AlphaMissense, Open Targets, DisGeNET, ChEMBL, and optional PDBe/IUCr literature evidence.
Assess target druggability, synthesize protein dossiers, map disease drug landscapes, and rank drug-repurposing candidates.
Retrieve AlphaFold structures and analyze pLDDT/PAE confidence, topology fingerprints, pairwise structural distances, binding-pocket geometry, low-pLDDT disorder candidates, and ortholog structural shifts.
Query, export, and traverse the local SQLite knowledge graph, including stored variants, proteins, drug–gene–disease networks, and database statistics; offline mode blocks outbound requests while local graph tools remain usable.
Provides tools to query, traverse, and export a local SQLite knowledge graph storing drug-gene-disease-variant relationships, enabling offline access to curated biomedical data.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AlphaFold Sovereign MCP Analyze variant BRCA1 V1688I for clinical significance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AlphaFold Sovereign MCP
Answering a structural-biology or variant question usually means querying
many public databases by hand — AlphaFold DB, Open Targets, ClinVar,
gnomAD, and more — and reconciling their formats. This server wraps those
sources behind one set of MCP tool calls that run as a local process on
your own machine, with no hosted service of ours in the path, no
telemetry, and a local SQLite knowledge graph that never leaves your disk.
In the default online mode the tools query those public upstreams
directly, so the identifiers you look up are sent to them (and one,
DisGeNET, needs its own free API key); set ALPHAFOLD_OFFLINE=1 to refuse
outbound requests before any socket opens, so no identifier leaves the
machine (the knowledge-graph tools still answer from local data; the
upstream tools report their source as unavailable). "Sovereign" here means
local-first — your compute and stored results stay on your machine — not
that the server runs without a network.
A Model Context Protocol server — an AlphaFold MCP server — that wraps AlphaFold DB and 8 other public biomedical data sources behind a set of MCP tool calls, with a conditional UniProtKB request to verify explicitly requested displayed isoforms. It is backed by a local SQLite knowledge graph with query and export tools (results can be persisted through its API; automatic per-invocation persistence is not yet wired).
This is an unfunded, independent open-source project. It is not a service, not certified for any regulated use, and its outputs are research aids that should be reviewed by qualified humans before any clinical or regulatory use.
Research authorship: Santiago Maniches (ORCID 0009-0005-6480-1987) independently directs and maintains this server and is the sole scientific author of its original research contributions. AI-assisted tools have supported coding, testing, and internal review. They are not scientific coauthors, clinical validators, or a substitute for independent evaluation. The public databases, prediction models, and existing algorithms remain credited to their sources.
This project is not affiliated with, endorsed by, or sponsored by Google DeepMind or EMBL-EBI. "AlphaFold" is a trademark of its respective owner and is used here only to describe the public data (the AlphaFold DB API) that this software consumes.
Status: Beta. Engineering-validated (100% line and branch
coverage). Not yet scientifically validated by
independent domain experts; not yet deployed in production. See
STATUS.md and LIMITATIONS.md.
What the evidence does and does not establish
Predicted structure is not an observed structure. AlphaFold predicts a protein's three-dimensional structure from sequence and learned structural relationships. Its coordinates represent a model of a possible conformation, not a direct observation or a guarantee that a protein adopts that single conformation in every biological context. Proteins are dynamic; binding partners, environment, sequence changes, alternative conformational states, and disorder can matter. pLDDT and PAE characterize aspects of prediction uncertainty. They are not experimental validation probabilities and do not measure how often the protein adopts a conformation in a cell.
Experimental structure evidence is different. A PDB entry may record an experimentally determined structural model, with its own experimental conditions, modeled residues, missing or disordered regions, uncertainty, and quality measures. It is not a universal photograph of all conformations. PDBe/SIFTS provides sequence-to-structure coordinate correspondences; correct correspondence requires matching the exact UniProt accession and position, PDB entry, molecular entity, chain identifiers, sequence positions, author numbering and insertion codes as applicable. A verified coordinate correspondence is not independent validation of an AlphaFold prediction or proof of a specific biological mechanism.
Automated annotations are a third evidence class. The optional PDBe/IUCr client retrieves AI-text-mined publication mentions and source-reported residue correspondences. Multiple rows, chains or PDB entries derived from the same paper are not independent replications. An extraction score is not a scientific confidence measure. A paper reporting one tested substitution does not substantiate other substitutions or clinical pathogenicity.
This MCP is a source-attributed connector, not a new structure predictor or experimental/clinical validator. The source-reported identities and limitations travel with the output. Deterministic parsing and regression tests can validate the software contract; independent checks of live coordinate mappings can test a narrow source-consistency claim, but cannot turn predictions, text-mined mentions, or a coordinate join into biological ground truth. When a required correspondence cannot be established, the correct state is unresolved rather than guessed.
See AlphaFold DB compatibility, scientific limitations, and validation status.
Related MCP server: OrigeneMCP
What this is
A Python MCP server that:
Wraps AlphaFold DB, MONDO, HPO, Open Targets, ClinVar, gnomAD, DisGeNET, ChEMBL, and Ensembl behind MCP tool calls. Explicit numbered isoforms may also trigger a UniProtKB sequence-and-identity check. Each call preserves upstream records and their provenance. Retrieval is not a new biological observation; derived workflows are explicitly identified as Topologica calculations rather than source-reported findings.
Composes upstreams into multi-source workflows: variant cross-reference reports, disease–target landscape summaries, heuristic target-druggability scoring, drug-repurposing candidate ranking, and cross-species structural-distance computation.
Ships a local SQLite knowledge graph (
storage/knowledge_graph.py) with query, export, and traversal tools. Fresh installations begin without automatically inserted biomedical records; data is stored by explicit writes through the knowledge-graph API. Existing SQLite files are preserved, including illustrative rows from earlier releases; historical numerical values are not independently validated source records. Analysis tools do not automatically persist their results.Includes an exploratory Cα-derived feature-vector module. With the optional
[tda]extra (gudhi), it reports H₀/H₁ terminal-filtration Betti numbers; H₂ is not computed. The fallback reports a 4-Å contact graph component count and geometric features, not persistent homology. L2 distance between those feature vectors is not a calibrated measure of protein homology or biological function.
It targets mcp-spec 2025-06-18 and is CI-tested on Python 3.11–3.13.
Python 3.10 reached upstream end of life on 1 October 2026 and is no longer
supported. New installs require Python 3.11+. The runtime requires patched
dnspython>=2.9.0 (CVE-2026-114605); optional documentation builds require
pillow>=13.0.0 to avoid the affected Pillow 12 line. Existing Python 3.10
users should upgrade their interpreter before upgrading this package.
AlphaFold DB compatibility: the prediction API announced modern model and sequence field names and a legacy-field sunset in June 2026. The sampled live API still exposes old aliases as of 9 October 2026. The client uses the current fields, retains legacy-response compatibility, and selects the exact requested UniProt accession when the API returns multiple isoforms. See the API compatibility notes for the migration contract, remaining fragment limitations, and the optional October 2026 PDBe/IUCr literature-annotation evidence client. Those annotations are upstream PDBe research, not an independent AlphaFold Sovereign scientific discovery.
Evidence responsibility
AlphaFold Sovereign MCP does not develop or validate AlphaFold's underlying structure predictions, MONDO ontology assertions, UniProt annotations, or ClinVar submissions. Those belong to the cited source and retain their source-reported confidence and limitations.
Topologica is responsible for reliable retrieval, accession identity, cross-source joins, reproducible local calculations, provenance attribution, and honest failure/uncertainty reporting. An inference made from a predicted structure remains conditional on that prediction; it does not become an experimental observation because it is joined to another database. Derived heuristics are research aids, not source-validated clinical conclusions.
ClinVar identity boundary: A gene-relative expression such as
BRCA1:c.181T>G discovers possible records but does not identify a unique
reference allele; results are labelled unverified candidates and their
classifications cannot be assigned to that query. A matching versioned
transcript expression such as NM_007294.4:c.181T>G permits only a literal
transcript-title match. ClinVar Variation IDs can represent sets of alleles;
neither match level establishes independent clinical equivalence or a
patient-specific classification. Source failures are reported separately
from absent matches. No cross-transcript equivalence is assumed.
What this is not
It is not a hosted service or a SaaS.
It is not certified for any regulated use (HIPAA, GxP, 21 CFR Part 11, FedRAMP, FIPS, SOC 2). The code structures audit logging in a way that could later support such a certification, but no such audit has been performed.
It does not train, fine-tune, or publish AlphaFold models — it consumes AlphaFold DB's public REST API.
Variant-report evidence is a provisional computational signal for expert review, not established ACMG/AMP criteria. The
classify_variant_acmgtool does not assign a clinical class when gene–disease mechanism and criterion-specific evidence are unverified.The "druggability tier" that
assess_target_druggabilityreturns is a heuristic built from drug-precedent counts, Open Targets tractability labels, pLDDT, and gnomAD constraint. It is not a validated prediction."Structural distance" is an L2 distance on derived Cα feature vectors. It is not sequence identity, RMSD, persistence-diagram Wasserstein distance, validated homology, or functional equivalence. Methods are reported separately rather than sorted on incompatible scales.
The AlphaFold structures consumed here are predicted models with per-residue pLDDT confidence, not experimental structures. Low-pLDDT regions are unreliable; some proteins (BRCA1 among them) are largely low-confidence, and structural inference over those regions should be treated with caution.
For a complete, itemised list of known limitations (with module
references, impact, and planned resolution), see LIMITATIONS.md.
For the high-level posture — what is engineering-validated vs. what is
not yet scientifically validated — see STATUS.md.
Install
From PyPI (recommended)
pip install alphafold-sovereign-mcpOr run it without installing using uvx:
uvx alphafold-sovereign-mcpEvery release on PyPI is built by the release.yml workflow under
OIDC Trusted Publishing and attached to a signed GitHub Release with
Sigstore (cosign) signature bundles, a CycloneDX SBOM, and a Zenodo
DOI mirror. SLSA L3 build provenance is generated in CI by
slsa-github-generator; attaching the attestation to each release is a
roadmap item. scripts/replicate.sh downloads the exact published wheel
and sdist, recomputes their PyPI SHA-256 digests, verifies the GitHub
Release Sigstore bundles against those bytes and this repository's release
workflow identity, and independently verifies that the released CycloneDX
SBOM is bound to the downloaded wheel. If SLSA provenance is attached to a
future release, the same script verifies it against the wheel when
slsa-verifier is installed.
From source
git clone https://github.com/smaniches/alphafold-sovereign-mcp
cd alphafold-sovereign-mcp
uv pip install -e .
# With persistent-homology TDA (requires gudhi):
# uv pip install -e ".[tda]"Verify the install
$ alphafold-sovereign --version
1.5.11
$ alphafold-sovereign --self-test
SELF-TEST PASS - ACMG helpers behave as expected on the BRCA1 c.5266dupC fixture.If you ran it via uvx without installing, use
uvx alphafold-sovereign-mcp --self-test instead (the bare
alphafold-sovereign script is only on PATH after a pip/uv install).
--self-test runs fully offline: it checks the deterministic ACMG-evidence
helpers (VEP, gnomAD, and AlphaMissense mapped to ACMG criteria) against a
built-in BRCA1:c.5266dupC fixture. Returns exit code 0 on PASS, non-zero on
FAIL. No network calls, no credentials required.
Configure Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"alphafold-sovereign": {
"command": "alphafold-sovereign-mcp",
"args": []
}
}
}Restart Claude Desktop and the tools become available in conversations.
Try asking, for example: "Triage BRCA1 c.5266dupC" or "Assess EGFR
as a drug target". See examples/ for source-retrieval workflow
guidance. The previous illustrative clinical-session transcripts were retired.
Offline mode
ALPHAFOLD_OFFLINE=1 alphafold-sovereign-mcpRefuses outbound HTTP before a socket is opened (raising AirGapError), except to hosts you explicitly allowlist via ALPHAFOLD_ALLOW_HOSTS. The knowledge-graph query and export tools still answer from the local SQLite store. The upstream-querying tools have no local cache and report their source as unavailable; note that the structure tools currently surface this as a "no AlphaFold model" result rather than an explicit offline error.
Tool inventory
The server exposes 29 MCP tools across four modules. Each tool's input schema is a Pydantic model; results are JSON.
Disease & ontology (tools/disease.py)
Tool | What it does |
| MONDO record + hierarchy + ICD cross-references |
| Full-text MONDO ontology search |
| HPO term + associated diseases |
| HPO phenotypes + gnomAD constraint for a gene |
| Top drug targets for a MONDO disease (Open Targets) |
| Top diseases for a UniProt target (Open Targets) |
| Parallel profiling across curated MONDO diseases |
| HGVS → ClinVar + gnomAD constraint (disease/structure context: pointer notes) |
| HPO → diseases → OT targets → UniProt IDs |
| Jaccard similarity of target sets for two diseases |
| ICD-10 code → MONDO disease record |
Precision medicine (tools/precision_medicine.py)
Tool | What it does |
| HGVS → sourced multi-database report + unreviewed computational signals |
| UniProt → uncalibrated HOT/WARM/COLD/NOT_DRUGGABLE heuristic when an observed drug count is available; otherwise explicit tool error |
| UniProt → source-attributed research briefing; errors rather than inventing a druggability tier if source counts are unavailable |
| MONDO → approved drugs + pipeline + ChEMBL phase counts |
| HGVS → source evidence + unassessed candidate signals; no automatic clinical class |
| MONDO → candidates ranked by OT evidence × ChEMBL phase |
Computational candidate signals are not assessed clinical ACMG/AMP criteria. Source classifications (for example, ClinVar) retain their original attribution; clinical interpretation requires independent review.
Structure intelligence (tools/structure_intelligence.py)
Tool | What it does |
| mean pLDDT + confidence tier + PAE-derived domain boundaries |
| 64-component exploratory vector; GUDHI computes H₀/H₁ at filtration endpoint; H₂ unavailable |
| Pairwise L2 fingerprint-distance matrix for 2–10 proteins |
| Ensembl sequence identity + method-labeled structural feature distances; no mixed-scale risk ranking |
| Geometric pocket detection + heuristic druggability index |
| Low-pLDDT modeled intervals; no validated disorder, linker, or clinical classification |
| Retrieve an AlphaFold model: metadata, download URLs, optional coordinates |
Knowledge graph (tools/knowledge_graph_tools.py)
Tool | What it does |
| Search locally stored variant triage results |
| Search locally stored protein assessments |
| Database size, entity counts, last activity |
| Export tables to JSON for pandas/ML pipelines |
| Traverse the local drug–gene–disease graph |
Example usage
See examples/ for research workflow guidance.
The previous named clinical session transcripts were retired because
they described an obsolete output contract. Current synthetic regression
tests exercise retrieval and evidence attribution without asserting
independently validated clinical conclusions.
Clinical variant report
generate_variant_clinical_report(hgvs="BRCA1:c.181T>G")The server searches ClinVar, gnomAD, AlphaMissense (via AlphaFold DB), Open Targets disease evidence, ChEMBL and Ensembl VEP, and returns a source-attributed research report with unreviewed computational signals. The gene-relative example above is a candidate search: it cannot borrow a ClinVar record's classification as though it proved allele identity. Use a versioned transcript expression for strict transcript-title matching; even then, additional validation is required for clinical allele identity. The client does not automatically perform a variant-specific experimental- structure or SIFTS mapping.
Optional PDBe/IUCr literature evidence
The clinical-report tool also supports an opt-in, source-attributed residue-annotation lookup, available only when both a canonical UniProt accession and its one-based UniProt residue position are provided:
generate_variant_clinical_report(
hgvs="RBM39:p.Trp495Ala",
include_literature_evidence=True,
literature_uniprot_id="Q8VH51",
literature_uniprot_residue=495,
)The example demonstrates the request shape, not proof that this HGVS
expression has been transcript-mapped or clinically interpreted.
Returned literature_residue_evidence preserves PDBe/IUCr annotation
provenance: publication identifiers, text-mined sentence and exact span,
extraction confidence, experimental PDB chain/residue information,
and source-reported UniProt correspondence. Source errors and ambiguous
or missing residue mappings are explicitly distinguished.
This evidence does not change ACMG criteria or pathogenicity tiers. Verify the exact HGVS-to-UniProt coordinate independently; the client does not independently validate SIFTS or experimental quality. See the compatibility and mapping limitations.
Drug repurposing
find_drug_repurposing_candidates(disease_mondo_id="MONDO:0007739")Returns drugs whose Open Targets evidence connects them to the disease, ranked by a composite of OT evidence score × the maximum ChEMBL clinical phase reached against the target.
Cross-species structural divergence
find_evolutionary_structural_shifts(
gene_symbol="ACE2",
target_species=["mus_musculus", "rhinolophus_ferrumequinum"]
)For each species: fetches the ortholog (Ensembl), the AlphaFold structure, computes the TDA fingerprint, and returns the L2 fingerprint distance from the human structure along with sequence identity.
Data sources
Source | What we use | License |
AlphaFold DB v6 (EBI/DeepMind) | Structures, pLDDT, PAE, AlphaMissense | CC BY 4.0 |
UniProtKB REST (EMBL-EBI/SIB/PIR) | Conditional displayed-isoform identity verification, not general annotation retrieval | CC BY 4.0 |
MONDO (OLS4) | Disease ontology, ICD cross-refs | CC BY 4.0 |
HPO (JAX) | Phenotype terms, gene-disease links | HPO license (free for all use) |
Open Targets | Disease–target evidence | CC0 1.0 (data) |
ClinVar (NCBI) | Variant pathogenicity | Public domain |
gnomAD v4 | Population allele frequencies | CC0 1.0 |
DisGeNET | Gene–disease association scores | Free academic tier / commercial (MedBioinformatics) |
ChEMBL v37 (EMBL-EBI) | Drug bioactivity, MoA, ADMET | CC BY-SA 3.0 |
Ensembl (EMBL-EBI) | VEP, orthologs, gene lookup | No restrictions (data); Apache 2.0 (code) |
UniProt accessions are used throughout as protein identifiers. The UniProtKB REST API is queried only for an explicit isoform not separately labeled in AlphaFold DB: its curated Displayed designation and full canonical sequence must agree with the model before reuse. This extra upstream request has its own rate limit and is blocked in offline mode. Failed verification raises an error rather than proving no model exists. Domain (InterPro), Gene Ontology, experimental-structure (RCSB PDB), and tissue-expression (Human Protein Atlas) lookups are not integrated in this release.
The optional PDBe/IUCr literature client is not a tenth default core
source: it is called only when include_literature_evidence=True and an
explicit UniProt coordinate is supplied. The data originates in PDBe's
IUCr text-mining pipeline and requires its own upstream attribution.
No experimental RCSB PDB structure retrieval is implied.
See NOTICE for full attributions.
Architecture
clients/_base.py
├── Air-gap enforcement (refuses sockets when ALPHAFOLD_OFFLINE=1)
├── Token-bucket rate limiting (aiolimiter)
├── Exponential backoff with jitter (tenacity)
├── Circuit breaker (CLOSED / OPEN / HALF_OPEN)
└── HTTP/2 transport with connection pooling and keep-alive (httpx)
storage/knowledge_graph.py
├── SQLite WAL mode (embedded, ACID)
├── 6 entity tables: proteins, variants, diseases, drugs, genes, phenotypes
├── 4 relationship tables: protein_disease, protein_drug, variant_disease, gene_phenotype
├── tool_invocations audit table (SHA-256 of input + output, timestamps)
└── Analytical views: variant_summary, drug_landscape
domain/disease.py
└── Pure Python frozen dataclasses (PathogenicityClass, VariantReport, ...)
domain/druggability.py
└── Pure, I/O-free target-druggability heuristic (named/cited weights and
cut-offs, plus confidence / data-completeness / borderline reporting)See ARCHITECTURE.md for the full module map.
Testing & quality
A comprehensive offline unit-test suite (respx-mocked upstreams, including parametrised expansions); the full suite runs hermetically in under a minute on a laptop.
Coverage on the shipped surface (
src/alphafold_sovereign/clients,domain,storage,server,tools): 100% line + branch, every shipped module at 100%.Lint:
ruff(19 rule families, see[tool.ruff.lint]inpyproject.toml). Type checking:mypy --stricton the full source tree.Security:
banditplus CodeQLsecurity-extended.Supply chain: release CI builds and attests the distributions, generates a wheel-bound CycloneDX SBOM from the installed runtime dependency closure, and signs release artifacts with Sigstore.
scripts/replicate.shindependently downloads the published wheel and sdist, verifies their PyPI hashes and Sigstore bundles, and checks the released CycloneDX binding. SLSA provenance is generated in CI; attaching it to each GitHub Release remains a roadmap item.
The full CI matrix (Python 3.11, 3.12, 3.13 × Ubuntu, macOS)
runs on every push. The coverage percentage above is the number a
git clone && uv run nox -s cov produces on the current HEAD; if you
find a divergence, please open an issue.
Contributing
DCO sign-off required (git commit -s). No copyright assignment.
Coverage gate: CI enforces 100% line and branch coverage on the shipped surface (nox -s cov).
Full guide: CONTRIBUTING.md.
Related MCP servers by the same author
uniprot-mcp— Model Context Protocol server for UniProt Swiss-Prot and TrEMBL (pip install uniprot-mcp-server).semantic-scholar-mcp— Semantic Scholar MCP server, 200M+ academic papers (pip install s2-mcp-server).
Citation
Machine-readable metadata: CITATION.cff (GitHub
renders a "Cite this repository" button in the sidebar that consumes
this file).
@software{maniches_alphafold_sovereign_mcp,
author = {Maniches, Santiago},
title = {AlphaFold Sovereign MCP},
year = {2026},
version = {1.5.11},
url = {https://github.com/smaniches/alphafold-sovereign-mcp},
license = {Apache-2.0},
orcid = {0009-0005-6480-1987},
doi = {10.5281/zenodo.20134773}
}When citing results derived from this software, please also cite the upstream data sources (AlphaFold DB, UniProtKB when verifying explicit isoforms, Open Targets, ChEMBL, Ensembl, ClinVar, gnomAD, MONDO, HPO, DisGeNET) according to their own citation requirements.
License
Copyright 2024–2026 Santiago Maniches.
Licensed under the Apache License, Version 2.0. See LICENSE.
Trademark policy: see TRADEMARKS.md.
Available Tools
29 toolsanalyze_structural_confidenceAnalyze Structural Confidence (pLDDT + PAE)ARead-onlyIdempotent
Analyze AlphaFold structural confidence using pLDDT and PAE.
Returns a structural reliability summary (not a per-residue profile):
pLDDT: the model's mean confidence (AlphaFold DB
globalMetricValue) plus a coarse confidence tierPAE (predicted aligned error): mean and max inter-residue uncertainty and PAE-derived domain boundaries
Druggability pre-screen: model confidence limitations; actual ordered fraction and ligand suitability are NOT assessed
Inputs: params (required). Returns: object
assess_target_druggabilityAssess Target DruggabilityARead-onlyIdempotent
Comprehensive druggability assessment for a protein target.
Integrates four independent druggability signals into a HOT/WARM/COLD/NOT_DRUGGABLE classification:
Drug precedent — ChEMBL approved drugs + clinical compounds
Tractability — Open Targets tractability labels (small-molecule, antibody, PROTAC)
Structural confidence — AF2 pLDDT (model-local confidence, not binding evidence)
Population constraint — gnomAD LOEUF (gene-level LoF depletion, not toxicity evidence)
This is an author-defined, uncalibrated research score, not a validated predictive model, clinical safety result, or independent biological fact.
Inputs: params (required). Returns: object
classify_variant_acmgDraft ACMG/AMP Variant ClassificationARead-onlyIdempotent
Generate a draft ACMG/AMP variant classification framework.
Reports computational observations that may inform an expert's later disease-specific ACMG/AMP review. This tool does NOT establish ACMG criteria or assign a pathogenicity class: generic consequence, model scores, and population frequencies are insufficient without clinical disease mechanism, inheritance, and criterion-specific validation.
Inputs: params (required). Returns: object
compare_disease_target_overlapCross-Disease Structural Target OverlapARead-onlyIdempotent
Compare the protein target landscapes of two diseases.
Identifies shared and unique targets between two diseases — a key analysis for drug repurposing, identifying shared mechanisms, and understanding comorbidity.
Returns:
Shared targets (present in both disease target sets)
Unique to Disease A / Disease B
Jaccard similarity score of target sets
Inputs: params (required). Returns: result
compare_proteins_topologicallyCompare Proteins Topologically (TDA Fingerprint Distance)ARead-onlyIdempotent
Compare multiple proteins using a TDA-fingerprint distance.
Computes a pairwise distance matrix between the TDA fingerprints of
the provided proteins. Distance metric: L2 distance between
length-normalised 64-dimensional fingerprint vectors (see
_fingerprint_distance). Distance = 0 means identical
fingerprints; larger values mean more divergent fingerprints. This
is not a Wasserstein distance between persistence diagrams.
Applications: Possible uses (all of which require independent validation before any downstream use):
Drug-repurposing triage: proteins with low fingerprint distance may share gross topology.
Off-target screening: family members with near-zero distance.
Cross-species comparison of the same gene's structure.
None of these are direct functional or sequence-similarity measures.
Inputs: params (required). Returns: object
compute_topology_fingerprintCompute Topological Fingerprint (TDA)ARead-onlyIdempotent
Compute a rotation-invariant topological fingerprint of a protein's fold.
Fetches the AlphaFold model for uniprot_id and derives an
exploratory 64-dimensional geometric/topological feature vector from
Cα coordinates. With GUDHI installed, H0 and H1 are computed on the
15-Å Vietoris-Rips 2-skeleton. H2 is NOT computed. Without GUDHI
only a 4-Å graph component count and geometric statistics are available.
Betti numbers describe this chosen filtration, not protein domains,
β-barrels, drug cavities, molecular function, or an experimental structure.
Returns the fingerprint vector, the Betti numbers, the residue count, and which
method ran. Full persistent homology needs the optional [tda] extra
(gudhi); without it a coarse fallback runs that does NOT compute persistent
homology, and the result flags this. Returns a no-structure result when
AlphaFold DB has no model for the accession. This is a coarse, geometry-only
summary — not a substitute for sequence alignment, RMSD, or functional-homology
assessment.
Inputs: params (required). Returns: object
detect_intrinsically_disorderedDetect Intrinsically Disordered RegionsARead-onlyIdempotent
Flag low-confidence modeled regions as intrinsic-disorder candidates.
Reads per-residue AlphaFold pLDDT from PDB C-alpha records and groups contiguous runs below 50. Low pLDDT may reflect intrinsic disorder, missing binding partners, alternate conformations, or model uncertainty; it is NOT independent evidence that a region is disordered.
Returns model-local residue indices, observed PDB chain/residue identifiers, and positional descriptions of low-pLDDT runs. These labels describe model geometry, not validated linkers, tails, disorder or function. Legacy idr_fraction and disordered_residue_count remain deprecated numeric aliases of low-pLDDT measurements, NOT validated intrinsic-disorder assays. Prefer low_plddt_* fields for scientific interpretation. PDB numbering is not mapped to full-length UniProt via SIFTS here.
This implementation is a reproducible screening heuristic, not a validated disorder predictor, biomolecular mechanism classifier, or clinical result. For background on intrinsic disorder, see Ruff & Pappu (2021), J Mol Biol. 433:167208; that paper does not validate these cutoffs or code.
Inputs: params (required). Returns: object
export_research_datasetExport Research DatasetARead-onlyIdempotent
Export the stored knowledge-graph data for downstream analysis.
Returns all stored entities as JSON-serialisable dicts, suitable for:
Loading into pandas DataFrames for ML feature engineering
Importing into R or Julia for statistical analysis
Feeding into downstream bioinformatics pipelines
Example (Python)::
import pandas as pd
result = await export_research_dataset(ExportInput(tables=["variants"]))
df = pd.DataFrame(result["data"]["variants"])
high_tier = df[df["clinical_tier"] == "HIGH"]Inputs: params (required). Returns: object
find_drug_gene_networkFind Drug-Gene-Disease NetworkARead-onlyIdempotent
Traverse the local knowledge graph from a seed entity.
Given a seed (UniProt ID, gene symbol, or MONDO disease ID), expands its immediate neighbourhood in the stored drug-gene-disease graph: a gene symbol resolves to its encoded proteins and reported variants, a UniProt accession resolves to its stored protein record, and a MONDO disease resolves to drugs with an indication for it. The store is populated by the storage API, or retained from historical database versions.
Inputs: params (required). Returns: object
find_drug_repurposing_candidatesFind Drug Repurposing CandidatesARead-onlyIdempotent
Rank existing clinical-stage drugs as repurposing candidates for a disease.
Surfaces approved or trial-stage drugs whose target carries genetic/association
evidence for the disease — i.e. drug-repurposing hypotheses. For the full
approved-plus-pipeline drug picture of a disease (not only repurposing
candidates), use map_disease_drug_landscape instead.
How it works: take the top target_limit Open Targets evidence-scored targets
for the disease; for each, fetch its ChEMBL drugs at or above min_phase; drop
duplicate molecules; rank by
composite_repurposing_score = OT evidence score × (max ChEMBL phase / 4).
Ranking uses clinical and association evidence only — no protein structure.
Returns a JSON record whose candidates list holds up to 20 drugs (each with
ChEMBL ID, name, max phase, target gene/UniProt, OT evidence score, composite
score, and mechanism), plus the candidate count and the methodology string.
Returns an empty candidates list with a message when the disease has no
Open Targets associations. The composite score is a prioritisation aid, not an
efficacy prediction — validate mechanistically before acting on it.
Inputs: params (required). Returns: object
find_evolutionary_structural_shiftsFind Evolutionary Structural ShiftsBRead-only
Report ortholog sequence identity and exploratory structural distances.
Distances between Cα-derived feature vectors are not calibrated evolutionary, functional, binding, or antibody cross-reactivity measures. The GUDHI and geometric-proxy methods are distinguished in each result. There is deliberately no cross-method conservation ranking.
Inputs: params (required). Returns: object
generate_variant_clinical_reportGenerate Precision Medicine Variant ReportARead-onlyIdempotent
Generate a multi-source variant interpretation report.
Cross-references evidence from up to seven upstream databases for a single HGVS variant into one structured research report. It preserves source classifications and computational observations separately; it does not assign an independent clinical tier or establish ACMG criteria.
Ensembl VEP — functional consequence, SIFT/PolyPhen/CADD predictions
ClinVar — clinical pathogenicity classifications and review status
gnomAD v4 — population allele frequencies (gnomAD v4, ~807k individuals)
AlphaMissense — deep-learning missense pathogenicity (Cheng et al. 2023)
Open Targets — disease-gene evidence scores
DisGeNET — curated gene-disease association scores
ChEMBL — approved drugs acting on the gene product
The report includes unassessed ACMG-related computational signals, sequence consequences, and gene-level drug context. It does not compute variant-specific three-dimensional structural impact.
Inputs: params (required). Returns: object
get_common_disease_targetsCommon Disease Target ProfileARead-onlyIdempotent
Profile the top drug targets for a curated set of common diseases in one call.
Use this for a fast landscape scan across a whole disease area: given a
category (e.g. 'oncology'), it looks up the curated MONDO diseases in that
category and returns each one's top Open Targets evidence-scored targets, in
parallel. To profile a single disease you already have a MONDO ID for, use
get_disease_targets instead — this tool is its category-level,
multi-disease counterpart and does not accept a raw MONDO ID.
Queries Open Targets live. Returns a JSON string with the category, the
number of diseases profiled, and a profile object mapping each disease to
its MONDO ID and top targets (per-disease errors are reported inline, not
raised). Returns a JSON error object listing the valid values when the category
— or a disease_name filter within it — is not recognised.
Inputs: params (required). Returns: result
get_disease_targetsDisease Target EvidenceARead-onlyIdempotent
Return top protein targets for a disease with Open Targets evidence scores.
Evidence score breakdown (0–1 per data type):
genetic_association: GWAS + rare-variant signalssomatic_mutation: Cancer somatic variant evidenceknown_drug: Approved or clinical-stage drugsaffected_pathway: Pathway membership (Reactome, SIGNOR)literature: Text-mining evidence (Europe PMC)animal_model: Knockout / model organism phenotypesrna_expression: Differential expression evidence
drug_count is the target's Open Targets drug-and-clinical-candidate
record count (all stages) and tractable is true when any Open Targets
tractability bucket is set; both are observed per row and are null
only when the source omits them.
Example: get_disease_targets(disease_id='MONDO:0007254', limit=15)
returns top 15 targets for breast carcinoma.
Inputs: params (required). Returns: result
get_gene_phenotype_profileGene Phenotype ProfileARead-onlyIdempotent
Return all HPO phenotypes associated with a gene, plus gnomAD constraint.
Useful for understanding the clinical consequences of variants in a gene before requesting structural context.
Returns:
HPO phenotypes linked to the gene (from HPO association database)
gnomAD LOEUF / pLI constraint scores
Interpretation of constraint (haploinsufficient / tolerant / moderate)
Example: get_gene_phenotype_profile(gene_symbol='SCN1A')
Inputs: params (required). Returns: result
get_knowledge_graph_statsGet Knowledge Graph StatisticsARead-onlyIdempotent
Return statistics about the local knowledge graph.
Shows entity counts, database size, and last activity — useful for understanding the current contents and coverage of the local store.
Inputs: no named parameters. Returns: object
get_protein_structureRetrieve AlphaFold Protein StructureARead-onlyIdempotent
Retrieve a protein's AlphaFold model: metadata, download URLs, optional coordinates.
The single entry point for getting the predicted structure itself. Returns the
AlphaFold DB entry metadata — entry ID, model version and creation date,
organism, gene, UniProt description, the amino-acid sequence and its length, and
the model's mean pLDDT — plus stable download URLs for the PDB and mmCIF
coordinate files, the PAE matrix, and the AlphaMissense substitutions
CSV. The PAE image URL is only present in legacy API responses. Set include_coordinates to embed the full PDB coordinate text directly.
Use the sibling structure tools for interpretation rather than retrieval, so
their scopes don't overlap: analyze_structural_confidence for a pLDDT/PAE
confidence read, score_binding_pocket_geometry for pockets,
compute_topology_fingerprint for fold topology, and
detect_intrinsically_disordered for disorder. This tool hands you the
structure and its handles; it does not score or interpret the model.
Returns structure_available: false with an explanatory note when AlphaFold DB
has no model for the accession — an expected coverage gap, not a server fault.
Inputs: params (required). Returns: object
get_target_diseasesTarget Disease AssociationsARead-onlyIdempotent
Return all diseases associated with a protein target via Open Targets.
Accepts a UniProt accession and returns the full disease landscape for that target — essential for target-validation and indication-expansion.
Example: get_target_diseases(uniprot_id='P04637')
returns all diseases associated with TP53 / p53.
Inputs: params (required). Returns: result
lookup_diseaseMONDO Disease LookupARead-onlyIdempotent
Retrieve a disease record from the MONDO unified disease ontology.
Returns the canonical MONDO entry with:
Disease name, definition, synonyms
ICD-10 / ICD-11 codes (for clinical coding / EHR integration)
OMIM, Orphanet, MeSH, DOID cross-references
Immediate parent and child terms in the MONDO hierarchy
Example: lookup_disease(mondo_id='MONDO:0005010')
returns the record for coronary artery disease.
Inputs: params (required). Returns: result
lookup_phenotypeHPO Phenotype LookupARead-onlyIdempotent
Retrieve an HPO phenotype term with associated disease annotations.
Returns:
Phenotype label, definition, synonyms
Diseases annotated with this phenotype (from HPO + OMIM + Orphanet)
Parent phenotype terms
Example: lookup_phenotype(hpo_id='HP:0001250')
returns the Seizure phenotype with ~400 associated diseases.
Inputs: params (required). Returns: result
map_disease_drug_landscapeMap Disease Drug LandscapeBRead-onlyIdempotent
Map a bounded, source-attributed therapeutic landscape for a disease.
Returns retrieved approved drugs, pipeline agents, top druggable targets, and an exploratory summary for a given MONDO disease.
Combines Open Targets evidence with ChEMBL drug indications and MONDO disease hierarchy to produce a comprehensive landscape report used in business development, competitive intelligence, and R&D portfolio decisions.
Inputs: params (required). Returns: object
phenotype_to_structuresPhenotype to Protein StructuresARead-onlyIdempotent
Map a clinical phenotype to the protein structures of its disease targets.
Pipeline:
Resolve HPO term → associated diseases
For each disease → top protein targets (Open Targets)
For each target → UniProt ID (for AlphaFold retrieval)
Use the returned UniProt IDs with analyze_structural_confidence
to retrieve AlphaFold structural confidence (pLDDT/PAE).
Example: phenotype_to_structures(hpo_id='HP:0002621')
maps Atherosclerosis → disease targets → UniProt IDs.
Inputs: params (required). Returns: result
query_protein_databaseQuery Protein Research DatabaseARead-onlyIdempotent
Recall proteins already stored in the local knowledge graph.
This is a local-recall query, not a live lookup: it returns only proteins that
have previously been written through the knowledge-graph storage API (or
retained from earlier versions of the database). No upstream API is called. To assess a protein that may not be stored yet, use
assess_target_druggability (druggability tier) or
analyze_structural_confidence (pLDDT), which query live sources.
Filters are combined with AND; omit a filter to leave that dimension
unconstrained. Returns a JSON record with the applied query, a
result_count, and the matching proteins rows. The list is empty when
nothing stored matches; an empty result means the local store has no
matching row, not that the protein is absent from upstream biology.
Inputs: params (required). Returns: object
query_variant_databaseQuery Variant Research DatabaseARead-onlyIdempotent
Search the local knowledge graph for stored variants.
Returns variants matching the filter criteria. No upstream API calls are made — all data is served from the local SQLite knowledge graph, which is populated only through explicit writes to the knowledge-graph storage API. Historical SQLite files may retain illustrative rows from older versions; these should not be interpreted as independently verified biology.
Inputs: params (required). Returns: object
resolve_icd10_to_mondoICD-10 to MONDO ResolverARead-onlyIdempotent
Resolve an ICD-10 clinical code to MONDO disease ontology terms.
Enables integration between clinical / EHR data (which uses ICD-10) and the research-grade MONDO ontology used by Open Targets, HPO, and this MCP.
Example: resolve_icd10_to_mondo(icd10_code='I21.0')
maps ST-elevation MI (ICD-10) to MONDO coronary disease terms.
Inputs: params (required). Returns: result
score_binding_pocket_geometryScore Binding Pocket GeometryARead-onlyIdempotent
Identify and score putative binding pockets from AlphaFold geometry.
Detects pockets with a geometry-only heuristic. Residues in the
inner 60 percent of the structure by distance from the centroid are
taken as the pocket-forming core, then grown greedily into clusters
within an 8 Angstrom radius. A cluster is kept as a putative pocket
when it has at least min_pocket_residues members and a mean pLDDT
of at least 50.
Each pocket reports a radius of gyration (compactness of the pocket residues), a centroid offset (distance of the pocket centroid from the structure centroid; larger means more peripheral), mean pLDDT, and an uncalibrated geometry score. Centroid offset does not measure solvent exposure, cavity validity, or ligand binding. The druggability index runs 0 to 100 and is the sum of four equally weighted 0 to 25 sub-scores: residue count, radius of gyration, mean pLDDT, and centroid offset.
This is a fast, dependency-free pre-screen, not a substitute for a validated pocket detector such as fpocket or P2Rank. It needs no ML model, is fully reproducible from AlphaFold coordinates, and runs in air-gapped deployments.
Inputs: params (required). Returns: object
search_diseasesSearch Diseases (MONDO)ARead-onlyIdempotent
Search for diseases by name or keyword using the MONDO ontology.
Returns a ranked list of matching diseases with MONDO IDs and cross-references. Useful for resolving a clinical term to a canonical identifier before querying targets or phenotypes.
Example: search_diseases(query='breast cancer', limit=5)
Inputs: params (required). Returns: result
synthesize_protein_dossierSynthesize Protein Intelligence DossierARead-only
Generate a complete protein intelligence dossier from 7 data sources.
It assembles disease associations, drug precedent, population constraint, ClinVar variants, and cross-species orthologs for one protein into a single structured record. It composes upstream records and author-defined research heuristics, without issuing clinical conclusions.
Inputs: params (required). Returns: object
triage_variant_3dVariant 3-D Structural TriageARead-onlyIdempotent
Retrieve source-reported variant evidence for research.
Fuses the upstream signals this tool currently wires into a single prioritised report:
Pathogenicity — ClinVar interpretation + review status. The
alphamissense_score/alphamissense_interpretationfields are alwaysnull/ "Not available" here: AlphaMissense is not wired into this tool. For an AlphaMissense pathogenicity score usegenerate_variant_clinical_report.Population genetics — gnomAD LOEUF / pLI gene-constraint scores. Per-variant allele frequencies and the per-ancestry breakdown are not wired into this tool.
Disease associations — a placeholder note pointing at
get_target_diseases(); the Open Targets / MONDO traversal is a roadmap (Wave-3) item.Structural context — a text note pointing at
analyze_structural_confidence(resolve the gene to a UniProt accession first); the AlphaFold pLDDT / PAE join into this report is a roadmap (Wave-3) item.
Returns the legacy pathogenicity_tier key as NOT_ASSESSED. Raw
verified ClinVar classifications remain source-attributed in the
pathogenicity section; they are not converted into a local risk tier.
Gene-relative candidates remain explicitly unverified. AlphaMissense
is not wired into this particular tool. The report is not a calibrated risk estimate.
Example: triage_variant_3d(hgvs='BRCA1:c.181T>G')
Inputs: params (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 29 tools
Descriptions do explicit work to separate near-neighbours (get_disease_targets vs get_common_disease_targets, find_drug_repurposing_candidates vs map_disease_drug_landscape, get_protein_structure vs the four structure-interpretation tools) and local-recall tools are clearly labelled as non-live. The main residual ambiguity is the variant cluster — triage_variant_3d, generate_variant_clinical_report, and classify_variant_acmg all emit variant reports, with triage_variant_3d admitting placeholders and pointing elsewhere for AlphaMissense. A careful agent can pick correctly, but these three can be confused at a glance.
Every tool is snake_case with an action verb first (get_, query_, lookup_, search_, analyze_, score_, compute_, compare_, find_, generate_, classify_, synthesize_, export_, resolve_, map_, detect_, triage_), and resource nouns are reused consistently across the set. No camelCase or mixed convention appears.
At 29 tools this is the heavy end, though the scope genuinely spans structural analysis, MONDO/HPO ontology, Open Targets/ChEMBL drug work, variant interpretation, and a local knowledge graph. Several local-store utilities (get_knowledge_graph_stats, query_variant_database, query_protein_database, export_research_dataset) are ancillary and inflate the surface for what is largely a read-only research server.
The read/analysis surface is broad and well covered, from structure retrieval through druggability, repurposing, and disease-phenotype traversal. However, the local knowledge graph is queried and exported but never written to — the storage API the descriptions reference is not exposed, leaving a notable dead end — and there is no sequence-level comparison or ligand-level tooling.
Maintenance
Related MCP Connectors
MCP gateway federating 22 biomedical MCP servers behind one endpoint: gnomAD, ClinVar, HPO, VEP.
Open Targets MCP — disease/target/drug knowledge graph.
Knowledge graph ingestion, entity search, ontology analysis, and CoPass scoring.
MyVariant.info MCP. Aggregated human genetic-variant annotation: dbSNP, ClinVar clinical…
Related MCP Servers
- AlicenseBqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server that provides access to the AlphaFold Protein Structure Database through a rich set of tools and resources for protein structure prediction analysis.1937MIT
- FlicenseNot gradedqualityDmaintenanceAn advanced integrated MCP server platform that combines 600+ tools and multiple biomedical databases to enable comprehensive information retrieval across molecules, proteins, genes, and diseases for accelerating therapeutic research.40-
- AlicenseNot gradedqualityBmaintenanceA unified biomedical graph database that integrates 50+ primary data sources — genes, proteins, compounds, diseases, pathways, and clinical data — into a single queryable graph with billions of cross-reference edges. Its native MCP server gives LLMs direct access to structured, authoritative biomedical data, complementing their reasoning with reliable identifiers and up-to-date database content.20AGPL 3.0
- AlicenseAqualityBmaintenanceA high-performance MCP server that gives LLMs access to 25 biomedical tools federated across 50+ upstream APIs for genes, variants, drugs, diseases, literature, clinical trials, and structural biology.43179 npm12Apache 2.0