Skip to main content
Glama
vitamin3615

UniProt MCP Server

by vitamin3615
README.md
# UniProt MCP Server

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.

## Features

- **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

## Installation

1. Clone this repository:
   ```bash
   git clone https://github.com/yourusername/uniprot-mcp-server.git
   cd uniprot-mcp-server
   ```

2. Create a virtual environment (optional but recommended):
   ```bash
   python -m venv venv
   source venv/bin/activate  # On Windows: venv\Scripts\activate
   ```

3. Install dependencies:
   ```bash
   pip install -r requirements.txt
   ```

## Local Setup with Claude Desktop

1. Make the server script executable:
   ```bash
   chmod +x server.py
   ```

2. Configure Claude Desktop to use this MCP server:

   ### For macOS/Linux:
   ```bash
   code ~/Library/Application\ Support/Claude/claude_desktop_config.json
   ```

   ### For Windows:
   ```powershell
   code $env:AppData\Claude\claude_desktop_config.json
   ```

3. Add the following configuration (update the path to match your actual file location):

   ```json
   {
     "mcpServers": {
       "uniprot": {
         "command": "python",
         "args": [
           "/ABSOLUTE/PATH/TO/uniprot-mcp-server/server.py"
         ]
       }
     }
   }
   ```

4. Restart Claude Desktop

## Usage Examples

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?"

## Development

To run the server directly for testing:

```bash
python server.py
```

## Testing Utilities

This project includes two testing utilities to verify functionality:

### 1. Server Health Check

Verifies that the MCP server starts correctly without errors:

```bash
python server_health_check.py
```

### 2. UniProt API Test

Tests connectivity with the UniProt API and verifies that all API calls work as expected:

```bash
python test_server.py
```

Run these tests before using the server to ensure everything is properly configured.

## License

MIT

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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