RCSB PDB MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@RCSB PDB MCP Server Get information about PDB entry 4HHB"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Install dependencies using uv:
uv syncOr with pip:
pip install -e .Running the Server
As a Standalone Server
python server.pyWith 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 identifierentity_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 identifierfile_format(string, optional): Format to download (default: "pdb")pdb: PDB formatcif: mmCIF formatxml: PDBML/XML formatpdb.gz: Compressed PDBcif.gz: Compressed mmCIFxml.gz: Compressed XML
output_dir(string, optional): Directory to save the filefilename(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 informationpolymer_entity/{pdb_id}_{entity_id}: Polymer entity infoassembly/{pdb_id}-{assembly_id}: Biological assembly infononpolymer_entity/{pdb_id}_{entity_id}: Small molecule/ligand infouniprot/{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 fileAPI Documentation
For more information about the RCSB Data API, visit:
License
MIT
Available Tools
5 toolsdownload_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
Scored across 5 tools
Each tool has a clearly distinct purpose: retrieving entries, polymer entities, downloading files, querying the API, and searching by organism. No overlaps in functionality.
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.
Five tools is well-scoped for an RCSB PDB server, covering the essential operations without unnecessary bloat or excessive granularity.
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
Related MCP Connectors
RCSB PDB MCP — experimentally determined macromolecular structures.
PDBe (Protein Data Bank in Europe, EBI) MCP.
NCBI E-utilities MCP — federated Entrez search/fetch.
PubMed MCP — wraps the NCBI E-utilities API (biomedical literature, free, no auth)
Related MCP Servers
- AlicenseAqualityDmaintenanceA 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.528MIT
- AlicenseBqualityDmaintenanceEnables 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.3MIT
- FlicenseNot gradedqualityNot gradedmaintenanceEnables 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.-
- AlicenseNot gradedqualityCmaintenanceEnables querying and retrieving experimental protein structures from the RCSB Protein Data Bank, including text search, full entry records, polymer entities, ligands, and assemblies.287 npmMIT