An MCP (Model Context Protocol) server that allows language models to fetch protein information from the UniProt database. This server can be integrated with Claude Desktop and other MCP-compatible AI applications.
- Search UniProt: Search for proteins by name, gene, or other criteria
- Get Protein Details: Retrieve detailed information about a protein
- Get Protein Sequences: Fetch amino acid sequences
- Get Protein Functions: Retrieve functional annotations including GO terms
- Get Protein Structures: Find related PDB structures
-
Clone this repository:
git clone https://github.com/yourusername/uniprot-mcp-server.git cd uniprot-mcp-server -
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Make the server script executable:
chmod +x server.py
-
Configure Claude Desktop to use this MCP server:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
code $env:AppData\Claude\claude_desktop_config.json -
Add the following configuration (update the path to match your actual file location):
{ "mcpServers": { "uniprot": { "command": "python", "args": [ "/ABSOLUTE/PATH/TO/uniprot-mcp-server/server.py" ] } } } -
Restart Claude Desktop
Once set up with Claude Desktop, you can ask questions like:
- "Find proteins related to Alzheimer's disease"
- "Get the sequence for protein P05067 (Amyloid-beta precursor protein)"
- "What are the functions of the TP53 protein?"
- "Are there any known 3D structures for BRCA1 protein?"
To run the server directly for testing:
python server.pyThis project includes two testing utilities to verify functionality:
Verifies that the MCP server starts correctly without errors:
python server_health_check.pyTests connectivity with the UniProt API and verifies that all API calls work as expected:
python test_server.pyRun these tests before using the server to ensure everything is properly configured.
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
- 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