
โ labsco summary โ our analysis, not the vendor's
What it is โ An MIT-licensed MCP server that lets AI assistants fetch protein function and sequence data from the UniProt database, aimed at bioinformatics and life-sciences users.
What you get โ
- Single-protein lookup โ e.g. "get the protein information for UniProt accession P98160" via
get_protein_info - Batch retrieval โ
get_batch_protein_infoto compare several accessions at once (e.g. P04637 and P02747) - Returned fields โ protein name, function description, full sequence, sequence length, and organism
- 24-hour caching for faster repeat queries, plus error handling and logging
Requirements โ Nothing โ no env vars or API keys; Python 3.10+.
Cost snapshot โ Free and MIT-licensed; UniProt is a public database, so no paid service.
Setup effort โ Self-host: clone, install requirements with uv/pip, then configure Claude Desktop to run it via uv --directory ... run.
Our take โ A clean, no-key tool for pulling protein data into an assistant. Its scope is deliberately narrow โ function and sequence lookups by accession number โ so it's best paired with other tools for richer analysis.
Source: the project README โ summarized 2026-07-08.
โ readme from github โ mirrored (latest on GitHub โ)
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
API Reference
Tools
-
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" }
-
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
- Clone the repository
- Create a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate - Install development dependencies:
pip install -e ".[dev]"
Running tests
pytestCode 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 checkTechnical 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)
{
"mcpServers": {
"uniprot": {
"command": "uv",
"args": ["--directory", "path/to/uniprot-mcp-server", "run", "uniprot-mcp-server"]
}
}
}Quick Start
- Ensure you have Python 3.10 or higher installed
- Clone this repository:
git clone https://github.com/TakumiY235/uniprot-mcp-server.git cd uniprot-mcp-server - 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?No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under MITโ you can use, modify, and redistribute it under that license's terms.
License
This project is licensed under the MIT License - see the LICENSE file for details.
