uniprot-mcp-server
Ce que fait ce MCP
Searches UniProtKB protein records, retrieves sequences and proteomes, resolves taxonomy, and maps identifiers across biological databases.
Outils
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['accessions'], 'properties': {'fields': {'type': 'string', 'description': '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': {'type': 'array', 'items': {'type': 'string', 'description': 'A section key from a prior outline response, e.g. "disease", "variants", "function", "xrefs".'}, 'description': 'Only used to re-call after a kind: "outline" response â\x80\x94 pass a subset of the outlined section keys to fetch just those sections. Do not pass on the initial call.'}, 'accessions': {'type': 'array', 'items': {'type': 'string', 'pattern': '^(?:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9](?:[A-Z][A-Z0-9]{2}[0-9]){1,2})$', 'description': 'A UniProtKB primary accession, e.g. "P04637". Canonical form only â\x80\x94 strip any "-N" isoform suffix.'}, 'maxItems': 20, 'minItems': 1, 'description': 'Accessions to fetch (1â\x80\x9320). From uniprot_search_proteins or uniprot_map_ids.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['kind']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'kind': {'enum': ['full', 'outline'], 'type': 'string', 'description': 'Result kind. "full": the batch resolved â\x80\x94 read succeeded[] and failed[]. "outline": a single record exceeded the context budget and is returned as a section listing â\x80\x94 re-call the same accession with sections:[...] to pull specific sections.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['all_not_found'], 'description': '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'failed': {'type': 'array', 'items': {'type': 'object', 'required': ['accession', 'error'], 'properties': {'error': {'type': 'string', 'description': 'Why it failed and how to recover.'}, 'accession': {'type': 'string', 'description': 'The requested accession that did not resolve.'}}, 'description': 'A per-accession failure.', 'additionalProperties': False}, 'description': 'Accessions that were well-formed but not found in UniProtKB. Present when kind is "full".'}, 'notice': {'type': 'string', 'description': 'Re-call guidance when kind is "outline" â\x80\x94 re-call the same accession with sections:[...] to pull specific sections.'}, 'sections': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'bytes'], 'properties': {'name': {'type': 'string', 'description': 'Section identifier â\x80\x94 pass a subset in sections:[...] to retrieve it.'}, 'bytes': {'type': 'number', 'description': 'Serialized byte size of the section.'}}, 'description': 'An outlined section with its serialized size.', 'additionalProperties': False}, 'description': 'Section outline returned when a single record exceeds the context budget. Present when kind is "outline".'}, 'succeeded': {'type': 'array', 'items': {'type': 'object', 'required': ['accession', 'entryName', 'genes', 'organism', 'length', 'reviewed', 'annotationScore', 'proteinExistence'], 'properties': {'ptms': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'location'], 'properties': {'type': {'type': 'string', 'description': 'Feature type, e.g. "Modified residue" or "Domain".'}, 'location': {'type': 'object', 'properties': {'end': {'type': 'number', 'description': 'End residue position. Omitted when not exact.'}, 'start': {'type': 'number', 'description': 'Start residue position. Omitted when not exact.'}}, 'description': 'Residue range of the feature.', 'additionalProperties': False}, 'featureId': {'type': 'string', 'description': 'Stable feature identifier, e.g. "VAR_066493". Omitted when none.'}, 'description': {'type': 'string', 'description': 'Free-text description of the feature. Omitted when absent.'}}, 'description': 'A sequence feature.', 'additionalProperties': False}, 'description': 'Post-translational modification features (modified residues, glycosylation, etc.). Absent when none.'}, 'genes': {'type': 'array', 'items': {'type': 'string', 'description': 'A gene name or synonym.'}, 'description': 'Gene names and synonyms.'}, 'xrefs': {'type': 'object', 'description': 'Cross-references grouped by database (PDB, Ensembl, RefSeq, ChEMBL, AlphaFoldDB). Chain a PDB id into protein-mcp-server, a ChEMBL id into chembl. Absent when none.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'array', 'items': {'type': 'string', 'description': 'A cross-reference identifier in that database.'}}}, 'length': {'type': 'number', 'description': 'Canonical sequence length in residues.'}, 'disease': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Disease name.'}, 'omimId': {'type': 'string', 'description': 'OMIM identifier. Omitted when none.'}, 'acronym': {'type': 'string', 'description': 'Disease acronym. Omitted when none.'}, 'diseaseId': {'type': 'string', 'description': 'UniProt disease accession, e.g. "DI-01537". Omitted when none.'}, 'description': {'type': 'string', 'description': 'Disease description. Omitted when none.'}}, 'description': 'A disease association.', 'additionalProperties': False}, 'description': 'Disease involvements (DISEASE comments). Absent when none.'}, 'domains': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'location'], 'properties': {'type': {'type': 'string', 'description': 'Feature type, e.g. "Modified residue" or "Domain".'}, 'location': {'type': 'object', 'properties': {'end': {'type': 'number', 'description': 'End residue position. Omitted when not exact.'}, 'start': {'type': 'number', 'description': 'Start residue position. Omitted when not exact.'}}, 'description': 'Residue range of the feature.', 'additionalProperties': False}, 'featureId': {'type': 'string', 'description': 'Stable feature identifier, e.g. "VAR_066493". Omitted when none.'}, 'description': {'type': 'string', 'description': 'Free-text description of the feature. Omitted when absent.'}}, 'description': 'A sequence feature.', 'additionalProperties': False}, 'description': 'Domain and region features. Absent when none.'}, 'goTerms': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'term', 'aspect'], 'properties': {'id': {'type': 'string', 'description': 'GO identifier, e.g. "GO:0006915".'}, 'term': {'type': 'string', 'description': 'GO term label, e.g. "apoptotic process".'}, 'aspect': {'type': 'string', 'description': 'GO aspect: P (process), F (function), or C (component).'}}, 'description': 'A Gene Ontology annotation.', 'additionalProperties': False}, 'description': 'GO annotations. Absent when none.'}, 'function': {'type': 'array', 'items': {'type': 'object', 'required': ['value'], 'properties': {'value': {'type': 'string', 'description': 'The annotated text.'}, 'evidence': {'type': 'array', 'items': {'type': 'string', 'description': 'A PubMed/source evidence reference, e.g. "PubMed:11025664".'}, 'description': 'Source evidence codes. Omitted when none are attached.'}}, 'description': 'An annotation with its source evidence preserved.', 'additionalProperties': False}, 'description': 'FUNCTION annotations. Absent on most TrEMBL entries.'}, 'isoforms': {'type': 'array', 'items': {'type': 'object', 'required': ['isoformId'], 'properties': {'name': {'type': 'string', 'description': 'Isoform name. Omitted when none.'}, 'isoformId': {'type': 'string', 'description': 'Isoform accession, e.g. "P04637-2".'}, 'sequenceStatus': {'type': 'string', 'description': 'Sequence status, e.g. "Displayed" or "Described". Omitted when none.'}}, 'description': 'An alternatively-spliced isoform.', 'additionalProperties': False}, 'description': 'Isoforms (ALTERNATIVE PRODUCTS). Absent when only one product.'}, 'keywords': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'description': 'Keyword identifier, e.g. "KW-0053".'}, 'name': {'type': 'string', 'description': 'Keyword name, e.g. "Apoptosis".'}, 'category': {'type': 'string', 'description': 'Keyword category. Omitted when none.'}}, 'description': 'A UniProt keyword.', 'additionalProperties': False}, 'description': 'UniProt keywords. Absent when none.'}, 'organism': {'type': 'object', 'required': ['scientificName', 'taxonId'], 'properties': {'taxonId': {'type': 'number', 'description': 'NCBI taxonomy ID.'}, 'mnemonic': {'type': 'string', 'description': 'Organism mnemonic, e.g. "HUMAN". Omitted when none.'}, 'commonName': {'type': 'string', 'description': 'Organism common name. Omitted when none.'}, 'scientificName': {'type': 'string', 'description': 'Organism scientific name.'}}, 'description': 'Source organism.', 'additionalProperties': False}, 'reviewed': {'type': 'boolean', 'description': 'True for reviewed Swiss-Prot, false for unreviewed TrEMBL.'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['location'], 'properties': {'location': {'type': 'object', 'properties': {'end': {'type': 'number', 'description': 'End residue position. Omitted when not exact.'}, 'start': {'type': 'number', 'description': 'Start residue position. Omitted when not exact.'}}, 'description': 'Residue range of the variant.', 'additionalProperties': False}, 'original': {'type': 'string', 'description': 'Original residue(s). Omitted when not a substitution.'}, 'featureId': {'type': 'string', 'description': 'Variant identifier, e.g. "VAR_066493". Omitted when none.'}, 'variation': {'type': 'string', 'description': 'Variant residue(s). Omitted when not a substitution.'}, 'description': {'type': 'string', 'description': 'Variant description. Omitted when none.'}}, 'description': 'A natural variant.', 'additionalProperties': False}, 'description': 'Natural variants (dbSNP/ClinVar-linked). Absent when none.'}, 'accession': {'type': 'string', 'description': 'UniProtKB primary accession.'}, 'cofactors': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Cofactor name, e.g. "Zn(2+)".'}, 'chebiId': {'type': 'string', 'description': 'ChEBI identifier. Omitted when none.'}}, 'description': 'A required cofactor.', 'additionalProperties': False}, 'description': 'Cofactors. Absent when none are annotated.'}, 'entryName': {'type': 'string', 'description': 'UniProtKB mnemonic ID, e.g. "P53_HUMAN".'}, 'proteinName': {'type': 'string', 'description': 'Recommended full protein name. Omitted when none.'}, 'annotationScore': {'type': 'number', 'description': 'Annotation confidence on a 1â\x80\x935 scale.'}, 'proteinExistence': {'type': 'string', 'description': 'Protein-existence evidence level.'}, 'catalyticActivity': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Reaction equation, e.g. "ATP + L-tyrosyl-[protein] = ...".'}, 'rheaId': {'type': 'string', 'description': 'Rhea reaction ID, e.g. "RHEA:10596". Omitted when none.'}, 'ecNumber': {'type': 'string', 'description': 'Enzyme Commission number. Omitted when none.'}}, 'description': 'A catalyzed reaction.', 'additionalProperties': False}, 'description': 'Catalytic-activity reactions (Rhea-cross-referenced). Absent when not an enzyme.'}, 'subcellularLocation': {'type': 'array', 'items': {'type': 'object', 'required': ['location'], 'properties': {'location': {'type': 'string', 'description': 'Subcellular location, e.g. "Nucleus".'}, 'topology': {'type': 'string', 'description': 'Membrane topology. Omitted when not applicable.'}}, 'description': 'A subcellular location.', 'additionalProperties': False}, 'description': 'Subcellular locations. Absent when none are annotated.'}}, 'description': 'A full curated UniProtKB entry.', 'additionalProperties': False}, 'description': 'Entries that resolved successfully. Present when kind is "full".'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'size': {'type': 'integer', 'maximum': 500, 'description': 'Proteins per page when include_proteins is true (max 500). Omit for the server default.', 'exclusiveMinimum': 0}, 'upid': {'anyOf': [{'type': 'string', 'const': ''}, {'type': 'string', 'pattern': '^UP[0-9]{9}$', 'description': 'Proteome identifier, e.g. "UP000005640".'}], 'description': 'Proteome UPID. Provide this OR taxon_id, not both.'}, 'query': {'type': 'string', 'description': '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': {'type': 'string', 'description': 'Forward-pagination cursor from a prior protein page. Only meaningful with include_proteins.'}, 'taxon_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'NCBI taxon ID, e.g. 9606 for human. Resolves to the reference proteome. Provide this OR upid, not both.', 'exclusiveMinimum': 0}, 'include_proteins': {'type': 'boolean', 'default': False, 'description': "When true, also return a capped, cursor-paginated page of the proteome's proteins. Defaults to false â\x80\x94 metadata alone is the common case."}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['proteome']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'cap': {'type': 'number', 'description': 'The page-size cap that was applied.'}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['missing_identifier', 'conflicting_identifier', 'not_found'], 'description': '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'shown': {'type': 'number', 'description': 'Number of proteins returned in this page.'}, 'cursor': {'type': 'string', 'description': 'Forward cursor for the next protein page. Absent on the last page.'}, 'notice': {'type': 'string', 'description': 'Truncation guidance when the protein page was capped â\x80\x94 how to reach the rest (walk the cursor or narrow with the query filter).'}, 'proteins': {'type': 'array', 'items': {'type': 'object', 'required': ['accession', 'entryName', 'geneNames', 'organism', 'length', 'reviewed', 'annotationScore', 'proteinExistence'], 'properties': {'length': {'type': 'number', 'description': 'Canonical sequence length in residues.'}, 'organism': {'type': 'object', 'required': ['scientificName', 'taxonId'], 'properties': {'taxonId': {'type': 'number', 'description': 'NCBI taxonomy ID.'}, 'commonName': {'type': 'string', 'description': 'Organism common name. Omitted when none.'}, 'scientificName': {'type': 'string', 'description': 'Organism scientific name.'}}, 'description': 'Source organism.', 'additionalProperties': False}, 'reviewed': {'type': 'boolean', 'description': 'True for reviewed Swiss-Prot, false for unreviewed TrEMBL.'}, 'accession': {'type': 'string', 'description': 'UniProtKB primary accession.'}, 'entryName': {'type': 'string', 'description': 'UniProtKB mnemonic ID.'}, 'geneNames': {'type': 'array', 'items': {'type': 'string', 'description': 'A gene name or synonym.'}, 'description': 'Gene names and synonyms.'}, 'proteinName': {'type': 'string', 'description': 'Recommended protein name. Omitted when none.'}, 'annotationScore': {'type': 'number', 'description': 'Annotation confidence on a 1â\x80\x935 scale.'}, 'functionSnippet': {'type': 'string', 'description': 'First function sentence(s), evidence stripped. Omitted when none.'}, 'proteinExistence': {'type': 'string', 'description': 'Protein-existence evidence level.'}}, 'description': 'A protein in the proteome.', 'additionalProperties': False}, 'description': "A capped page of the proteome's proteins. Present only when include_proteins is true."}, 'proteome': {'type': 'object', 'required': ['upid', 'proteomeType', 'organism', 'proteinCount'], 'properties': {'upid': {'type': 'string', 'description': 'Proteome identifier, e.g. "UP000005640".'}, 'busco': {'type': 'object', 'required': ['complete', 'completeSingle', 'completeDuplicated', 'fragmented', 'missing', 'total'], 'properties': {'score': {'type': 'number', 'description': 'Completeness percentage (0â\x80\x93100). Omitted when none.'}, 'total': {'type': 'number', 'description': 'Total BUSCO genes searched.'}, 'missing': {'type': 'number', 'description': 'Missing BUSCOs.'}, 'complete': {'type': 'number', 'description': 'Complete BUSCO genes.'}, 'lineageDb': {'type': 'string', 'description': 'BUSCO lineage dataset, e.g. "primates_odb10". Omitted when none.'}, 'fragmented': {'type': 'number', 'description': 'Fragmented BUSCOs.'}, 'completeSingle': {'type': 'number', 'description': 'Complete and single-copy BUSCOs.'}, 'completeDuplicated': {'type': 'number', 'description': 'Complete and duplicated BUSCOs.'}}, 'description': 'BUSCO completeness report. Absent for proteomes without one.', 'additionalProperties': False}, 'organism': {'type': 'object', 'required': ['scientificName', 'taxonId'], 'properties': {'taxonId': {'type': 'number', 'description': 'NCBI taxonomy ID.'}, 'mnemonic': {'type': 'string', 'description': 'Organism mnemonic, e.g. "HUMAN". Omitted when none.'}, 'commonName': {'type': 'string', 'description': 'Organism common name. Omitted when none.'}, 'scientificName': {'type': 'string', 'description': 'Organism scientific name.'}}, 'description': 'Source organism.', 'additionalProperties': False}, 'proteinCount': {'type': 'number', 'description': 'Total number of proteins in the proteome.'}, 'proteomeType': {'type': 'string', 'description': 'Proteome type, e.g. "Reference proteome".'}, 'genomeAssembly': {'type': 'string', 'description': 'Genome assembly accession, e.g. "GCA_000001405.29". Omitted when none.'}}, 'description': 'Proteome metadata.', 'additionalProperties': False}, 'truncated': {'type': 'boolean', 'description': 'True when the protein page hit the size cap â\x80\x94 more remain via cursor.'}, 'totalProteinsMatched': {'type': 'number', 'description': 'Total proteins matching the (optionally filtered) proteome query.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['accession'], 'properties': {'accession': {'type': 'string', 'pattern': '^(?:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9](?:[A-Z][A-Z0-9]{2}[0-9]){1,2})$', 'description': 'UniProtKB primary accession, e.g. "P04637". Canonical form only â\x80\x94 strip any "-N" isoform suffix.'}, 'include_isoforms': {'type': 'boolean', 'default': False, 'description': 'When true, also return the isoform sequences. Defaults to false (canonical only).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['accession', 'canonical']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['not_found'], 'description': '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'isoforms': {'type': 'array', 'items': {'type': 'object', 'required': ['header', 'sequence', 'length', 'isoformId'], 'properties': {'header': {'type': 'string', 'description': 'The FASTA header line (without the leading ">"), e.g. "sp|P04637|P53_HUMAN Cellular tumor antigen p53 OS=Homo sapiens OX=9606 GN=TP53 PE=1 SV=4".'}, 'length': {'type': 'number', 'description': 'Sequence length in residues.'}, 'sequence': {'type': 'string', 'description': 'The amino-acid sequence as a single string (newlines removed).'}, 'isoformId': {'type': 'string', 'description': 'Isoform accession, e.g. "P04637-2".'}}, 'description': 'An isoform sequence record.', 'additionalProperties': False}, 'description': 'Isoform sequence records. Present only when include_isoforms is true and isoforms exist.'}, 'accession': {'type': 'string', 'description': 'The accession that was fetched.'}, 'canonical': {'type': 'object', 'required': ['header', 'sequence', 'length'], 'properties': {'header': {'type': 'string', 'description': 'The FASTA header line (without the leading ">"), e.g. "sp|P04637|P53_HUMAN Cellular tumor antigen p53 OS=Homo sapiens OX=9606 GN=TP53 PE=1 SV=4".'}, 'length': {'type': 'number', 'description': 'Sequence length in residues.'}, 'sequence': {'type': 'string', 'description': 'The amino-acid sequence as a single string (newlines removed).'}}, 'description': 'The canonical sequence record.', 'additionalProperties': False}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Organism scientific name, e.g. "Homo sapiens". Provide this OR taxon_id, not both. Matched against the scientific name.'}, 'taxon_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'NCBI taxonomy ID, e.g. 9606. Provide this OR name, not both.', 'exclusiveMinimum': 0}, 'include_children': {'type': 'boolean', 'default': False, 'description': 'When true, also fetch the immediate child taxa via a follow-up search. Defaults to false.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['taxon', 'lineage']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['missing_identifier', 'conflicting_identifier', 'not_found'], 'description': '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'taxon': {'type': 'object', 'required': ['taxonId', 'scientificName', 'rank'], 'properties': {'rank': {'type': 'string', 'description': 'Taxonomic rank, e.g. "species".'}, 'parent': {'type': 'object', 'required': ['taxonId', 'scientificName'], 'properties': {'taxonId': {'type': 'number', 'description': 'Parent taxon ID.'}, 'scientificName': {'type': 'string', 'description': 'Parent scientific name.'}}, 'description': 'Immediate parent taxon. Omitted at the root.', 'additionalProperties': False}, 'taxonId': {'type': 'number', 'description': 'NCBI taxonomy ID.'}, 'mnemonic': {'type': 'string', 'description': 'UniProt organism mnemonic, e.g. "HUMAN". Omitted when none.'}, 'commonName': {'type': 'string', 'description': 'Common name. Omitted when none.'}, 'otherNames': {'type': 'array', 'items': {'type': 'string', 'description': 'An alternative name or synonym.'}, 'description': 'Synonyms and alternative spellings. Omitted when none.'}, 'scientificName': {'type': 'string', 'description': 'Scientific name.'}}, 'description': 'The taxonomy record.', 'additionalProperties': False}, 'lineage': {'type': 'array', 'items': {'type': 'object', 'required': ['taxonId', 'scientificName', 'rank'], 'properties': {'rank': {'type': 'string', 'description': 'Taxonomic rank, e.g. "phylum", "clade", "no rank".'}, 'taxonId': {'type': 'number', 'description': 'NCBI taxonomy ID of the lineage node.'}, 'commonName': {'type': 'string', 'description': 'Common name of the node. Omitted when none.'}, 'scientificName': {'type': 'string', 'description': 'Scientific name of the lineage node.'}}, 'description': 'A node in the lineage, ordered root â\x86\x92 near.', 'additionalProperties': False}, 'description': "Full lineage from root to the taxon's near ancestor."}, 'children': {'type': 'array', 'items': {'type': 'object', 'required': ['taxonId', 'scientificName', 'rank'], 'properties': {'rank': {'type': 'string', 'description': 'Child rank.'}, 'taxonId': {'type': 'number', 'description': 'Child taxon ID.'}, 'scientificName': {'type': 'string', 'description': 'Child scientific name.'}}, 'description': 'An immediate child taxon.', 'additionalProperties': False}, 'description': 'Immediate children. Present only when include_children is true.'}, 'childCount': {'type': 'number', 'description': 'Number of immediate children returned (when include_children is true).'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'ids': {'type': 'array', 'items': {'type': 'string', 'description': 'A source identifier in the from_db namespace, e.g. "TP53" for Gene_Name.'}, 'maxItems': 100000, 'description': 'Identifiers to translate. Required only when submitting a new mapping job; omitted when resuming with a ticket or continuation.'}, 'to_db': {'enum': ['UniProtKB', 'UniProtKB-Swiss-Prot', 'UniProtKB_AC-ID', 'Gene_Name', 'GeneID', 'Ensembl', 'Ensembl_Protein', 'PDB', 'RefSeq_Nucleotide', 'RefSeq_Protein', 'ChEMBL', 'PomBase', 'WormBase_Protein'], 'type': 'string', 'description': '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.'}, 'tax_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'NCBI taxon ID to disambiguate ambiguous source IDs (e.g. a gene symbol across species). Recommended with Gene_Name; e.g. 9606 for human.', 'exclusiveMinimum': 0}, 'ticket': {'type': 'string', 'minLength': 1, 'description': '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': {'enum': ['UniProtKB_AC-ID', 'Gene_Name', 'GeneID', 'Ensembl', 'Ensembl_Protein', 'PDB', 'RefSeq_Nucleotide', 'RefSeq_Protein', 'ChEMBL', 'PomBase', 'WormBase_Protein'], 'type': 'string', 'description': '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': {'type': 'object', 'required': ['jobId', 'cursor'], 'properties': {'jobId': {'type': 'string', 'minLength': 1, 'description': 'UniProt ID-mapping job identifier for the completed job.'}, 'cursor': {'type': 'string', 'minLength': 1, 'description': 'Opaque cursor for the next completed results page.'}}, 'description': 'Completed-page continuation from a prior status "finished" response. Pass it alone to fetch the next page without polling or re-submitting.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['status']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['missing_inputs', 'conflicting_inputs', 'unsupported_db_pair', 'invalid_ticket', 'invalid_continuation'], 'description': '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'notice': {'type': 'string', 'description': 'Status guidance â\x80\x94 e.g. that the job is still running, or that no IDs mapped.'}, 'status': {'enum': ['finished', 'running'], 'type': 'string', 'description': 'Job state: "finished" (one completed results page included) or "running" (poll with ticket).'}, 'ticket': {'type': 'string', 'description': 'Running-job ticket (present only when status is "running"). Pass it alone to poll the same job.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'The resolved target identifier (e.g. a UniProtKB accession).'}, 'from': {'type': 'string', 'description': 'The source identifier that was mapped.'}}, 'description': 'A single fromâ\x86\x92to mapping.', 'additionalProperties': False}, 'description': 'Resolved mappings on this completed page (present only when status is "finished"). Failed source IDs are reported in unmappedIds.'}, 'mappedCount': {'type': 'number', 'description': 'Number of resolved mappings (finished jobs only).'}, 'unmappedIds': {'type': 'array', 'items': {'type': 'string', 'description': 'A source ID that resolved to nothing.'}, 'description': 'Source IDs UniProt reported as failed on this completed page. Absent when none failed.'}, 'continuation': {'type': 'object', 'required': ['jobId', 'cursor'], 'properties': {'jobId': {'type': 'string', 'minLength': 1, 'description': 'UniProt ID-mapping job identifier for the completed job.'}, 'cursor': {'type': 'string', 'minLength': 1, 'description': 'Opaque cursor for the next completed results page.'}}, 'description': 'Next completed-page continuation (finished jobs only). Pass it alone to fetch the next page; absent on the terminal page.', 'additionalProperties': False}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'size': {'type': 'integer', 'maximum': 500, 'description': 'Number of hits per page (max 500). Omit for the server default.', 'exclusiveMinimum': 0}, 'query': {'type': 'string', 'description': 'UniProtKB Lucene query with field prefixes â\x80\x94 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': {'type': 'string', 'description': 'Opaque forward-pagination cursor from a prior response. Walk pages with this; random access to page N is not supported.'}, 'facets': {'type': 'string', 'description': 'Comma-separated upstream facet names for count breakdowns, e.g. "reviewed,model_organism,proteins_with". Returns a facets array alongside the hits.'}, 'fields': {'type': 'string', 'description': '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': {'type': 'boolean', 'default': True, 'description': '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.'}, 'organism_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Restrict to an NCBI taxon ID, e.g. 9606 for human. A convenience filter ANDed onto the query; resolve names with uniprot_get_taxonomy.', 'exclusiveMinimum': 0}, 'text_search': {'type': 'string', 'description': 'Plain-language search across protein names, gene names, and function, e.g. "kinase apoptosis". Provide this OR query, not both.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'anyOf': [{'not': {'required': ['error']}, 'required': ['results', 'totalResults', 'effectiveQuery']}, {'required': ['error']}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'JSON-RPC error code for this failure.'}, 'data': {'type': 'object', 'properties': {'reason': {'type': 'string', 'examples': ['missing_query', 'conflicting_query'], 'description': '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.'}, 'recovery': {'type': 'object', 'required': ['hint'], 'properties': {'hint': {'type': 'string'}}, 'description': 'Actionable next step for the caller.', 'additionalProperties': {}}, 'retryable': {'type': 'boolean', 'description': 'Whether retrying may succeed.'}}, 'additionalProperties': {}}, 'message': {'type': 'string', 'description': 'Human-readable description of what went wrong.'}}, 'description': 'Present when the call failed. Absent on success.', 'additionalProperties': {}}, 'cursor': {'type': 'string', 'description': 'Forward cursor for the next page. Absent on the last page.'}, 'facets': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'label', 'values'], 'properties': {'name': {'type': 'string', 'description': 'Facet identifier, e.g. "reviewed".'}, 'label': {'type': 'string', 'description': 'Human-readable facet label, e.g. "Status".'}, 'values': {'type': 'array', 'items': {'type': 'object', 'required': ['value', 'label', 'count'], 'properties': {'count': {'type': 'number', 'description': 'Number of matches in this bucket.'}, 'label': {'type': 'string', 'description': 'Human-readable value label, e.g. "Reviewed (Swiss-Prot)".'}, 'value': {'type': 'string', 'description': 'Facet value, e.g. "true".'}}, 'description': 'A single facet bucket.', 'additionalProperties': False}, 'description': 'Count buckets for this facet.'}}, 'description': 'A server-side facet breakdown.', 'additionalProperties': False}, 'description': 'Upstream facet count breakdowns. Present only when facets were requested.'}, 'notice': {'type': 'string', 'description': 'Guidance when nothing matched â\x80\x94 echoes the query and suggests how to broaden.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['accession', 'entryName', 'geneNames', 'organism', 'length', 'reviewed', 'annotationScore', 'proteinExistence'], 'properties': {'length': {'type': 'number', 'description': 'Canonical sequence length in residues.'}, 'organism': {'type': 'object', 'required': ['scientificName', 'taxonId'], 'properties': {'taxonId': {'type': 'number', 'description': 'NCBI taxonomy ID, e.g. 9606.'}, 'commonName': {'type': 'string', 'description': 'Organism common name, e.g. "Human". Omitted when none.'}, 'scientificName': {'type': 'string', 'description': 'Organism scientific name, e.g. "Homo sapiens".'}}, 'description': 'Source organism.', 'additionalProperties': False}, 'reviewed': {'type': 'boolean', 'description': 'True for reviewed Swiss-Prot (manually curated), false for unreviewed TrEMBL (computationally predicted).'}, 'accession': {'type': 'string', 'description': 'UniProtKB primary accession, e.g. "P04637". The lookup key for uniprot_get_entry and uniprot_get_sequence.'}, 'entryName': {'type': 'string', 'description': 'UniProtKB mnemonic ID, e.g. "P53_HUMAN". Not an input key â\x80\x94 use accession.'}, 'geneNames': {'type': 'array', 'items': {'type': 'string', 'description': 'A gene name or synonym.'}, 'description': 'Gene names and synonyms for the protein.'}, 'proteinName': {'type': 'string', 'description': 'Recommended full protein name. Omitted when the entry has none.'}, 'annotationScore': {'type': 'number', 'description': 'Annotation confidence on a 1â\x80\x935 scale; higher means more curation evidence.'}, 'functionSnippet': {'type': 'string', 'description': 'First sentence(s) of the FUNCTION annotation, evidence references stripped. Omitted when no function is annotated.'}, 'proteinExistence': {'type': 'string', 'description': 'Evidence level for the protein\'s existence, e.g. "1: Evidence at protein level".'}}, 'description': 'A UniProtKB search hit.', 'additionalProperties': False}, 'description': 'Matching protein hits for this page.'}, 'totalResults': {'type': 'number', 'description': 'Total matches for the query before pagination (from the upstream result count).'}, 'effectiveQuery': {'type': 'string', 'description': 'The query as the server assembled and sent it to UniProtKB.'}}, 'additionalProperties': False}
Modifications récentes des outils
Serveurs MCP similaires
osint
Provides source-cited US data and schemas for power systems, AI infrastructure, semiconductor production and trade, robotics, and…
Pubmed
Provides PubMed biomedical literature search and retrieval, including abstracts, full text where available, citation metadata, re…
Europepmc
Searches and retrieves biomedical literature from Europe PMC, including abstracts, full records, citations, publication metadata,…
Nasa
Provides NASA data and imagery for astronomy, asteroids, Mars rover photos, solar flares, coronal mass ejections, geomagnetic sto…
Nih Reporter
Searches and analyzes NIH-funded research projects, awards, publications, funding trends, expirations, investigators, organizatio…
Catalogueoflife
Provides taxonomic search and classification for species and higher taxa using the Catalogue of Life.
Chembl
Queries the ChEMBL drug-discovery database for molecules, mechanisms of action, indications, targets, and small-molecule bioactiv…
Biorxiv
Provides bioRxiv and medRxiv preprint metadata, publication status, and publisher lookups, alongside broader structured research …