Skip to main content
Glama
Augmented-Nature

PDB MCP Server

README.md
![PDB MCP Server Logo](pdb-mcp-server-logo.png)
# PDB MCP Server

A Model Context Protocol (MCP) server that provides access to the Protein Data Bank (PDB) - the worldwide repository of information about the 3D structures of proteins, nucleic acids, and complex assemblies.

## Features

### Tools

- **search_structures**: Search PDB database for protein structures by keyword, protein name, or PDB ID
- **get_structure_info**: Get detailed information for a specific PDB structure
- **download_structure**: Download structure coordinates in various formats (PDB, mmCIF, mmTF, XML)
- **search_by_uniprot**: Find PDB structures associated with a UniProt accession
- **get_structure_quality**: Get structure quality metrics and validation data

### Resources

- **pdb://structure/{pdb_id}**: Complete structure information for a PDB ID
- **pdb://coordinates/{pdb_id}**: Structure coordinates in PDB format
- **pdb://mmcif/{pdb_id}**: Structure data in mmCIF format
- **pdb://validation/{pdb_id}**: Structure validation data and quality metrics
- **pdb://ligands/{pdb_id}**: Ligand and binding site information
- **pdb://search/{query}**: Search results for structures matching the query

## Installation

```bash
npm install
npm run build
```

## Usage

### With Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "pdb-server": {
      "command": "node",
      "args": ["/path/to/pdb-server/build/index.js"]
    }
  }
}
```

### Example Queries

1. **Search for insulin structures**:

   ```
   Use the search_structures tool to find insulin protein structures
   ```

2. **Get information about a specific structure**:

   ```
   Get detailed information about PDB structure 1ABC using get_structure_info
   ```

3. **Download structure coordinates**:

   ```
   Download the PDB file for structure 1ABC using download_structure
   ```

4. **Find structures for a UniProt protein**:

   ```
   Find PDB structures for UniProt accession P01308 using search_by_uniprot
   ```

5. **Check structure quality**:

   ```
   Get validation metrics for PDB structure 1ABC using get_structure_quality
   ```

6. **Access resources directly**:
   ```
   Show me the resource pdb://structure/1abc
   ```

## API Integration

This server integrates with:

- **RCSB PDB REST API** (https://data.rcsb.org/): For structure metadata and information
- **RCSB PDB Search API** (https://search.rcsb.org/): For advanced search capabilities
- **RCSB PDB File Download** (https://files.rcsb.org/): For structure file downloads

## Structure Data Formats

- **PDB**: Original Protein Data Bank format
- **mmCIF**: Macromolecular Crystallographic Information File (newer standard)
- **mmTF**: Macromolecular Transmission Format (binary, compressed)
- **XML**: Extensible Markup Language format

## Quality Metrics

The server provides various structure quality indicators:

- Resolution (for X-ray crystallography)
- R-work and R-free values
- Ramachandran plot statistics
- Clash scores
- Rotamer outliers
- Model validation scores

## Complementary Servers

This PDB server works well with:

- **UniProt MCP Server**: For protein sequence and functional information
- **AlphaFold MCP Server**: For predicted protein structures

Together, these provide comprehensive access to protein structure and function data.

## Error Handling

The server includes robust error handling for:

- Invalid PDB IDs
- Network connectivity issues
- API rate limiting
- Missing structure files
- Malformed requests

## Development

```bash
# Install dependencies
npm install

# Build the server
npm run build

# Run in development mode
npm run dev
```

## Attribution

This project is developed by **Augmented Nature**
🌐 Website: [augmentednature.ai](https://augmentednature.ai)

## Citation
If you use this project in your research or publications, please cite it as follows:

```bibtex @misc{pdbmcp2025, 
author = {Moudather Chelbi},
title = {Protein Data Bank (PDB) MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/PDB-MCP-Server},
note = {Accessed: 2025-06-29}

TDQS

A3.5/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: downloading structure data, retrieving structure metadata, accessing quality metrics, searching by UniProt ID, and general keyword/ID search. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., download_structure, get_structure_info, search_by_uniprot). The naming is uniform and predictable across all five tools.

Tool Count5/5

Five tools is well-scoped for a PDB (Protein Data Bank) server, covering core operations like data retrieval, search, and quality assessment without being too sparse or overwhelming. Each tool serves a clear, necessary function.

Completeness4/5

The toolset provides strong coverage for querying and retrieving PDB structure data, including search, info, quality, and download functions. A minor gap might be the lack of tools for advanced filtering or batch operations, but core workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessUnresponsive