RCSB PDB
liveBiologyScienceChemistryRCSB Protein Data Bank — experimental macromolecular structures. Keyless.
Tools
searchrequired: query"Find protein structure of [target]" / "search PDB for [protein]" / "is there a crystal structure of [X]" / "[disease target] structures" / "CRISPR / kinase / GPCR structures" — text search the RCSB P
queryreqstring—return_typeoptstring—limitoptnumber—Try it
structurerequired: pdb_id"PDB entry [1abc] details" / "fetch protein structure [pdb_id]" / "metadata for [PDB ID]" — full PDB entry record by ID (e.g. "1abc", "7BV2"). Returns experimental method (X-ray / cryo-EM / NMR), reso
pdb_idreqstring—Try it
polymer_entityrequired: pdb_id, entity_id"Chain [N] of PDB [ID]" / "sequence of chain in [pdb_id]" — fetch the polymer-entity (protein/DNA/RNA chain) metadata for a specific PDB entry. Returns sequence, source organism, UniProt cross-referen
pdb_idreqstring—entity_idreqstring—Try it
ligandrequired: pdb_id, ligand_id"Ligand / cofactor / drug bound to [pdb_id]" / "small molecule in [PDB entry]" — fetch a non-polymer ligand record (small molecule, cofactor, ion, or bound drug) for a PDB entry. Use to inspect what's
pdb_idreqstring—ligand_idreqstring—Try it
assemblyrequired: pdb_id"Biological assembly of [pdb_id]" / "functional oligomer for [PDB entry]" — fetch a biological assembly record (the functional oligomeric unit, which often differs from the crystallographic asymmetric
pdb_idreqstring—assembly_idoptstring—Try it
summaryrequired: pdb_idLightweight lookup for a PDB entry by 4-char ID: tries the RCSB UniProt endpoint first, falls back to the core entry record. Returns title, experimental method, resolution, and deposition date without
pdb_idreqstring—Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/rcsb-pdb/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/rcsb-pdb/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search","arguments":{"query": "hello"}}}'Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("search", {"query":"example"});// Or ask in plain English:
const answer = await px.ask("rcsb protein data bank — experimental macromolecular structures");