uniprot-mcp-server
Server Details
Protein research over UniProtKB: search by function, fetch curated records, map IDs, proteomes.
- Status
- Healthy
- Uptime
- 99.9% over 60 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/uniprot-mcp-server
- GitHub Stars
- 2
- Server Listing
- @cyanheads/uniprot-mcp-server
TDQS
Scored across 6 tools
Each tool has a distinct resource+action: entry retrieval, sequence-only retrieval, search/discovery, ID mapping, taxonomy resolution, and proteome retrieval. The one potential overlap (get_entry vs get_sequence, both accession-based) is explicitly disambiguated in the descriptions ('cheap sequence-only path — for the full functional record use uniprot_get_entry'). Roles also cross-reference cleanly (search feeds accessions into get_entry/get_sequence).
All six names share the uniprot_ prefix followed by a consistent verb_noun pattern (get_entry, get_proteome, get_sequence, get_taxonomy, map_ids, search_proteins). No mixing of camelCase/snake_case or competing verb styles. Fully predictable.
Six tools is well-scoped for a UniProt data-retrieval server, covering the essential axis of discovery (search), retrieval (entry, sequence, proteome), resolution (taxonomy), and translation (map_ids). No redundant or filler tools, each earns its place.
The read-only surface is strong: search → fetch full/sequence → map IDs → resolve organism → proteome all chain together with no obvious dead ends, and edge cases (merged/deleted accessions, paging, oversized records) are handled. Minor gaps exist (e.g. no dedicated structure/feature or proteome-listing query beyond get_proteome), but core workflows are covered.
Available Tools
6 toolsuniprot_get_entryuniprot-mcp-server: get entryRead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated UniProtKB field names to project, e.g. "accession,gene_names,cc_function,ft_variant". Omit for the full curated default set. Use this on the initial call to trim payload. | |
| sections | No | Only used to re-call one accession after a kind: "outline" response — pass a subset of the outlined section keys to fetch just those sections. Requires exactly one accession: a batch with sections is rejected, so trim a batch with fields. A requested section the record lacks is named in absentSections, not an error. Do not pass on the initial call. | |
| accessions | Yes | Accessions to fetch (1–20). From uniprot_search_proteins or uniprot_map_ids. | |
| section_limit | No | Window size for one list section on a sections re-call: return at most this many items of it (1–500). Requires sections naming exactly one list section, e.g. ["variants"] (or ptms, domains, goTerms). Omit together with section_offset to return the whole section. | |
| section_offset | No | Zero-based index of the first item in the windowed section. Defaults to 0. Pass the previous response's nextOffset to page forward. Same requirements as section_limit; set without section_limit, returns every item from this index on. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The section_limit applied. Present when truncated. |
| kind | No | Result kind. "full": read succeeded[] and failed[]. "outline": the complete inline result exceeded 24,000 UTF-8 bytes; read outlinedEntries for a batch or sections for a single record, and re-call one accession individually. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Items in the returned window. Present when truncated. |
| failed | No | Accessions that did not resolve to an active entry — unknown to UniProtKB, or inactive (merged, demerged, or deleted). Retained on batch outlines as well as full results. |
| notice | No | Re-call guidance. On a single-record outline: re-call that accession with sections:[...] to pull specific sections. On a batch outline: re-call each outlined accession individually with accessions:[accession]. On a section window: the section_offset that pages the rest, or why the window came back empty. |
| window | No | The window applied to succeeded[0]'s one requested section. Present only when section_limit or section_offset was set; totalCount and nextOffset place it in the full section. |
| sections | No | Section outline for a single fully resolved accession whose inline result exceeds the budget. Absent on batch outlines, which return outlinedEntries instead. |
| succeeded | No | Entries that resolved successfully. Present when kind is "full". |
| truncated | No | True when items remain past the returned window. Absent on the final window. |
| nextOffset | No | section_offset for the next window (same section_limit). Present while items remain. |
| totalCount | No | Items in the windowed section before section_limit/section_offset applied. Present on every windowed call; 0 when the record lacks the section. |
| absentSections | No | Requested section keys this record does not carry — UniProt holds no annotation of that kind for it, or fields excluded it. Not an error: the other requested sections are returned. Present only on a sections re-call that named one. |
| outlinedEntries | No | Successful entries omitted when the aggregate inline result exceeds 24,000 UTF-8 bytes, in request order. Re-call each accession individually for its full record or section outline. |
uniprot_get_proteomeuniprot-mcp-server: get proteomeRead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Proteins per page when include_proteins is true (max 500). Omit for the server default. | |
| upid | No | Proteome UPID. Provide this OR taxon_id, not both. | |
| query | No | Optional UniProtKB Lucene filter to narrow the protein list, e.g. "reviewed:true AND keyword:KW-0067". Only applies when include_proteins is true. | |
| cursor | No | Opaque cursor from this tool for the same resolved UPID and exact query. Identifier aliases resolving to that UPID and size changes are allowed. Older raw cursors are rejected; restart without cursor. Only meaningful with include_proteins. | |
| taxon_id | No | NCBI taxon ID, e.g. 9606 for human. Resolves to the reference proteome. Provide this OR upid, not both. | |
| include_proteins | No | When true, also return a capped, cursor-paginated page of the proteome's proteins. Defaults to false — metadata alone is the common case. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The page-size cap that was applied. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of proteins returned in this page. |
| cursor | No | Forward cursor for the next protein page. Absent on the last page. |
| notice | No | Truncation guidance when the protein page was capped — how to reach the rest (walk the cursor or narrow with the query filter). |
| proteins | No | A capped page of the proteome's proteins. Present only when include_proteins is true. |
| proteome | No | Proteome metadata. |
| truncated | No | True when the protein page hit the size cap — more remain via cursor. |
| totalProteinsMatched | No | Total proteins matching the (optionally filtered) proteome query. |
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.
| Name | Required | Description | Default |
|---|---|---|---|
| accession | Yes | UniProtKB primary accession, e.g. "P04637". Canonical form only — strip any "-N" isoform suffix. | |
| include_isoforms | No | When true, also return the isoform sequences. Defaults to false (canonical only). |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| isoforms | No | Isoform sequence records. Present only when include_isoforms is true and isoforms exist. |
| accession | No | The accession whose sequences are returned — the requested one, or its merge target when mergedFrom is present. |
| canonical | No | The canonical sequence record. |
| mergedFrom | No | The requested accession, present only when UniProt merged it into accession; every record here is the merge target. Omitted for an active accession. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, openWorld), and the description goes well beyond by disclosing edge-case behavior annotations cannot express: merged accessions resolve to the merge target and are labelled in mergedFrom, while demerged/deleted accessions fail with not_found naming replacements or a UniParc ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, zero filler, and the primary action plus return payload are front-loaded before the alternative-tool routing and the edge cases. Every sentence carries operational information (return shape, sibling routing, merge semantics, accession preparation).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema covering the return shape, the description supplies everything else an agent needs: which tool to prefer, where accessions come from, how to normalize them, and what happens on merged, demerged, or deleted accessions. Nothing material is left for the agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description adds value by explaining why include_isoforms exists (alternatively-spliced sequences) and restating the accession normalization rule in context. It stops short of adding format or syntax detail beyond the schema and the example it already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('fetch the canonical amino-acid sequence (FASTA) for a UniProtKB accession') with the exact scope and return payload. It explicitly distinguishes itself from the sibling uniprot_get_entry, so an agent can separate the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative ('for the full functional record use uniprot_get_entry') and the condition selecting it, and tells the agent where accessions originate (uniprot_search_proteins, uniprot_map_ids). It also gives a concrete pre-call normalization rule (strip '-N' isoform suffixes) with an example.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uniprot_get_taxonomyuniprot-mcp-server: get taxonomyARead-onlyIdempotentInspect
Resolve a taxonomy record by NCBI taxon ID (e.g. 9606) or scientific name (e.g. "Homo sapiens") — provide exactly one. Returns the scientific and common name, mnemonic, rank, parent, and the full lineage. Set include_children to also fetch immediate child taxa (a separate lookup — not inline on the record) in pages of 100 with the total child count; when more remain, pass the returned cursor to fetch the next page. Use this to turn an organism name into the taxon ID that uniprot_search_proteins (organism_id) and uniprot_get_proteome (taxon_id) expect.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Organism scientific name, e.g. "Homo sapiens". Provide this OR taxon_id, not both. Matched against the scientific name. | |
| cursor | No | Forward-pagination cursor from a prior children page, for the next page of the same taxon; a cursor issued for another taxon is rejected. Only meaningful with include_children. | |
| taxon_id | No | NCBI taxonomy ID, e.g. 9606. Provide this OR name, not both. | |
| include_children | No | When true, also fetch a page of up to 100 immediate child taxa via a follow-up search. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The page size that was applied, when more remain. |
| error | No | Present when the call failed. Absent on success. |
| shown | No | Number of children on this page, when more remain. |
| taxon | No | The taxonomy record. |
| cursor | No | Forward cursor for the next children page. Absent on the last page. |
| notice | No | Paging guidance when more children remain — the total and how to continue. |
| lineage | No | Full lineage from root to the taxon's near ancestor. |
| children | No | One page of immediate children (up to 100). Present only when include_children is true. |
| truncated | No | True when more children remain past this page — fetch them with cursor. |
| childCount | No | Number of immediate children on this page (when include_children is true). |
| totalChildren | No | Total immediate children of the taxon across all pages (when include_children is true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, openWorld), and the description adds genuinely non-obvious behavior: children are fetched via a separate follow-up lookup rather than inline, results are paged at 100 with a total count, and a cursor is scoped to its originating taxon. It stops short of describing failure modes for an unmatched name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: identifier forms first, then child-fetch paging, then the cross-tool routing. Every sentence carries information; only the return-field enumeration is arguably redundant given the output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All four parameters, the mutual-exclusion rule, the child-pagination flow, and downstream usage are covered, and an output schema is present so return values need not be re-explained. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: 'provide exactly one' of name/taxon_id even though the schema marks nothing required, and it clarifies the pagination contract for cursor/include_children.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource ('Resolve a taxonomy record') with the two accepted identifier forms spelled out and examples given. It is unambiguously distinct from siblings like uniprot_get_entry or uniprot_search_proteins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Ends with an explicit routing statement: use this to convert an organism name into the taxon ID that uniprot_search_proteins (organism_id) and uniprot_get_proteome (taxon_id) expect. It also states the 'provide exactly one' precondition, so both when-to-use and constraints are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uniprot_map_idsuniprot-mcp-server: map IDsRead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Identifiers to translate. Required only when submitting a new mapping job; omitted when resuming with a ticket or continuation. | |
| to_db | No | Target database. UniProtKB-Swiss-Prot = reviewed accessions only (the usual intent); UniProtKB also includes unreviewed TrEMBL. Required only when submitting a new mapping job; omitted when resuming with a ticket or continuation. | |
| tax_id | No | NCBI taxon ID to disambiguate ambiguous source IDs (e.g. a gene symbol across species). Recommended with Gene_Name; e.g. 9606 for human. | |
| ticket | No | Running-job ticket from a prior status "running" response. Pass it alone to poll that job; do not combine it with continuation or submission inputs. | |
| from_db | No | Source database. Gene_Name = HGNC symbol (pair with tax_id); UniProtKB_AC-ID = accession or entry name; Ensembl/Ensembl_Protein = ENSG/ENSP; PDB; RefSeq_Nucleotide/RefSeq_Protein = NM_/NP_; ChEMBL; GeneID = NCBI Gene. Required only when submitting a new mapping job; omitted when resuming with a ticket or continuation. | |
| continuation | No | Completed-page continuation from a prior status "finished" response. Pass it alone to fetch the next page without polling or re-submitting. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| notice | No | Status guidance — e.g. that the job is still running, that no IDs mapped, or that inactive targets could not be marked on this page. |
| status | No | Job state: "finished" (one completed results page included) or "running" (poll with ticket). |
| ticket | No | Running-job ticket (present only when status is "running"). Pass it alone to poll the same job. |
| results | No | Resolved mappings on this completed page (present only when status is "finished"). Failed source IDs are reported in unmappedIds. |
| mappedCount | No | Number of resolved mappings (finished jobs only). |
| unmappedIds | No | Source IDs UniProt reported as failed on this completed page. Absent when none failed. |
| continuation | No | Next completed-page continuation (finished jobs only). Pass it alone to fetch the next page; absent on the terminal page. |
uniprot_search_proteinsuniprot-mcp-server: search proteinsRead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Number of hits per page (max 500). Omit for the server default. | |
| query | No | UniProtKB Lucene query with field prefixes — gene, organism_id, keyword (KW-xxxx), go (GO id), reviewed, protein_name, family, length, existence, accession. Example: "gene:BRCA1 AND organism_id:9606 AND reviewed:true". Provide this OR text_search, not both. | |
| cursor | No | Opaque forward cursor from this tool for the same exact effective query and filters. Size, fields, and facets may change. Older raw cursors are rejected; restart without cursor. Random access to page N is not supported. | |
| facets | No | Comma-separated upstream facet names for count breakdowns, e.g. "reviewed,model_organism,proteins_with". Returns a facets array alongside the hits. | |
| fields | No | Comma-separated UniProtKB field names to project, e.g. "accession,gene_names,cc_function". Omit for a sensible default set covering name, gene, organism, length, reviewed, score, and a function snippet. | |
| reviewed | No | Restrict to reviewed Swiss-Prot entries. Defaults to true (curated only). false applies no tier filter, returning reviewed and unreviewed TrEMBL entries together; for TrEMBL only, put reviewed:false in query. Ignored when query or text_search already contains a reviewed: clause. | |
| organism_id | No | Restrict to an NCBI taxon ID, e.g. 9606 for human. A convenience filter ANDed onto the whole query; resolve names with uniprot_get_taxonomy. | |
| text_search | No | Plain-language search across protein names, gene names, and function, e.g. "kinase apoptosis". Provide this OR query, not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| cursor | No | Forward cursor for the next page. Absent on the last page. |
| facets | No | Upstream facet count breakdowns. Present only when facets were requested. |
| notice | No | Guidance when nothing matched — echoes the query and suggests how to broaden. |
| results | No | Matching active protein hits for this page. Inactive accessions are in inactive. |
| inactive | No | Matching accessions that are inactive in UniProtKB (merged, demerged, or deleted) — not proteins to read, but pointers to the accessions that replace them. Present only when the page held any. |
| totalResults | No | Total matches for the query before pagination (from the upstream result count), inactive accessions included. |
| effectiveQuery | No | The query as the server assembled and sent it to UniProtKB. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Changed
uniprot_get_entry5 fields changed- changed
Output schema / properties / failed / descriptionPrevious value: -"Accessions that were well-formed but did not resolve to an active entry — unknown to UniProtKB, or inactive (merged, demerged, or deleted). Present when kind is \"full\"."New value: +"Accessions that did not resolve to an active entry — unknown to UniProtKB, or inactive (merged, demerged, or deleted). Retained on batch outlines as well as full results." - changed
Output schema / properties / kind / descriptionPrevious value: -"Result kind. \"full\": the batch resolved — read succeeded[] and failed[]. \"outline\": a single record exceeded the context budget and is returned as a section listing — re-call the same accession with sections:[...] to pull specific sections."New value: +"Result kind. \"full\": read succeeded[] and failed[]. \"outline\": the complete inline result exceeded 24,000 UTF-8 bytes; read outlinedEntries for a batch or sections for a single record, and re-call one accession individually." - changed
Output schema / properties / notice / descriptionPrevious value: -"Re-call guidance. On kind \"outline\": re-call the same accession with sections:[...] to pull specific sections. On a section window: the section_offset that pages the rest, or why the window came back empty."New value: +"Re-call guidance. On a single-record outline: re-call that accession with sections:[...] to pull specific sections. On a batch outline: re-call each outlined accession individually with accessions:[accession]. On a section window: the section_offset that pages the rest, or why the window came back empty." - added
Output schema / properties / outlinedEntriesAdded value: +{ + "description": "Successful entries omitted when the aggregate inline result exceeds 24,000 UTF-8 bytes, in request order. Re-call each accession individually for its full record or section outline.", + "items": { + "additionalProperties": false, + "description": "An omitted successful entry and its size.", + "properties": { + "accession": { + "description": "Accession to re-call individually with accessions:[accession].", + "type": "string" + }, + "bytes": { + "description": "UTF-8 serialized bytes of this entry before outlining.", + "type": "number" + } + }, + "required": [ + "accession", + "bytes" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / properties / sections / descriptionPrevious value: -"Section outline returned when a single record exceeds the context budget. Present when kind is \"outline\"."New value: +"Section outline for a single fully resolved accession whose inline result exceeds the budget. Absent on batch outlines, which return outlinedEntries instead."
- Changed
uniprot_get_proteome2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Forward-pagination cursor from a prior protein page. Only meaningful with include_proteins."New value: +"Opaque cursor from this tool for the same resolved UPID and exact query. Identifier aliases resolving to that UPID and size changes are allowed. Older raw cursors are rejected; restart without cursor. Only meaningful with include_proteins." - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `missing_identifier`: Neither upid nor taxon_id was provided. `conflicting_identifier`: Both upid and taxon_id were provided. `not_found`: The UPID or taxon has no reference proteome. `invalid_query`: The query filter has unbalanced parentheses (rejected before any request), or UniProtKB rejected it — the message names the rejected field or syntax. `invalid_cursor`: UniProt could not continue from the protein cursor (it answered HTTP 500) — the cursor is malformed or truncated. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_identifier`: Neither upid nor taxon_id was provided. `conflicting_identifier`: Both upid and taxon_id were provided. `not_found`: The UPID or taxon has no reference proteome. `invalid_query`: The query filter has unbalanced parentheses (rejected before any request), or UniProtKB rejected it — the message names the rejected field or syntax. `invalid_cursor`: The protein cursor is malformed, from an older version, belongs to another tool, resolved UPID or query, or UniProt could not continue from it (HTTP 500). Other values are possible when a failure originates below the handler."
- Changed
uniprot_map_ids1 field changed- changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `missing_inputs`: No complete submission, running-job ticket, or completed-page continuation was provided. `conflicting_inputs`: Submission inputs, a running-job ticket, or a completed-page continuation were combined. `unsupported_db_pair`: The from_db/to_db combination is not supported by the ID-mapping service. `invalid_ticket`: The resume ticket is not a UniProt job ID, or is unknown or has expired server-side (UniProt holds jobs only temporarily). `invalid_continuation`: The completed-page continuation does not carry a UniProt job ID, or refers to a result page that is unknown or expired. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_inputs`: No complete submission, running-job ticket, or completed-page continuation was provided. `conflicting_inputs`: Submission inputs, a running-job ticket, or a completed-page continuation were combined. `unsupported_db_pair`: The from_db/to_db combination is not supported by the ID-mapping service. `invalid_ticket`: The resume ticket is not a UniProt job ID, or is unknown or has expired server-side (UniProt holds jobs only temporarily). `invalid_continuation`: The completed-page continuation has an invalid job ID, is unknown or expired, or UniProt rejected the page with HTTP 400. Other values are possible when a failure originates below the handler."
- Changed
uniprot_search_proteins2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque forward-pagination cursor from a prior response. Walk pages with this; random access to page N is not supported."New value: +"Opaque forward cursor from this tool for the same exact effective query and filters. Size, fields, and facets may change. Older raw cursors are rejected; restart without cursor. Random access to page N is not supported." - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `missing_query`: Neither text_search nor query was provided. `conflicting_query`: Both text_search and query were provided. `invalid_query`: The query or text_search has unbalanced parentheses (rejected before any request), or UniProtKB rejected the query, text_search, fields, or facets value — the message names the rejected value. `invalid_cursor`: UniProt could not continue from the cursor (it answered HTTP 500) — the cursor is malformed or truncated. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_query`: Neither text_search nor query was provided. `conflicting_query`: Both text_search and query were provided. `invalid_query`: The query or text_search has unbalanced parentheses (rejected before any request), or UniProtKB rejected the query, text_search, fields, or facets value — the message names the rejected value. `invalid_cursor`: The cursor is malformed, from an older version, belongs to another tool or effective query, or UniProt could not continue from it (HTTP 500). Other values are possible when a failure originates below the handler."
6 tool updates
- Changed
uniprot_get_entry15 fields changed- added
Input schema / properties / section_limitAdded value: +{ + "description": "Window size for one list section on a sections re-call: return at most this many items of it (1–500). Requires sections naming exactly one list section, e.g. [\"variants\"] (or ptms, domains, goTerms). Omit together with section_offset to return the whole section.", + "maximum": 500, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / section_offsetAdded value: +{ + "description": "Zero-based index of the first item in the windowed section. Defaults to 0. Pass the previous response's nextOffset to page forward. Same requirements as section_limit; set without section_limit, returns every item from this index on.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +} - changed
Input schema / properties / sections / descriptionPrevious value: -"Only used to re-call after a kind: \"outline\" response — pass a subset of the outlined section keys to fetch just those sections. Do not pass on the initial call."New value: +"Only used to re-call one accession after a kind: \"outline\" response — pass a subset of the outlined section keys to fetch just those sections. Requires exactly one accession: a batch with sections is rejected, so trim a batch with fields. A requested section the record lacks is named in absentSections, not an error. Do not pass on the initial call." - added
Output schema / properties / absentSectionsAdded value: +{ + "description": "Requested section keys this record does not carry — UniProt holds no annotation of that kind for it, or fields excluded it. Not an error: the other requested sections are returned. Present only on a sections re-call that named one.", + "items": { + "description": "A requested section key the record does not carry.", + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / capAdded value: +{ + "description": "The section_limit applied. Present when truncated.", + "type": "number" +} - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `all_not_found`: Every accession in the batch was well-formed but unknown to UniProtKB. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `sections_single_accession`: sections was passed with more than one accession — rejected before any request. sections re-calls a single outlined record. `unknown_section`: sections named a key this tool never emits — rejected before any request. The message lists every valid key. `invalid_section_window`: section_limit or section_offset was set without sections naming exactly one list section — no sections, several, or a non-list section such as organism or xrefs. Rejected before any request. `all_not_found`: No accession in the batch resolved to an active entry — each was unknown to UniProtKB or inactive (merged, demerged, or deleted). The message names each inactive accession and its replacement. `invalid_fields`: UniProtKB rejected the fields value — the message relays UniProt naming the rejected field. Other values are possible when a failure originates below the handler." - changed
Output schema / properties / error / properties / data / properties / reason / examplesPrevious value: -[ - "all_not_found" -]New value: +[ + "sections_single_accession", + "unknown_section", + "invalid_section_window", + "all_not_found", + "invalid_fields" +] - changed
Output schema / properties / failed / descriptionPrevious value: -"Accessions that were well-formed but not found in UniProtKB. Present when kind is \"full\"."New value: +"Accessions that were well-formed but did not resolve to an active entry — unknown to UniProtKB, or inactive (merged, demerged, or deleted). Present when kind is \"full\"." - changed
Output schema / properties / failed / items / properties / error / descriptionPrevious value: -"Why it failed and how to recover."New value: +"Why it failed and how to recover. For an inactive accession: the merge target to retry with, the demerge products to choose among, or the UniParc ID that keeps a deleted sequence." - added
Output schema / properties / nextOffsetAdded value: +{ + "description": "section_offset for the next window (same section_limit). Present while items remain.", + "type": "number" +} - changed
Output schema / properties / notice / descriptionPrevious value: -"Re-call guidance when kind is \"outline\" — re-call the same accession with sections:[...] to pull specific sections."New value: +"Re-call guidance. On kind \"outline\": re-call the same accession with sections:[...] to pull specific sections. On a section window: the section_offset that pages the rest, or why the window came back empty." - added
Output schema / properties / shownAdded value: +{ + "description": "Items in the returned window. Present when truncated.", + "type": "number" +} - added
Output schema / properties / totalCountAdded value: +{ + "description": "Items in the windowed section before section_limit/section_offset applied. Present on every windowed call; 0 when the record lacks the section.", + "type": "number" +} - added
Output schema / properties / truncatedAdded value: +{ + "description": "True when items remain past the returned window. Absent on the final window.", + "type": "boolean" +} - added
Output schema / properties / windowAdded value: +{ + "additionalProperties": false, + "description": "The window applied to succeeded[0]'s one requested section. Present only when section_limit or section_offset was set; totalCount and nextOffset place it in the full section.", + "properties": { + "offset": { + "description": "Index of the first returned item within the full section.", + "type": "number" + }, + "section": { + "description": "The section key section_limit/section_offset windowed.", + "type": "string" + } + }, + "required": [ + "section", + "offset" + ], + "type": "object" +}
- Changed
uniprot_get_proteome2 fields changed- changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `missing_identifier`: Neither upid nor taxon_id was provided. `conflicting_identifier`: Both upid and taxon_id were provided. `not_found`: The UPID or taxon has no reference proteome. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_identifier`: Neither upid nor taxon_id was provided. `conflicting_identifier`: Both upid and taxon_id were provided. `not_found`: The UPID or taxon has no reference proteome. `invalid_query`: The query filter has unbalanced parentheses (rejected before any request), or UniProtKB rejected it — the message names the rejected field or syntax. `invalid_cursor`: UniProt could not continue from the protein cursor (it answered HTTP 500) — the cursor is malformed or truncated. Other values are possible when a failure originates below the handler." - changed
Output schema / properties / error / properties / data / properties / reason / examplesPrevious value: -[ - "missing_identifier", - "conflicting_identifier", - "not_found" -]New value: +[ + "missing_identifier", + "conflicting_identifier", + "not_found", + "invalid_query", + "invalid_cursor" +]
- Changed
uniprot_get_sequence3 fields changed- changed
Output schema / properties / accession / descriptionPrevious value: -"The accession that was fetched."New value: +"The accession whose sequences are returned — the requested one, or its merge target when mergedFrom is present." - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `not_found`: The accession has no sequence in UniProtKB. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `not_found`: The accession has no sequence in UniProtKB — unknown, or demerged or deleted; for an inactive accession the message names its replacements or UniParc ID. Other values are possible when a failure originates below the handler." - added
Output schema / properties / mergedFromAdded value: +{ + "description": "The requested accession, present only when UniProt merged it into accession; every record here is the merge target. Omitted for an active accession.", + "type": "string" +}
- Changed
uniprot_get_taxonomy12 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Forward-pagination cursor from a prior children page, for the next page of the same taxon; a cursor issued for another taxon is rejected. Only meaningful with include_children.", + "type": "string" +} - changed
Input schema / properties / include_children / descriptionPrevious value: -"When true, also fetch the immediate child taxa via a follow-up search. Defaults to false."New value: +"When true, also fetch a page of up to 100 immediate child taxa via a follow-up search. Defaults to false." - added
Output schema / properties / capAdded value: +{ + "description": "The page size that was applied, when more remain.", + "type": "number" +} - changed
Output schema / properties / childCount / descriptionPrevious value: -"Number of immediate children returned (when include_children is true)."New value: +"Number of immediate children on this page (when include_children is true)." - changed
Output schema / properties / children / descriptionPrevious value: -"Immediate children. Present only when include_children is true."New value: +"One page of immediate children (up to 100). Present only when include_children is true." - added
Output schema / properties / cursorAdded value: +{ + "description": "Forward cursor for the next children page. Absent on the last page.", + "type": "string" +} - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `missing_identifier`: Neither taxon_id nor name was provided. `conflicting_identifier`: Both taxon_id and name were provided. `not_found`: The taxon ID or name did not resolve to a record. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_identifier`: Neither taxon_id nor name was provided. `conflicting_identifier`: Both taxon_id and name were provided. `not_found`: The taxon ID or name did not resolve to a record. `invalid_cursor`: The cursor was issued for another taxon, is malformed, or UniProt could not continue from it. Other values are possible when a failure originates below the handler." - changed
Output schema / properties / error / properties / data / properties / reason / examplesPrevious value: -[ - "missing_identifier", - "conflicting_identifier", - "not_found" -]New value: +[ + "missing_identifier", + "conflicting_identifier", + "not_found", + "invalid_cursor" +] - added
Output schema / properties / noticeAdded value: +{ + "description": "Paging guidance when more children remain — the total and how to continue.", + "type": "string" +} - added
Output schema / properties / shownAdded value: +{ + "description": "Number of children on this page, when more remain.", + "type": "number" +} - added
Output schema / properties / totalChildrenAdded value: +{ + "description": "Total immediate children of the taxon across all pages (when include_children is true).", + "type": "number" +} - added
Output schema / properties / truncatedAdded value: +{ + "description": "True when more children remain past this page — fetch them with cursor.", + "type": "boolean" +}
- Changed
uniprot_map_ids5 fields changed- changed
Input schema / properties / to_db / descriptionPrevious value: -"Target database. UniProtKB-Swiss-Prot = reviewed accessions only (the usual intent); UniProtKB / UniProtKB_AC-ID also include unreviewed TrEMBL. Required only when submitting a new mapping job; omitted when resuming with a ticket or continuation."New value: +"Target database. UniProtKB-Swiss-Prot = reviewed accessions only (the usual intent); UniProtKB also includes unreviewed TrEMBL. Required only when submitting a new mapping job; omitted when resuming with a ticket or continuation." - changed
Input schema / properties / to_db / enumPrevious value: -[ - "UniProtKB", - "UniProtKB-Swiss-Prot", - "UniProtKB_AC-ID", - "Gene_Name", - "GeneID", - "Ensembl", - "Ensembl_Protein", - "PDB", - "RefSeq_Nucleotide", - "RefSeq_Protein", - "ChEMBL", - "PomBase", - "WormBase_Protein" -]New value: +[ + "UniProtKB", + "UniProtKB-Swiss-Prot", + "Gene_Name", + "GeneID", + "Ensembl", + "Ensembl_Protein", + "PDB", + "RefSeq_Nucleotide", + "RefSeq_Protein", + "ChEMBL", + "PomBase", + "WormBase_Protein" +] - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `missing_inputs`: No complete submission, running-job ticket, or completed-page continuation was provided. `conflicting_inputs`: Submission inputs, a running-job ticket, or a completed-page continuation were combined. `unsupported_db_pair`: The from_db/to_db combination is not supported by the ID-mapping service. `invalid_ticket`: The resume ticket is unknown or has expired server-side (UniProt holds jobs only temporarily). `invalid_continuation`: The completed-page continuation refers to a result page that is unknown or expired. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_inputs`: No complete submission, running-job ticket, or completed-page continuation was provided. `conflicting_inputs`: Submission inputs, a running-job ticket, or a completed-page continuation were combined. `unsupported_db_pair`: The from_db/to_db combination is not supported by the ID-mapping service. `invalid_ticket`: The resume ticket is not a UniProt job ID, or is unknown or has expired server-side (UniProt holds jobs only temporarily). `invalid_continuation`: The completed-page continuation does not carry a UniProt job ID, or refers to a result page that is unknown or expired. Other values are possible when a failure originates below the handler." - changed
Output schema / properties / notice / descriptionPrevious value: -"Status guidance — e.g. that the job is still running, or that no IDs mapped."New value: +"Status guidance — e.g. that the job is still running, that no IDs mapped, or that inactive targets could not be marked on this page." - added
Output schema / properties / results / items / properties / inactiveAdded value: +{ + "additionalProperties": false, + "description": "Present only when the target accession is inactive in UniProtKB — it has no entry to fetch; use replacedBy or uniParcId instead. Absent for an active target.", + "properties": { + "deletedReason": { + "description": "Why UniProt deleted the target, when it says. Present on DELETED only.", + "type": "string" + }, + "reason": { + "description": "UniProt inactiveReasonType: MERGED, DEMERGED, or DELETED. Omitted when UniProt names none.", + "type": "string" + }, + "replacedBy": { + "description": "Accessions that replace the target — the merge target (MERGED) or the demerge products (DEMERGED).", + "items": { + "description": "A replacement UniProtKB accession.", + "type": "string" + }, + "type": "array" + }, + "uniParcId": { + "description": "UniParc ID that still holds the sequence, when UniProt gives one.", + "type": "string" + } + }, + "type": "object" +}
- Changed
uniprot_search_proteins7 fields changed- changed
Input schema / properties / organism_id / descriptionPrevious value: -"Restrict to an NCBI taxon ID, e.g. 9606 for human. A convenience filter ANDed onto the query; resolve names with uniprot_get_taxonomy."New value: +"Restrict to an NCBI taxon ID, e.g. 9606 for human. A convenience filter ANDed onto the whole query; resolve names with uniprot_get_taxonomy." - changed
Input schema / properties / reviewed / descriptionPrevious value: -"Restrict to reviewed Swiss-Prot entries. Defaults to true (curated only); set false to include unreviewed TrEMBL. Ignored when query already pins a reviewed: clause."New value: +"Restrict to reviewed Swiss-Prot entries. Defaults to true (curated only). false applies no tier filter, returning reviewed and unreviewed TrEMBL entries together; for TrEMBL only, put reviewed:false in query. Ignored when query or text_search already contains a reviewed: clause." - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `missing_query`: Neither text_search nor query was provided. `conflicting_query`: Both text_search and query were provided. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_query`: Neither text_search nor query was provided. `conflicting_query`: Both text_search and query were provided. `invalid_query`: The query or text_search has unbalanced parentheses (rejected before any request), or UniProtKB rejected the query, text_search, fields, or facets value — the message names the rejected value. `invalid_cursor`: UniProt could not continue from the cursor (it answered HTTP 500) — the cursor is malformed or truncated. Other values are possible when a failure originates below the handler." - changed
Output schema / properties / error / properties / data / properties / reason / examplesPrevious value: -[ - "missing_query", - "conflicting_query" -]New value: +[ + "missing_query", + "conflicting_query", + "invalid_query", + "invalid_cursor" +] - added
Output schema / properties / inactiveAdded value: +{ + "description": "Matching accessions that are inactive in UniProtKB (merged, demerged, or deleted) — not proteins to read, but pointers to the accessions that replace them. Present only when the page held any.", + "items": { + "additionalProperties": false, + "description": "An inactive accession the query matched, with where to go instead.", + "properties": { + "accession": { + "description": "The inactive UniProtKB accession the query matched.", + "type": "string" + }, + "deletedReason": { + "description": "Why UniProt deleted the entry, when it says. Present on DELETED only.", + "type": "string" + }, + "reason": { + "description": "UniProt inactiveReasonType: MERGED, DEMERGED, or DELETED. Omitted when UniProt names none.", + "type": "string" + }, + "replacedBy": { + "description": "Accessions that replace it — the merge target (MERGED) or the demerge products (DEMERGED). Look these up instead.", + "items": { + "description": "A replacement UniProtKB accession.", + "type": "string" + }, + "type": "array" + }, + "uniParcId": { + "description": "UniParc ID that still holds the sequence, when UniProt gives one.", + "type": "string" + } + }, + "required": [ + "accession" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / properties / results / descriptionPrevious value: -"Matching protein hits for this page."New value: +"Matching active protein hits for this page. Inactive accessions are in inactive." - changed
Output schema / properties / totalResults / descriptionPrevious value: -"Total matches for the query before pagination (from the upstream result count)."New value: +"Total matches for the query before pagination (from the upstream result count), inactive accessions included."
1 tool update
- Changed
uniprot_map_ids13 fields changed- added
Input schema / properties / continuationAdded value: +{ + "description": "Completed-page continuation from a prior status \"finished\" response. Pass it alone to fetch the next page without polling or re-submitting.", + "properties": { + "cursor": { + "description": "Opaque cursor for the next completed results page.", + "minLength": 1, + "type": "string" + }, + "jobId": { + "description": "UniProt ID-mapping job identifier for the completed job.", + "minLength": 1, + "type": "string" + } + }, + "required": [ + "jobId", + "cursor" + ], + "type": "object" +} - changed
Input schema / properties / from_db / descriptionPrevious value: -"Source database. Gene_Name = HGNC symbol (pair with tax_id); UniProtKB_AC-ID = accession or entry name; Ensembl/Ensembl_Protein = ENSG/ENSP; PDB; RefSeq_Nucleotide/RefSeq_Protein = NM_/NP_; ChEMBL; GeneID = NCBI Gene. Required unless resuming with a ticket."New value: +"Source database. Gene_Name = HGNC symbol (pair with tax_id); UniProtKB_AC-ID = accession or entry name; Ensembl/Ensembl_Protein = ENSG/ENSP; PDB; RefSeq_Nucleotide/RefSeq_Protein = NM_/NP_; ChEMBL; GeneID = NCBI Gene. Required only when submitting a new mapping job; omitted when resuming with a ticket or continuation." - changed
Input schema / properties / ids / descriptionPrevious value: -"Identifiers to translate. Required unless resuming with a ticket."New value: +"Identifiers to translate. Required only when submitting a new mapping job; omitted when resuming with a ticket or continuation." - changed
Input schema / properties / ticket / descriptionPrevious value: -"A ticket from a prior status \"running\" response. Pass this alone (no from_db/to_db/ids) to fetch the completed result."New value: +"Running-job ticket from a prior status \"running\" response. Pass it alone to poll that job; do not combine it with continuation or submission inputs." - added
Input schema / properties / ticket / minLengthAdded value: +1 - changed
Input schema / properties / to_db / descriptionPrevious value: -"Target database. UniProtKB-Swiss-Prot = reviewed accessions only (the usual intent); UniProtKB / UniProtKB_AC-ID also include unreviewed TrEMBL. Required unless resuming with a ticket."New value: +"Target database. UniProtKB-Swiss-Prot = reviewed accessions only (the usual intent); UniProtKB / UniProtKB_AC-ID also include unreviewed TrEMBL. Required only when submitting a new mapping job; omitted when resuming with a ticket or continuation." - added
Output schema / properties / continuationAdded value: +{ + "additionalProperties": false, + "description": "Next completed-page continuation (finished jobs only). Pass it alone to fetch the next page; absent on the terminal page.", + "properties": { + "cursor": { + "description": "Opaque cursor for the next completed results page.", + "minLength": 1, + "type": "string" + }, + "jobId": { + "description": "UniProt ID-mapping job identifier for the completed job.", + "minLength": 1, + "type": "string" + } + }, + "required": [ + "jobId", + "cursor" + ], + "type": "object" +} - changed
Output schema / properties / error / properties / data / properties / reason / descriptionPrevious value: -"Machine-readable failure mode. Declared by this tool: `missing_inputs`: Neither a ticket nor the full from_db/to_db/ids triple was provided. `unsupported_db_pair`: The from_db/to_db combination is not supported by the ID-mapping service. `invalid_ticket`: The resume ticket is unknown or has expired server-side (UniProt holds jobs only temporarily). Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_inputs`: No complete submission, running-job ticket, or completed-page continuation was provided. `conflicting_inputs`: Submission inputs, a running-job ticket, or a completed-page continuation were combined. `unsupported_db_pair`: The from_db/to_db combination is not supported by the ID-mapping service. `invalid_ticket`: The resume ticket is unknown or has expired server-side (UniProt holds jobs only temporarily). `invalid_continuation`: The completed-page continuation refers to a result page that is unknown or expired. Other values are possible when a failure originates below the handler." - changed
Output schema / properties / error / properties / data / properties / reason / examplesPrevious value: -[ - "missing_inputs", - "unsupported_db_pair", - "invalid_ticket" -]New value: +[ + "missing_inputs", + "conflicting_inputs", + "unsupported_db_pair", + "invalid_ticket", + "invalid_continuation" +] - changed
Output schema / properties / results / descriptionPrevious value: -"Resolved mappings (present when status is \"finished\"). A source ID with no mapping is simply absent."New value: +"Resolved mappings on this completed page (present only when status is \"finished\"). Failed source IDs are reported in unmappedIds." - changed
Output schema / properties / status / descriptionPrevious value: -"Job state: \"finished\" (results included) or \"running\" (re-call with the ticket)."New value: +"Job state: \"finished\" (one completed results page included) or \"running\" (poll with ticket)." - changed
Output schema / properties / ticket / descriptionPrevious value: -"Resumable job ticket (present when status is \"running\"). Re-call this tool with ticket set, and nothing else, to fetch the result."New value: +"Running-job ticket (present only when status is \"running\"). Pass it alone to poll the same job." - changed
Output schema / properties / unmappedIds / descriptionPrevious value: -"Input IDs with no mapping in the target database (finished jobs only). Absent when resuming or all mapped."New value: +"Source IDs UniProt reported as failed on this completed page. Absent when none failed."
6 tool updates
- First observed
uniprot_get_entry - First observed
uniprot_get_proteome - First observed
uniprot_get_sequence - First observed
uniprot_get_taxonomy - First observed
uniprot_map_ids - First observed
uniprot_search_proteins
Related MCP Connectors
UniProt MCP — protein sequence + function database.
Official STRING database MCP server. Query for protein-protein interactions, enrichment, annotations, homology, and PPI networks.
InterPro MCP (EBI) — protein family / domain / functional-site classification.
BindingDB — measured protein/small-molecule binding affinities.
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.521 PyPI2MIT
- AlicenseNot gradedqualityBmaintenanceProvides access to UniProt protein sequence and function knowledge base, enabling search and retrieval of protein entries, proteomes, taxonomy, and feature annotations.12 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.2620MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.