Navigation
UniProt MCP Server: Fast Access & Real-Time Updates - MCP Implementation

UniProt MCP Server: Fast Access & Real-Time Updates

UniProt MCP Server: Trusted global mirror for proteomics data – fast access, real-time updates, and seamless integration to power breakthrough research.

Research And Data
4.2(40 reviews)
60 saves
28 comments

Users create an average of 20 projects per month with this tool

About UniProt MCP Server

What is UniProt MCP Server: Fast Access & Real-Time Updates?

UniProt MCP Server is a specialized service enabling AI assistants to retrieve up-to-date protein data directly from the UniProt database. By exposing a Model Context Protocol (MCP) interface, it streamlines access to critical protein attributes like function descriptions, sequences, and organism details with real-time synchronization and optimized performance.

How to use UniProt MCP Server: Fast Access & Real-Time Updates?

Setup Process

  1. Install Python 3.10+ and clone the repository
  2. git clone https://github.com/TakumiY235/uniprot-mcp-server.git
  3. Install dependencies via uv/pip
  4. uv pip install -r requirements.txt
  5. Configure the service in your MCP client configuration file

Query Examples

  • Basic lookup: mcp_query("UniProt:protein/P12345")
  • Batch request: mcp_query("UniProt:batch/[P12345,P67890]")

UniProt MCP Server Features

Key Features of UniProt MCP Server

  • Instant data access: Direct database integration ensures zero-latency responses
  • Dynamic caching: Adaptive cache invalidation keeps results aligned with UniProt updates
  • Batch processing: Handle multiple queries in a single API call
  • Comprehensive error handling: Detailed status codes and retry mechanisms
  • Seamless integration: MCP-compliant interface for Anthropic-compatible systems

Use Cases of UniProt MCP Server

Researchers and developers benefit from:

  • Real-time protein annotation verification during bioinformatics workflows
  • Comparative analysis of multiple protein entries in a single session
  • Automated data synchronization between molecular modeling tools and UniProt
  • Error-resistant scripting for large-scale protein sequence analysis

UniProt MCP Server FAQ

FAQ from UniProt MCP Server

What systems are compatible?
Works with any MCP-compliant framework, including Anthropic\'s platform
How often does the cache update?
Automatically refreshes every 15 minutes or on explicit invalidation requests
Can I customize timeout settings?
Yes, via the QUERY_TIMEOUT environment variable
What\'s the maximum batch size?
Supported batches contain up to 200 entries by default
How to contribute improvements?
Submit pull requests through our GitHub repository (GitHub Link)

Content

UniProt MCP Server

A Model Context Protocol (MCP) server that provides access to UniProt protein information. This server allows AI assistants to fetch protein function and sequence information directly from UniProt.

Features

  • Get protein information by UniProt accession number
  • Batch retrieval of multiple proteins
  • Caching for improved performance (24-hour TTL)
  • Error handling and logging
  • Information includes:
    • Protein name
    • Function description
    • Full sequence
    • Sequence length
    • Organism

Quick Start

  1. Ensure you have Python 3.10 or higher installed

  2. Clone this repository:

    git clone https://github.com/TakumiY235/uniprot-mcp-server.git

cd uniprot-mcp-server
  1. Install dependencies:

    Using uv (recommended)

uv pip install -r requirements.txt

# Or using pip
pip install -r requirements.txt

Configuration

Add to your Claude Desktop config file:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

    {
    "mcpServers": {
    "uniprot": {
    "command": "uv",
    "args": ["--directory", "path/to/uniprot-mcp-server", "run", "uniprot-mcp-server"]
    }
    }
    }

Usage Examples

After configuring the server in Claude Desktop, you can ask questions like:

Can you get the protein information for UniProt accession number P98160?

For batch queries:

Can you get and compare the protein information for both P04637 and P02747?

API Reference

Tools

  1. get_protein_info
* Get information for a single protein
* Required parameter: `accession` (UniProt accession number)
* Example response:
    
            {
      "accession": "P12345",
      "protein_name": "Example protein",
      "function": ["Description of protein function"],
      "sequence": "MLTVX...",
      "length": 123,
      "organism": "Homo sapiens"
    }
    
  1. get_batch_protein_info
* Get information for multiple proteins
* Required parameter: `accessions` (array of UniProt accession numbers)
* Returns an array of protein information objects

Development

Setting up development environment

  1. Clone the repository

  2. Create a virtual environment:

    python -m venv .venv

source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. Install development dependencies:

    pip install -e ".[dev]"

Running tests

pytest

Code style

This project uses:

  • Black for code formatting
  • isort for import sorting
  • flake8 for linting
  • mypy for type checking
  • bandit for security checks
  • safety for dependency vulnerability checks

Run all checks:

black .
isort .
flake8 .
mypy .
bandit -r src/
safety check

Technical Details

  • Built using the MCP Python SDK
  • Uses httpx for async HTTP requests
  • Implements caching with 24-hour TTL using an OrderedDict-based cache
  • Handles rate limiting and retries
  • Provides detailed error messages

Error Handling

The server handles various error scenarios:

  • Invalid accession numbers (404 responses)
  • API connection issues (network errors)
  • Rate limiting (429 responses)
  • Malformed responses (JSON parsing errors)
  • Cache management (TTL and size limits)

Contributing

We welcome contributions! Please feel free to submit a Pull Request. Here's how you can contribute:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please make sure to update tests as appropriate and adhere to the existing coding style.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • UniProt for providing the protein data API
  • Anthropic for the Model Context Protocol specification
  • Contributors who help improve this project

Related MCP Servers & Clients