{"name":"io.github.smaniches/uniprot-mcp","slug":"smaniches-uniprot-mcp","title":"UniProt MCP","description":"Verifiable, release-aware protein evidence workflows over UniProt and linked scientific sources.","url":"https://mcp.market/server/smaniches-uniprot-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":31,"stars":3,"forks":0,"downloads_week":89,"last_push_at":"2026-09-10T16:49:11.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/smaniches/uniprot-mcp","website":null,"version":"1.3.6","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"uniprot-mcp-server","version":"1.3.6","runtimeHint":"uvx","transport":{"type":"stdio"}}],"tools":[{"name":"uniprot_batch_entries","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_compute_properties","description":"Derived sequence chemistry for a UniProt entry: molecular weight, theoretical pI, GRAVY hydrophobicity, aromaticity, net charge at pH 7, extinction coefficient at 280 nm, amino-acid composition. Computed from the canonical FASTA via standard methods (Lehninger pK values, Kyte-Doolittle hydropathy, Pace 1995 ε₂₈₀ formula). Pure-Python — no additional external API call beyond the FASTA fetch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_features_at_position","description":"List every UniProt feature that overlaps a residue position (1-indexed). Answers the question 'what's at residue 175 of TP53?' by intersecting the entry's features with the given position. Useful for variant-effect interpretation — surfaces every domain, binding site, modification, mutagenesis annotation, and natural variant at a single residue in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_active_sites","description":"Return the active sites, binding sites, metal-binding residues, and DNA-binding regions annotated on a UniProt entry. Filtered view over the entry's feature array — this is the residue-level chemistry of the protein, the input to enzyme drug-design and antibiotic target-validation workflows.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_alphafold_confidence","description":"Fetch the per-residue confidence (pLDDT) summary for an entry's AlphaFold model, not just its existence. Returns the global mean pLDDT score plus the four-band distribution (very high ≥ 90 / confident 70-90 / low 50-70 / very low < 50) so the agent can decide whether to trust the model: 95% 'very high' is publication-grade, 40% 'very low' is largely disordered and structural inference is unsafe. C","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_citation","description":"Fetch a UniProt citation record by ID (typically a PubMed ID, e.g. 9840937). Returns title, authors, journal, year, volume, pages, and cross-references.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_cross_refs","description":"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``, ``uni","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_disease_associations","description":"Structured disease associations for a UniProt entry. Returns the diseases recorded in DISEASE-type comments with name, acronym, UniProt disease ID, OMIM cross-reference, description, and the annotation note. Critical for clinical interpretation — distinguishes a UniProt-curated disease association (literature-anchored) from a raw cross-reference. Empty result does not imply disease-irrelevant; see","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_entry","description":"Fetch a UniProt protein entry by accession (e.g. P04637 for p53, P38398 for BRCA1). Returns function, gene, organism, disease associations, cross-references.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_evidence_summary","description":"Summarise and grade the ECO (Evidence and Conclusion Ontology) codes attached to a UniProt entry's annotations. Counts how many features and comments cite each evidence code, then classifies every occurrence as experimental (wet-lab, ECO:0000269), manual (curator-reviewed inference), or automatic (un-reviewed pipeline call) and collapses that into a single 0-100 evidence-confidence score with a hi","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_features","description":"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`` / ``u","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_go_terms","description":"Get GO annotations grouped by aspect.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_keyword","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_processing_features","description":"Return the maturation and processing features (signal peptide, propeptide, transit peptide, initiator methionine, chain, peptide). These describe how the translated polypeptide is cleaved and targeted into its mature form — essential for therapeutic-protein engineering and pathogen-secretion-system analysis. A pre-filtered view over ``uniprot_get_features``; for post-translational chemical modific","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_proteome","description":"Fetch a UniProt proteome by UP ID (e.g. UP000005640 = human reference). Returns organism, taxonomy lineage, protein count, gene count, BUSCO completeness score, annotation score, and component breakdown (chromosomes / contigs).","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_ptms","description":"Return the post-translational modification features (modified residues, glycosylation sites, lipidation sites, disulfide bonds, cross-links). PTMs are functionally critical: they switch enzymes on, target proteins for degradation, anchor them to membranes, and fold them via disulfides. A pre-filtered view over ``uniprot_get_features``; for cleavage/targeting features instead of chemical modificati","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_publications","description":"List the publications UniProt cites on an entry, with PubMed IDs, DOIs, titles, authors, journal, year, and the 'reference position' annotation (the experimental work each citation supports — e.g. 'CRYSTALLIZATION', 'PHOSPHORYLATION AT SER-15', 'INVOLVEMENT IN LI-FRAUMENI SYNDROME'). Pure composition over the entry's ``references`` block — no extra HTTP call beyond the entry fetch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_sequence","description":"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 FAST","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_subcellular_location","description":"Fetch a UniProt subcellular-location term by ID (e.g. SL-0039 Cell membrane, SL-0086 Cytoplasm, SL-0191 Nucleus). Returns name, definition, category, GO cross-refs, and the is-a / part-of hierarchy.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_uniparc","description":"Fetch a UniParc sequence-archive record by its known UPI. Returns sequence, MD5/CRC64 checksums, cross-reference counts, linked UniProtKB accessions, and the common-taxa list. UniParc is the non-redundant sequence archive — every protein sequence ever submitted to a major public database has exactly one UniParc record, making this the tool to use when a UniProtKB accession doesn't exist for a sequ","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_uniref","description":"Fetch a UniRef cluster by ID. Examples: UniRef100_P04637 (100 % identity, only exact-match members), UniRef90_P04637 (90 % identity), UniRef50_P04637 (50 %, broadest grouping). Returns representative member, member list, common taxon, last-updated date.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_get_variants","description":"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 v","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_id_mapping","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_lookup_variant","description":"Look up an HGVS-shorthand amino-acid change (e.g. ``R175H``, ``V600E``, ``R248*``) in the UniProt entry's natural-variant annotations. Returns the matching variant feature(s) including the UniProt-curated description (often a disease association). A null result here does NOT mean a variant is benign — UniProt only annotates literature-described variants; ClinVar / dbSNP carry population-level data","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_provenance_verify","description":"Re-fetch a previously recorded UniProt URL and verify it still returns the same release identifier and the same canonical response body (SHA-256). Pass the values from a prior response's provenance footer (`url`, `release`, `response_sha256`, `accept_header`); empty optional fields skip the corresponding check. Returns a verification report with explicit pass / drift / unreachable verdicts per che","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_replay_from_cache","description":"Read a previously-cached UniProt response without hitting the upstream. The local provenance cache is opt-in via the ``UNIPROT_MCP_CACHE_DIR`` environment variable; when unset, this tool always reports cache-disabled.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_resolve_alphafold","description":"Resolve the AlphaFoldDB cross-reference for a UniProt entry — typically one canonical model per accession. Includes a direct EBI viewer link.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_resolve_chembl","description":"Resolve ChEMBL drug-target cross-references for a UniProt entry. Returns the ChEMBL target IDs with EBI viewer links — empty if the protein has no documented bioactivity data in ChEMBL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_resolve_clinvar","description":"Look up ClinVar records for the gene encoded by a UniProt entry. First fetches the entry to extract the canonical gene symbol, then queries NCBI eutils ClinVar by gene (and optional protein-change filter, e.g. ``R175H``). Returns clinical-significance classification, review status, condition list (trait_set), molecular consequence, and the protein-change list per record.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_resolve_interpro","description":"List InterPro signatures (domain / family classifications) for a UniProt entry, with names extracted from the entry's cross-reference properties.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_resolve_orthology","description":"Group every orthology cross-reference in a UniProt entry by source database (KEGG / OMA / OrthoDB / eggNOG / HOGENOM / PhylomeDB / InParanoid / TreeFam / GeneTree / PAN-GO / PANTHER / OrthoInspector). Different databases use different inference methods; surfacing them side-by-side lets the agent reason about consensus when comparing orthologs across species. Pure-Python — no extra HTTP call beyond","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_resolve_pdb","description":"List every PDB structure cross-referenced from a UniProt entry, with method, resolution, and chain coverage. Faster than parsing the raw cross-references blob — returns a structured list typed for downstream analysis.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_search","description":"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 clau","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_search_citations","description":"Search the UniProt citations index (the literature UniProt references) by title, author, or year. Use this to find a citation's ID (typically a PubMed ID); once you have it, call ``uniprot_get_citation`` for the full record. For the publications attached to one specific protein entry, use ``uniprot_get_publications`` instead. Returns up to ``size`` matches, or an empty list if nothing matches. Exa","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_search_keywords","description":"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 acti","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_search_proteomes","description":"Search UniProt proteomes (whole-organism protein sets) by organism or proteome field. Use this to find a proteome's ``UP#########`` ID; once you have it, call ``uniprot_get_proteome`` for the full record (protein / gene counts, BUSCO completeness, component breakdown). Returns up to ``size`` matches, or an empty list if nothing matches. Examples: 'organism_id:9606' for human, 'proteome_type:1' for","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_search_subcellular_locations","description":"Search UniProt's controlled subcellular-location vocabulary (the ``SL-####`` terms) by name or definition. Use this to discover a location ID from a concept; once you have the ``SL-####`` ID, call ``uniprot_get_subcellular_location`` for its full record (definition, category, hierarchy, GO cross-references). Returns up to ``size`` matches, or an empty list if nothing matches. Examples: 'membrane',","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_search_uniparc","description":"Search the UniParc non-redundant sequence archive by taxonomy, source database, or other UniParc query fields — the entry point when you don't already have a UPI. Examples: 'taxonomy_id:9606' for human sequences, 'database:Ensembl' for Ensembl-derived entries. Once you have a UPI from the results, use ``uniprot_get_uniparc`` for the full record.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_search_uniref","description":"Search for UniRef clusters by content (not by a known cluster ID — for that, use ``uniprot_get_uniref`` directly). Example: query='kinase' identity_tier='90' returns the 90% clusters matching 'kinase'. Use a looser tier (50) to find broad homology groups, a tighter tier (100) to find near-identical sequence sets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_target_dossier","description":"One-call comprehensive characterisation of a UniProt entry, structured for drug-discovery / clinical workflows. Composes nine views over the same entry plus one FASTA fetch (so two upstream network calls, not nine):","write_action":false,"price_micros":0,"input_schema":null},{"name":"uniprot_taxonomy_search","description":"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 ra","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-20T16:17:24.442Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T16:17:24.419Z","components":{"code":{"score":25,"max":25,"notes":["8 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 10 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"uniprot-mcp-server","version":"1.3.6","found":true,"weeklyDownloads":89,"license":"Apache-2.0","dependencyCount":17,"publishedAt":"2026-09-03T21:12:02.471302Z","repositoryUrl":"https://github.com/smaniches/uniprot-mcp"}],"repo":{"found":true,"owner":"smaniches","repo":"uniprot-mcp","archived":false,"pushedAt":"2026-09-10T16:49:11Z","stars":3,"forks":0,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/14163467?v=4","ownerCreatedAt":"2015-09-07T13:47:39Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/14163467?v=4&s=128","source":"github"},"presence":{"stars":3,"forks":0,"downloadsWeek":89,"license":"Apache-2.0","lastPushAt":"2026-09-10T16:49:11.000Z","score":31}}}},"grade_history":[],"reviews":[]}