🚀 Unofficial UniProt MCP Server
A comprehensive Model Context Protocol (MCP) server offering advanced access to the UniProt protein database. It provides 26 specialized bioinformatics tools, allowing AI assistants and MCP clients to conduct in - depth protein research, comparative genomics, structural biology analysis, and systems biology investigations via UniProt's REST API.
Developed by Augmented Nature
✨ Features
Core Protein Analysis (5 tools)
- 🔍 Protein Search: Search the UniProt database by protein name, keywords, or organism.
- 📄 Detailed Protein Info: Retrieve comprehensive protein information including function, structure, and annotations.
- 👨🔬 Gene - based Search: Find proteins by gene name or symbol.
- 🧬 Sequence Retrieval: Get amino acid sequences in FASTA or JSON format.
- 📊 Feature Analysis: Access functional domains, active sites, binding sites, and other protein features.
Comparative & Evolutionary Analysis (4 tools)
- ⚖️ Protein Comparison: Side - by - side comparison of multiple proteins with sequence and feature analysis.
- 👪 Homolog Discovery: Find homologous proteins across different species.
- 🧬 Ortholog Identification: Identify orthologous proteins for evolutionary studies.
- 📈 Phylogenetic Analysis: Retrieve evolutionary relationships and phylogenetic data.
Structure & Function Analysis (4 tools)
- 3️⃣D 3D Structure Information: Access PDB references and structural data.
- 🧬 Advanced Domain Analysis: Enhanced domain analysis with InterPro, Pfam, and SMART annotations.
- 🦠 Variant Analysis: Disease - associated variants and mutations.
- 📊 Sequence Composition: Amino acid composition, hydrophobicity, and other sequence properties.
Biological Context Analysis (4 tools)
- 🛣️ Pathway Integration: Associated biological pathways from KEGG and Reactome.
- 🤝 Protein Interactions: Protein - protein interaction networks.
- 🔍 Functional Classification: Search by GO terms or functional annotations.
- 📍 Subcellular Localization: Find proteins by subcellular localization.
Batch Processing & Advanced Search (3 tools)
- ⚙️ Batch Processing: Efficiently process multiple protein accessions.
- 🔎 Advanced Search: Complex queries with multiple filters (length, mass, organism, function).
- 🐾 Taxonomic Classification: Search by detailed taxonomic classification.
Literature & Cross - References (3 tools)
- 🔗 External Database Links: Links to PDB, EMBL, RefSeq, Ensembl, and other databases.
- 📚 Literature References: Associated publications and citations.
- ✅ Annotation Quality: Quality scores and confidence levels for different annotations.
Data Export & Utilities (3 tools)
- 💾 Specialized Export: Export data in GFF, GenBank, EMBL, and XML formats.
- ✔️ Accession Validation: Verify UniProt accession number validity.
- 🐾 Taxonomic Information: Detailed taxonomic classification and lineage data.
Resource Templates
- 🌐 Direct access to protein data via URI templates for seamless integration.
📦 Installation
Prerequisites
- Node.js (v16 or higher)
- npm or yarn
Setup
- Clone the repository:
git clone <repository-url>
cd uniprot-server
- Install dependencies:
npm install
- Build the project:
npm run build
Docker
Building the Docker Image
docker build -t uniprot-mcp-server .
Running with Docker
docker run -i uniprot-mcp-server
For MCP client integration, you can use the container directly:
{
"mcpServers": {
"uniprot": {
"command": "docker",
"args": ["run", "-i", "uniprot-mcp-server"],
"env": {}
}
}
}
Docker Compose (Optional)
Create a docker-compose.yml for easier management:
version: "3.8"
services:
uniprot-mcp:
build: .
image: uniprot-mcp-server
stdin_open: true
tty: true
Run with:
docker-compose up
💻 Usage Examples
As an MCP Server
npm start
Adding to MCP Client Configuration
{
"mcpServers": {
"uniprot": {
"command": "node",
"args": ["/path/to/uniprot-server/build/index.js"],
"env": {}
}
}
}
Basic Usage of Available Tools
1. search_proteins
Search the UniProt database for proteins by name, keyword, or organism.
Parameters:
query (required): Search query (protein name, keyword, or complex search)
organism (optional): Organism name or taxonomy ID to filter results
size (optional): Number of results to return (1 - 500, default: 25)
format (optional): Output format - json, tsv, fasta, xml (default: json)
Example:
{
"query": "insulin",
"organism": "human",
"size": 5
}
2. get_protein_info
Get detailed information for a specific protein by UniProt accession.
Parameters:
accession (required): UniProt accession number (e.g., P04637)
format (optional): Output format - json, tsv, fasta, xml (default: json)
Example:
{
"accession": "P01308",
"format": "json"
}
3. search_by_gene
Search for proteins by gene name or symbol.
Parameters:
gene (required): Gene name or symbol (e.g., BRCA1, INS)
organism (optional): Organism name or taxonomy ID to filter results
size (optional): Number of results to return (1 - 500, default: 25)
Example:
{
"gene": "BRCA1",
"organism": "human"
}
4. get_protein_sequence
Get the amino acid sequence for a protein.
Parameters:
accession (required): UniProt accession number
format (optional): Output format - fasta, json (default: fasta)
Example:
{
"accession": "P01308",
"format": "fasta"
}
5. get_protein_features
Get functional features and domains for a protein.
Parameters:
accession (required): UniProt accession number
Example:
{
"accession": "P01308"
}
📚 Documentation
API Integration
This server integrates with the UniProt REST API for programmatic access to protein data. For more information about UniProt:
- UniProt Website: https://www.uniprot.org/
- API Documentation: https://www.uniprot.org/help/api
- REST API Guide: https://www.uniprot.org/help/api_queries
All API requests include:
- User - Agent:
UniProt-MCP-Server/1.0.0
- Timeout: 30 seconds
- Base URL:
https://rest.uniprot.org (programmatic access only)
Error Handling
The server includes comprehensive error handling:
- Input Validation: All parameters are validated using type guards.
- API Errors: Network and API errors are caught and returned with descriptive messages.
- Timeout Handling: Requests timeout after 30 seconds.
- Graceful Degradation: Partial failures are handled appropriately.
Development
Build the Project
npm run build
Development Mode
Run TypeScript compiler in watch mode:
npm run dev
Project Structure
uniprot-server/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── package.json # Node.js dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
Dependencies
- @modelcontextprotocol/sdk: Core MCP SDK for server implementation
- axios: HTTP client for UniProt API requests
- typescript: TypeScript compiler for development
🔧 Technical Details
Complete Tool Reference
Core Protein Analysis Tools
search_proteins - Search UniProt database by name, keyword, or organism
get_protein_info - Get detailed protein information by accession
search_by_gene - Find proteins by gene name or symbol
get_protein_sequence - Retrieve amino acid sequences
get_protein_features - Access functional features and domains
Comparative & Evolutionary Analysis Tools
compare_proteins - Compare multiple proteins side - by - side
get_protein_homologs - Find homologous proteins across species
get_protein_orthologs - Identify orthologous proteins
get_phylogenetic_info - Retrieve evolutionary relationships
Structure & Function Analysis Tools
get_protein_structure - Access 3D structure information from PDB
get_protein_domains_detailed - Enhanced domain analysis (InterPro, Pfam, SMART)
get_protein_variants - Disease - associated variants and mutations
analyze_sequence_composition - Amino acid composition analysis
Biological Context Tools
get_protein_pathways - Associated biological pathways (KEGG, Reactome)
get_protein_interactions - Protein - protein interaction networks
search_by_function - Search by GO terms or functional annotations
search_by_localization - Find proteins by subcellular localization
Batch Processing & Advanced Search Tools
batch_protein_lookup - Process multiple accessions efficiently
advanced_search - Complex queries with multiple filters
search_by_taxonomy - Search by taxonomic classification
Literature & Cross - Reference Tools
get_external_references - Links to other databases (PDB, EMBL, RefSeq, etc.)
get_literature_references - Associated publications and citations
get_annotation_confidence - Quality scores for annotations
Data Export & Utility Tools
export_protein_data - Export in specialized formats (GFF, GenBank, EMBL, XML)
validate_accession - Check accession number validity
get_taxonomy_info - Detailed taxonomic information
Changelog
v1.0.0 - Comprehensive Bioinformatics Platform
- Major expansion: Added 21 new specialized tools (total: 26 tools)
- Comparative Analysis: Protein comparison, homolog/ortholog identification, phylogenetic analysis
- Structural Biology: 3D structure integration, detailed domain analysis, variant analysis
- Systems Biology: Pathway integration, protein interactions, functional classification
- Advanced Search: Batch processing, complex filtering, taxonomic search
- Literature Integration: External database links, citations, annotation confidence
- Data Export: Multiple specialized formats (GFF, GenBank, EMBL, XML)
- Enhanced Docker Support: Multi - stage builds with security best practices
- Comprehensive Documentation: Complete tool reference and examples
- Developed by Augmented Nature: Professional bioinformatics platform
📄 License
MIT License
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Support
For issues and questions:
- Check the UniProt API documentation
- Review the Model Context Protocol specification
- Open an issue on the repository
About Augmented Nature
This comprehensive UniProt MCP Server is developed by Augmented Nature, a leading innovator in AI - powered bioinformatics and computational biology solutions. Augmented Nature specializes in creating advanced tools that bridge the gap between artificial intelligence and biological research, enabling researchers to unlock deeper insights from biological data.
Citation
If you use this project in your research or publications, please cite it as follows:
@misc{uniprotmcp2025,
author = {Moudather Chelbi},
title = {UniProt MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/Augmented-Nature-UniProt-MCP-Server/},
note = {Accessed: 2025-06-29}
}