In-depth architectural comparison of the Uniprot MCP and Alphafold Sovereign MCP MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Uniprot MCP
Biology, Medicine and Bioinformatics · Local stdio
Quality: 60/100 (Good) | Auth: No auth required
Alphafold Sovereign MCP
Biology, Medicine and Bioinformatics · Local stdio
Quality: 61/100 (Good) | Auth: API Key required
Verdict Summary: Choose Uniprot MCP if you need specialized Biology, Medicine and Bioinformatics tools running via a local process. Choose Alphafold Sovereign MCP if your workspace requires Biology, Medicine and Bioinformatics integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Uniprot MCP when:
You need dedicated capabilities in the Biology, Medicine and Bioinformatics domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
You have access to required keys: UNIPROT_MCP_CACHE_DIR.
Auditable UniProt MCP server: 41 tools over the UniProt knowledgebase (entries, features, variants, PTMs, GO terms, cross-references) with per-query SHA-256 provenance and offline replay. uvx uniprot-mcp-server
AlphaFold MCP server integrating AlphaFold DB with eight additional public biomedical data sources, backed by a local SQLite knowledge graph for structural-confidence, variant, disease/phenotype, drug-target, and orthology workflows. uvx alphafold-sovereign-mcp
Category & Scope
Tools & Capabilities Breakdown
Uniprot MCP Tools (41)
uniprot_get_entry
Fetch a UniProt protein entry by accession (e.g. P04637 for p53, P38398 for BRCA1).
Returns function, gene, organism, disease associations, cross-references.
uniprot_search
The general-purpose entry point for finding UniProtKB proteins by any
combination of gene, organism, keyword, or free text. Use this first when
you don't already have an accession; use ``uniprot_get_entry`` once you
do. Examples: '(gene:TP53) AND (organism_id:9606)', 'kinase AND reviewed:true'.
``reviewed_only`` and ``organism`` are convenience shortcuts equivalent to
adding the corresponding clause to ``query`` yourself.
uniprot_get_sequence
Fetch the canonical protein sequence in FASTA format. Use this when
you need the raw residue string itself (e.g. for local sequence
analysis); for pre-computed chemistry derived from this same sequence
(molecular weight, pI, hydrophobicity) call ``uniprot_compute_properties``
instead, which fetches the FASTA internally so you don't have to parse
it yourself. Always returns markdown/plain-text FASTA — there is no
``response_format`` parameter because FASTA is already the interchange
format.
uniprot_get_features
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Uniprot MCP is categorized under Biology, Medicine and Bioinformatics and uses a local stdio subprocess. In contrast, Alphafold Sovereign MCP belongs to Biology, Medicine and Bioinformatics using local stdio subprocess. Select Uniprot MCP when you need capabilities focused on biology, medicine and bioinformatics and Alphafold Sovereign MCP when you require tools for biology, medicine and bioinformatics.
Return the full, unfiltered feature array for an entry: domains,
binding sites, PTMs, signal peptides, and every other annotated region,
optionally narrowed by ``feature_types``. For a residue-specific view
('what's at position 175?') use ``uniprot_features_at_position``
instead; for the curated subsets (active/binding sites, processing,
PTMs alone) the dedicated ``uniprot_get_active_sites`` /
``uniprot_get_processing_features`` / ``uniprot_get_ptms`` tools apply
the same filter server-side.
uniprot_get_go_terms
Get GO annotations grouped by aspect.
uniprot_get_cross_refs
List every external-database cross-reference UniProt has curated for
an entry (PDB, Pfam, Ensembl, Reactome, KEGG, STRING, and dozens more),
optionally narrowed to one ``database``. For the common single-database
cases there are dedicated, richer tools that resolve structured details
beyond a bare ID: ``uniprot_resolve_pdb`` (structures with
method/resolution), ``uniprot_resolve_alphafold``, ``uniprot_resolve_interpro``,
and ``uniprot_resolve_chembl``. Use this tool for any other database or
to see the full cross-reference set at once.
uniprot_get_variants
List every literature-described natural variant UniProt has curated
for an entry, including disease-associated mutations. Use this to see
the full variant catalogue for a protein; to check one specific
HGVS-shorthand change (e.g. 'R175H') use ``uniprot_lookup_variant``
instead, which does the position/residue matching for you. UniProt's
natural-variant annotations only cover literature-described variants —
for population-scale clinical significance data use
``uniprot_resolve_clinvar``.
uniprot_id_mapping
Map identifiers between UniProt and external databases (or between
two external databases) via UniProt's ID mapping service. Submits an
async job and polls it to completion server-side, so the call may take
a few seconds for large batches.
uniprot_batch_entries
Fetch multiple entries in a single call. Use this instead of repeated
``uniprot_get_entry`` calls when you already have a list of accessions —
one network round-trip instead of N, with invalid accessions reported
rather than aborting the batch.
uniprot_taxonomy_search
Resolve an organism name to its NCBI taxonomy ID(s) — the numeric ID
other UniProt tools expect (e.g. the ``organism`` parameter of
``uniprot_search``, or ``organism_id:`` in a query string). Returns
each match's taxonomy ID, scientific name, common name, and rank
(species / genus / etc.); a name can resolve to multiple IDs when
it's ambiguous (e.g. a genus with several species), so inspect the
rank and full scientific name before picking one. Use this before
filtering any other search by organism if you only know the name,
not the numeric ID.
uniprot_get_keyword
Fetch a UniProt keyword by ID (e.g. KW-0007 for Acetylation, KW-0539 for Nucleus).
Returns name, definition, category, synonyms, GO cross-refs, and parent/child hierarchy.
uniprot_search_keywords
Search UniProt's controlled keyword vocabulary (the ``KW-####`` terms)
by name or definition. Use this to discover a keyword ID from a concept;
once you have the ``KW-####`` ID, call ``uniprot_get_keyword`` for its full
record (definition, category, hierarchy, GO cross-references). Returns up
to ``size`` matches, or an empty list if nothing matches.
Examples: 'acetylation', 'nucleus', 'kinase activity'.
+29 more tools listed on main page
Alphafold Sovereign MCP Tools (30)
lookup_disease
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:0004995')``
returns the record for coronary artery disease.
search_diseases
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)``
lookup_phenotype
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.
get_gene_phenotype_profile
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')``
get_disease_targets
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 signals
- ``somatic_mutation``: Cancer somatic variant evidence
- ``known_drug``: Approved or clinical-stage drugs
- ``affected_pathway``: Pathway membership (Reactome, SIGNOR)
- ``literature``: Text-mining evidence (Europe PMC)
- ``animal_model``: Knockout / model organism phenotypes
- ``rna_expression``: Differential expression evidence
Example: ``get_disease_targets(disease_id='MONDO:0007254', limit=15)``
returns top 15 targets for breast carcinoma.
get_target_diseases
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.
get_common_disease_targets
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.
triage_variant_3d
Comprehensive clinical triage for a missense variant.
Fuses the upstream signals this tool currently wires into a single
prioritised report:
1. **Pathogenicity** — ClinVar interpretation + review status. The
``alphamissense_score`` / ``alphamissense_interpretation`` fields
are always ``null`` / "Not available" here: AlphaMissense is not
wired into this tool. For an AlphaMissense pathogenicity score use
``generate_variant_clinical_report``.
2. **Population genetics** — gnomAD LOEUF / pLI gene-constraint
scores. Per-variant allele frequencies and the per-ancestry
breakdown are not wired into this tool.
3. **Disease associations** — a placeholder note pointing at
``get_target_diseases()``; the Open Targets / MONDO traversal is
a roadmap (Wave-3) item.
4. **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 a ``pathogenicity_tier``: HIGH / MEDIUM / LOW / UNKNOWN
(derived from ClinVar; the AlphaMissense input is always absent here).
Example: ``triage_variant_3d(hgvs='BRCA1:c.181T>G')``
phenotype_to_structures
Map a clinical phenotype to the protein structures of its disease targets.
Pipeline:
1. Resolve HPO term → associated diseases
2. For each disease → top protein targets (Open Targets)
3. 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.
get_orphan_disease_atlas
Map an Orphanet rare disease to its MONDO record, HPO phenotypes, and protein targets.
Rare / orphan diseases are often under-studied because their small
patient populations make large trials impractical. This tool aggregates
the available structural and clinical intelligence into one report to
accelerate research.
Returns:
- MONDO record with ICD-10 coding
- HPO phenotype profile of the disease
- Open Targets protein target evidence scores
- UniProt IDs for AlphaFold structural retrieval
Example: ``get_orphan_disease_atlas(orphanet_id='79318')``
returns the Gaucher disease atlas.
compare_disease_target_overlap
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
Example: ``compare_disease_target_overlap(
mondo_id_a='MONDO:0004975', # Alzheimer disease
mondo_id_b='MONDO:0005180', # Parkinson disease
)``
resolve_icd10_to_mondo
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.