Skip to main content
Glama
RCSB PDB MCP Server

RCSB PDB MCP Server

by cnyambura

RCSB PDB MCP Server

An MCP (Model Context Protocol) server that provides tools for interacting with the RCSB Protein Data Bank API.

Overview

This server exposes tools for:

  • Querying PDB entry information

  • Retrieving polymer entity details

  • Downloading structure files in various formats

  • Making custom API queries to RCSB Data API

Related MCP server: Protein MCP Server

Installation

  1. Install dependencies using uv:

uv sync

Or with pip:

pip install -e .

Running the Server

As a Standalone Server

python server.py

With Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "rcsb-pdb": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/cnyambura/Documents/rcsb_api/api/rcsb-mcp",
        "run",
        "server.py"
      ]
    }
  }
}

After adding the configuration, restart Claude Desktop.

Available Tools

1. get_pdb_entry

Get comprehensive information about a PDB entry.

Parameters:

  • pdb_id (string): 4-character PDB identifier (e.g., '1ABC', '7BQY')

Returns: JSON with structure information including title, experimental method, resolution, dates, authors, and source organism.

Example:

get_pdb_entry("1ABC")

2. get_polymer_entity

Get information about a polymer entity (protein, DNA, RNA) within a PDB entry.

Parameters:

  • pdb_id (string): 4-character PDB identifier

  • entity_id (string, optional): Entity number (default: "1")

Returns: JSON with molecule name, sequence, molecular weight, entity type, and source organism.

Example:

get_polymer_entity("1ABC", "1")

3. download_structure_file

Download a structure file from RCSB PDB.

Parameters:

  • pdb_id (string): 4-character PDB identifier

  • file_format (string, optional): Format to download (default: "pdb")

    • pdb: PDB format

    • cif: mmCIF format

    • xml: PDBML/XML format

    • pdb.gz: Compressed PDB

    • cif.gz: Compressed mmCIF

    • xml.gz: Compressed XML

  • output_dir (string, optional): Directory to save the file

  • filename (string, optional): Custom filename

Returns: JSON with download status and file path.

Example:

download_structure_file("1ABC", "pdb", "/path/to/output")

4. query_rcsb_api

Make a custom query to the RCSB Data API.

Parameters:

  • endpoint (string): API endpoint path (e.g., 'assembly/1ABC-1', 'uniprot/P12345')

  • params (string, optional): JSON string of query parameters

Common endpoints:

  • entry/{pdb_id}: Entry-level information

  • polymer_entity/{pdb_id}_{entity_id}: Polymer entity info

  • assembly/{pdb_id}-{assembly_id}: Biological assembly info

  • nonpolymer_entity/{pdb_id}_{entity_id}: Small molecule/ligand info

  • uniprot/{uniprot_id}: UniProt cross-reference

Returns: JSON containing the API response.

Example:

query_rcsb_api("assembly/1ABC-1")

5. search_pdb_by_organism

Get information about how to search for PDB entries by organism.

Parameters:

  • organism (string): Organism name (e.g., 'Homo sapiens', 'E. coli')

Returns: Instructions and example queries for searching by organism.

Example Usage with Claude

Once connected to Claude Desktop, you can ask:

  • "Get information about PDB entry 1ABC"

  • "Download the structure file for 7BQY in mmCIF format"

  • "Show me the polymer entity details for PDB 4HHB entity 1"

  • "Query the assembly information for 1ABC assembly 1"

Project Structure

rcsb-mcp/
├── rcsb_api.py        # Core RCSB API functions
├── server.py          # FastMCP server implementation
├── pyproject.toml     # Project dependencies
└── README.md          # This file

API Documentation

For more information about the RCSB Data API, visit:

License

MIT

Available Tools

5 tools
download_structure_fileA

Download a structure file from RCSB PDB.

Args: pdb_id: The 4-character PDB identifier (e.g., '1ABC') file_format: Format to download. Options: - 'pdb': PDB format (default) - 'cif': mmCIF format - 'xml': PDBML/XML format - 'pdb.gz': Compressed PDB - 'cif.gz': Compressed mmCIF - 'xml.gz': Compressed XML output_dir: Directory to save the file (optional, defaults to current directory) filename: Custom filename (optional, uses PDB ID + extension by default)

Returns: JSON string with download status and file path

Inputs: pdb_id (required), filename, output_dir, file_format. Returns: result

get_pdb_entryA

Get comprehensive information about a PDB entry.

Args: pdb_id: The 4-character PDB identifier (e.g., '1ABC', '7BQY')

Returns: JSON string containing entry information including: - Structure title and description - Experimental method (X-ray, NMR, Cryo-EM, etc.) - Resolution - Deposition and release dates - Authors and citation information - Organism source

Inputs: pdb_id (required). Returns: result

get_polymer_entityA

Get information about a polymer entity (protein, DNA, RNA) within a PDB entry.

Args: pdb_id: The 4-character PDB identifier (e.g., '1ABC') entity_id: The entity number within the structure (default: '1')

Returns: JSON string containing polymer entity information including: - Molecule name and description - Sequence information - Molecular weight - Entity type (polypeptide, DNA, RNA, etc.) - Source organism

Inputs: pdb_id (required), entity_id. Returns: result

query_rcsb_apiA

Make a custom query to the RCSB Data API.

This is an advanced tool for accessing any RCSB Data API endpoint directly.

Args: endpoint: API endpoint path (e.g., 'assembly/1ABC-1', 'uniprot/P12345') params: Optional JSON string of query parameters (e.g., '{"format": "json"}')

Common endpoints: - entry/{pdb_id}: Entry-level information - polymer_entity/{pdb_id}{entity_id}: Polymer entity info - assembly/{pdb_id}-{assembly_id}: Biological assembly info - nonpolymer_entity/{pdb_id}{entity_id}: Small molecule/ligand info - uniprot/{uniprot_id}: UniProt cross-reference

Returns: JSON string containing the API response

Inputs: endpoint (required), params. Returns: result

search_pdb_by_organismA

Get information about how to search for PDB entries by organism.

This tool provides guidance on using the RCSB search API to find structures from specific organisms.

Args: organism: Organism name (e.g., 'Homo sapiens', 'E. coli')

Returns: Instructions and example queries for searching by organism

Inputs: organism (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: retrieving entries, polymer entities, downloading files, querying the API, and searching by organism. No overlaps in functionality.

    Naming Consistency4/5

    Tool names follow a predictable pattern with 'get_' for retrieval and descriptive verbs like 'download' and 'query'. Minor inconsistency with 'search_pdb_by_organism' using a different verb, but overall consistent.

    Tool Count5/5

    Five tools is well-scoped for an RCSB PDB server, covering the essential operations without unnecessary bloat or excessive granularity.

    Completeness4/5

    The set covers entry retrieval, entity retrieval, file downloads, and raw API access. The 'search_pdb_by_organism' tool only provides guidance rather than performing actual searches, but the 'query_rcsb_api' tool can be used for that purpose, so no major gaps.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      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.
      5
      28
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables searching, retrieving, and downloading protein structure data from the RCSB Protein Data Bank. Supports intelligent protein structure search, comprehensive data retrieval, and multiple file format downloads for bioinformatics research.
      3
      MIT
    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables interaction with the RCSB Protein Data Bank to search, analyze, and visualize protein structures. It provides specialized tools for downloading coordinate files and performing structural modifications like residue mutations and metal atom replacements.
      -