uniprot-mcp-server
Server Details
Protein research over UniProtKB: search by function, fetch curated records, map IDs, proteomes.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/uniprot-mcp-server
- GitHub Stars
- 2
- Server Listing
- @cyanheads/uniprot-mcp-server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 6 tools
Each tool maps to a distinct resource and action: search, full entry retrieval, sequence-only retrieval, proteome, taxonomy resolution, and identifier mapping. The one potential overlap (get_entry vs get_sequence) is explicitly resolved in the descriptions ('cheap sequence-only path — for the full functional record use uniprot_get_entry'). Cross-references at the end of each description ('chain results[].accession into uniprot_get_entry') further steer tool selection.
All six tools follow a uniform <server>_<verb>_<noun> pattern: get_entry, get_proteome, get_sequence, get_taxonomy, map_ids, search_proteins. The 'uniprot_' prefix and snake_case are applied consistently with no deviations.
Six tools form a tight, well-scoped surface for a read-only protein data API, with no redundant or filler tools. Batch capability is folded into get_entry rather than spawning extra tools, keeping the count lean.
The surface covers discovery (search), retrieval (entry, sequence, proteome), taxonomy resolution, and cross-database mapping — a full read-only lifecycle with clear chaining between tools. Minor gaps remain: no way to enumerate valid from_db/to_db values for the mapping service, and no UniParc or release-metadata lookup, though these are workaroundable.
Available Tools
6 toolsuniprot_get_entryuniprot-mcp-server: get entryARead-onlyIdempotentInspect
Fetch full curated UniProtKB entries by accession in one batch (up to 20). Each entry carries function, catalytic activity, cofactors, subcellular location, disease involvement, PTMs, natural variants, isoforms, domains, GO terms, keywords, and cross-references. Partial failures do not abort the batch — resolved entries land in succeeded[] and unknown or inactive (merged, demerged, deleted) accessions in failed[], where an inactive accession names its replacement or UniParc ID. Pass fields to trim the upstream projection. Initial responses exceeding 24,000 UTF-8 bytes across both output surfaces return kind: "outline": a single resolved record lists sections with byte sizes; a batch lists outlinedEntries in request order and retains failed[]. Re-call each outlined accession individually, e.g. accessions:["P04637"], for its full record or section outline, then add sections:["disease","variants"] to select sections. sections takes exactly one accession; trim a batch with fields instead. All returned list items and cross-reference IDs render in full. A large list section pages with section_limit/section_offset on a re-call naming that one section. This tool does not search: accessions come from uniprot_search_proteins.results[].accession or uniprot_map_ids. Strip any isoform suffix (P04637-2 to P04637) before calling.
Inputs: accessions (required), fields, sections, section_limit, +1 more. Returns: cap, kind, error, shown, +10 more
uniprot_get_proteomeuniprot-mcp-server: get proteomeARead-onlyIdempotentInspect
Fetch the reference proteome for an organism by UPID (e.g. "UP000005640") or NCBI taxon ID (e.g. 9606) — provide exactly one. Returns metadata inline: proteome type, total protein count, BUSCO completeness (score, complete/fragmented/missing counts, lineage dataset), and the genome assembly accession. The protein set is opt-in via include_proteins (it is large — human is ~147,506) and returns a capped page with a forward cursor; narrow it with the query filter (UniProtKB Lucene syntax) for a subset. Resolve an organism name to a taxon ID first with uniprot_get_taxonomy.
Inputs: size, upid, query, cursor, +2 more. Returns: cap, error, query, shown, +6 more
uniprot_get_sequenceuniprot-mcp-server: get sequenceARead-onlyIdempotentInspect
Fetch the canonical amino-acid sequence (FASTA) for a UniProtKB accession, with length and the parsed header. Set include_isoforms to also return the alternatively-spliced isoform sequences. This is the cheap sequence-only path — for the full functional record use uniprot_get_entry. A merged accession returns the sequences of its merge target, labelled with the target accession and the requested one in mergedFrom; a demerged or deleted accession fails not_found naming its replacements or UniParc ID. Accessions come from uniprot_search_proteins or uniprot_map_ids; strip any "-N" isoform suffix (P04637-2 to P04637) before calling.
Inputs: accession (required), include_isoforms. Returns: error, isoforms, accession, canonical, +1 more
uniprot_get_taxonomyuniprot-mcp-server: get taxonomyARead-onlyIdempotentInspect
Resolve a taxonomy record by NCBI taxon ID (e.g. 9606) or organism name (e.g. "Homo sapiens" or "human") — provide exactly one. Exact case-insensitive scientific names take priority, then common names, mnemonic and aliases; stray double quotes and backslashes are tolerated after exact matching. Ties and partial matches return candidate taxon IDs instead of guessing. Returns the scientific and common name, mnemonic, rank, parent, and full lineage. Set include_children for immediate child taxa in pages of 100; pass the returned cursor for the next page. Use the resolved taxon ID with uniprot_search_proteins (organism_id) or uniprot_get_proteome (taxon_id).
Inputs: name, cursor, taxon_id, include_children. Returns: cap, error, shown, taxon, +7 more
uniprot_map_idsuniprot-mcp-server: map IDsARead-onlyIdempotentInspect
Translate identifiers across databases via UniProt's ID-mapping service — gene names to accessions, accession to PDB / Ensembl / RefSeq / ChEMBL / GeneID, and back. The job runs asynchronously; this tool submits it and polls within a budget. A running job returns status "running" with a ticket; pass that ticket alone to poll the same job. A completed call returns status "finished" with one results page; when continuation is present, pass it alone to fetch the next completed page without re-submitting or polling the job. A gene name often maps to one reviewed Swiss-Prot accession plus dozens of unreviewed TrEMBL ones, so target UniProtKB-Swiss-Prot (reviewed only) for the usual intent, or UniProtKB to include TrEMBL. Pair a gene-symbol from_db with tax_id to disambiguate species. A row whose UniProtKB target is inactive (merged, demerged, or deleted) carries an inactive marker naming its replacements. Chain the resulting active accessions into uniprot_get_entry.
Inputs: ids, to_db, tax_id, ticket, +2 more. Returns: error, notice, status, ticket, +5 more
uniprot_search_proteinsuniprot-mcp-server: search proteinsARead-onlyIdempotentInspect
Search UniProtKB and return curated protein records. Pass text_search for a plain-language query (the 80% case) or query for the full Lucene field syntax (gene:TP53 AND organism_id:9606 AND reviewed:true) — exactly one is required. Reviewed (Swiss-Prot) entries are manually curated; unreviewed (TrEMBL) are computationally predicted and ~30x more numerous, so reviewed defaults to true to avoid drowning in predictions — set it false to search both tiers together (for TrEMBL only, put reviewed:false in query). The organism_id and reviewed filters apply to the whole query. Request facets (e.g. reviewed, model_organism) for server-side count breakdowns. Results page forward with an opaque cursor; UniProtKB has no offset paging. An inactive accession the query matches (merged, demerged, or deleted) comes back in inactive[] with the accessions that replace it, never as a result. This is the discovery entry point — chain results[].accession into uniprot_get_entry for full records, or uniprot_get_sequence for FASTA.
Inputs: size, query, cursor, facets, +4 more. Returns: error, cursor, facets, notice, +4 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
UniProt protein data: find proteins, map genes to proteins, function and disease links
UniProt MCP — protein sequence + function database.
Search InterPro entries, map domains onto proteins and PDB structures, and scan raw sequences.
Query STRING interactions, enrichment, annotations, homology, and PPI networks.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides seamless access to UniProtKB protein database, enabling queries for protein entries, sequences, Gene Ontology annotations, full-text search, and ID mapping across 200+ database types.530 PyPI2MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to UniProt protein sequence and function knowledge base, enabling search and retrieval of protein entries, proteomes, taxonomy, and feature annotations.308 npmMIT
- AlicenseBqualityDmaintenanceProvides seamless access to UniProtKB protein data, enabling querying of protein entries, sequences, Gene Ontology annotations, and ID mappings through a typed, resilient interface.5MIT
- AlicenseCqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server providing advanced access to the UniProt protein database.2621MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.