The UniProt MCP Server provides access to protein function and sequence information from UniProt.
Fetch protein information: Retrieve details like protein name, function, sequence, length, and organism using a UniProt accession number.
Batch retrieval: Get information for multiple proteins at once by providing a list of accession numbers.
Caching: Improves performance with a 24-hour TTL cache.
Error handling: Manages invalid accessions, network issues, and rate limiting.
Integration: Works with AI assistants via the Model Context Protocol (MCP).
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
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-serverInstall 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
Usage Examples
After configuring the server in Claude Desktop, you can ask questions like:
For batch queries:
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\activateInstall development dependencies:
pip install -e ".[dev]"
Running tests
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:
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:
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature
)Commit your changes (
git commit -m 'Add some amazing feature'
)Push to the branch (
git push origin feature/amazing-feature
)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
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables AI assistants to access protein information directly from UniProt, allowing retrieval of protein names, functions, sequences, and organism data by accession number.
- Features
- Quick Start
- Configuration
- Usage Examples
- API Reference
- Development
- Technical Details
- Contributing
- License
- Acknowledgments
Related Resources
Related MCP Servers
- -securityAlicense-qualityAn MCP server that enables language models to fetch protein information from the UniProt database, including protein details, sequences, functions, and structures.Last updated -MIT License
- -securityFlicense-qualityEnables searching for AI agents by keywords or categories, allowing users to discover tools like coding agents, GUI agents, or industry-specific assistants across marketplaces.Last updated -41
- AsecurityFlicenseAqualityEnables AI systems to perform full-text and semantic search operations over structured/unstructured data in Azure Cognitive Search, with capabilities for document indexing and management through natural language.Last updated -3153
- AsecurityAlicenseAqualityEnables AI agents to access crypto-related information including latest news, prices, and market trends through ChainGPT capabilities.Last updated -305MIT License