gxl
Blog
July 13, 2026

Making biological databases agent-native with Paperclip

TL;DR

Biological databases were not designed for AI agents. Their APIs are brittle, heterogeneous, and built for the era of websites rather than autonomous systems. We extend Paperclip to index foundational molecular databases—UniProt, the PDB, and ChEMBL—into a unified, agent-native virtual filesystem. Compared to conventional API-based workflows, Paperclip enables molecule characterization and knowledge synthesis that are 2× more accurate, 10× faster, and 12× cheaper.

Protein helix
575K
UniProt Proteins
3D structure
256K
PDB Structures
Chemical compound
2.9M
ChEMBL Compounds

Today, we're adding 575,503 UniProt proteins, 256,296 experimental structures (PDB IDs), and 2,921,148 ChEMBL compounds to Paperclip. Together, this covers all reviewed proteins and their functional annotations, all experimental PDB structures and their bound ligands, and every compound tested against those proteins in ChEMBL with potencies, drug status, and target mappings.

How to use it

Already have Paperclip? These databases are included by default. Just run paperclip update. To start, ask your agent to use UniProt, the PDB, or ChEMBL directly with Paperclip. For example:

“For UniProt accession P03956, are experimental structures available? If so, which amino acids do they span?”

New to Paperclip? Install with curl -fsSL https://paperclip.gxl.ai/install.sh | bash, or add it as an MCP server at https://paperclip.gxl.ai/mcp.

See the full documentation for details.

The Problem

Before a protein can be integrated into a new workflow or engineered for enhanced performance, you need the full picture: what it does, how it's structured, and what's been tested against it. That picture starts to emerge from three databases, among others. UniProt has the biology: sequences, domains, disease associations, post-translational modifications. The PDB has the structures: 3D coordinates, bound ligands, resolution. ChEMBL has the compounds: bioassay results, drug status, mechanism of action. Each is the product of decades of public investment. Together they are among the most valuable open resources in science.

Diagram showing how a cross-database query requires orchestrating three separate APIs with pagination, rate limits, and no shared joins
A single cross-database query fans out to three separate APIs, each with its own pagination limits, schema, and rate constraints. Results must be reconciled client-side with no shared join keys.

But UniProt links out to PDB IDs, and a list of IDs tells you almost nothing. Which structures have inhibitors in the pocket? Which are just apo? You have to open each one individually. And that's just the biology and the structures. Compound data is a whole separate set of databases, each with its own schema and search interface. A kinase project might require pulling fifty structures, narrowing to only those with a co-crystallized inhibitor, then matching those ligands to bioactivity. That spans all three: UniProt for the domain boundaries, the PDB for the structures and their ligands, ChEMBL for the compounds.

Agents face the same problem, but it's the APIs that gate access to the data. Each was designed for the same one-at-a-time access pattern the browser enforces. Wrapping these APIs in MCP tools doesn't solve the underlying problem. An agent with 27 tools covering every metadata endpoint for UniProt, the PDB, and ChEMBL has more capabilities in one place. But underneath, the tools still call the same REST APIs, one record at a time, with the same pagination limits and schema boundaries. The agent has more tools. It still sits outside the data, requesting records through an endpoint rather than working with the data itself.

Paperclip's Approach

Paperclip turned biomedical literature, regulatory documents, and clinical trials into a filesystem that agents already know how to navigate. We applied the same approach for biological databases.

These databases present a different version of the problem. The knowledge in UniProt, the PDB, and ChEMBL isn't unstructured text buried in PDFs. It's already structured: curated fields, controlled vocabularies, relational identifiers. The challenge is that it's structured three different ways, in three different schemas, behind three different APIs.

We added Swiss-Prot (UniProt), all RCSB PDB metadata, and ChEMBL to Paperclip as a single unified source. The agent still has bash, but for structured biology the natural primitive is SQL. Instead of calling three APIs and reconciling the results, it writes one query that spans all three sources because the join already exists.

UniProtFull Swiss-Prot (currently version 2026_02). Includes sequences, function annotations, domains, binding sites, PTMs, variants, GO annotations, disease associations, interactions, subcellular locations, and cross-references.
RCSB PDBAll metadata from RCSB Data API: entries, polymer entities, nonpolymer entities, branched entities, assemblies, polymer/nonpolymer/branched entity instances, interfaces, chemical components, and DrugBank. No mmCIF/coordinate files.
ChEMBLFull ChEMBL (currently v37). Includes bioactivity data, compound data, drug annotations, mechanism of action data, assays, and target mappings.
Transformation from three separate API schemas into a unified Paperclip filesystem and SQL interface
Three heterogeneous API schemas restructured into a unified filesystem (for browsing) and SQL schema (for cross-database queries).

Every protein is also a path in the filesystem. Each protein's file is a pre-generated summary that pulls together the key information about a protein into one place: function, domains, disease associations, PTMs, structural overview, compound landscape. The agent can cat it for the full picture or grep it for specifics.

Case Study: Undrugged Target Landscape

To illustrate the difference in practice, we gave Claude Science, Phylo, and Paperclip the same question with a 30-minute timeout and compared their responses.

QUESTION
Which 20 human single-protein targets have the most distinct compounds with a measured IC50 or Ki in ChEMBL (exact or upper-bound measurements only) but no approved drug acting on the target (none that has reached clinical phase 4)? For each, report: gene name, UniProt accession number, total distinct compounds with IC50 or Ki data, number below 1 μM, number below 100 nM, furthest clinical phase reached, and the most potent compound (its name, or ChEMBL ID if it has no name, and its best value in nM).
Why this matters
Targets that have been tested against many compounds but still have no approved drug may reveal areas where drug discovery efforts have stalled, whether because the target is hard to drug, the compounds are toxic, or for other reasons, such as targeting approaches that failed to show efficacy or safety in clinical trials.
Claude Scienceexceeded time limit
API pagination approach
Called ChEMBL activity endpoint for human targets
Hit 1,000-record page limit
Built 50-worker thread pool to parallelize
Benchmarked throughput at ~3 pages/sec
Tried cursor pagination, CSV format, gzip
Still paginating at 30 min—cancelled
Phyloexceeded time limit
Full database download approach
Tested API: ~1.7s/query, 5,869 targets
Calculated: ≈ 5.5 hours serial. Won't scale.
Downloaded ChEMBL SQLite dump (5.76 GB)
Waited 20 minutes for download
Loaded SQLite, began writing queries
Still downloading at 30 min—cancelled
Paperclip193 seconds
5 tool calls
Queried ChEMBL bioactivities for IC50/Ki
Joined UniProt to filter human (taxon 9606)
Excluded targets with phase-4 drugs
Aggregated compound counts and potency bins
Returned 20 rows. Done.
View Paperclip's full result table
Gene NameAccessionTotal CompoundsCompounds < 1 μMCompounds < 100 nMFurthest Clinical PhaseMost Potent CompoundBest IC50/Ki (nM)
BRD4O6088511607811944514CHEMBL54249520.1
BACE1P5681710227746450734CHEMBL39694030.0002
RORCP514499710859850764CHEMBL46358230.1
IRAK4Q9NWZ39177816255274CHEMBL44439470.022
MAP4K1Q929185937566627250CHEMBL48594510.005
PIM1P113095843499440424CHEMBL31050210.001
MAPK1P284825777533743354CHEMBL41150010.00431
P2RX7Q995725586509536814CHEMBL23243430.01
KDM1AO603415215410822064CHEMBL47988490.05
MAPK14Q165395058415626814CHEMBL51862160.03
CNR2P349724955378123774CHEMBL18229450.01
MDM2Q009874867404332774CHEMBL51873400.0019
NAMPTP434904430410428843DAPORINAD0.0301
RIPK1Q135464202245215524CHEMBL61928840.003
MMP2P082534198270718334CHEMBL4218820.004
LRRK2Q5S0074113383427894CHEMBL45465040.001
MCL1Q078204036222914034CHEMBL57828830.001
PTPN1P1803140249042694MICROCYSTIN-LR0.1
ACACBO007634017337113722CHEMBL10898820.21
IDO1P149024005269513254CHEMBL4325370.018

Same question, same 30-minute window. The difference is where the data sits. Claude Science and Phylo are very capable agents, but they still rely on the same APIs for data access, so they suffer from similar failure modes. Interestingly, Phylo recognized that the APIs wouldn't scale and resorted to downloading the entire ChEMBL corpus, but timed out before it could finish the analysis.

Benchmark Results

We worked with a protein engineer to ground these questions in real workflows and confirm each represents a realistic, scientifically meaningful analysis. We benchmarked 20 questions spanning target characterization, structural profiling, and druggability assessment, each with a 30-minute timeout across five setups that differ only in how the agent accesses protein data.

Average performance of Paperclip vs other agents across 20 protein questions
Completion
100%
80%
85%
55%
40%
Accuracy
97.1%
78.3%
81.9%
53.8%
39.5%
Avg Time
1.7m
11m
6.5m
15m
12m
17m
9.1m
23m
13m
Avg Cost
$0.22
N/A
N/A
$2.83
$1.24
$3.14
$1.93
Paperclip (Ours)PhyloClaude ScienceMCPWeb Search
Completed runsIncludes timeouts & failures
Breakdown by question complexity: single → family → corpus
Single (4 questions)
CompletedAccuracyLatency (C/A)*Cost (C/A)*
Paperclip4/4100%64s$0.13
Phylo4/497.3%331sN/A
Claude Science4/497.1%396sN/A
MCP4/495.6%235s$0.64
Web Search4/499.1%294s$0.67
Family (8 questions)
CompletedAccuracyLatency (C/A)*Cost (C/A)*
Paperclip8/899.8%146s$0.30
Phylo7/884.8%449s / 620sN/A
Claude Science7/881.5%898s / 1011sN/A
MCP5/861.8%844s / 979s$1.91 / $2.96
Web Search3/836.7%1405s / 1652s$3.42 / $3.98
Corpus (8 questions)
CompletedAccuracyLatency (C/A)*Cost (C/A)*
Paperclip8/892.9%78s$0.19
Phylo5/862.3%352s / 902sN/A
Claude Science6/874.7%692s / 971sN/A
MCP2/825%422s / 1456s$0.78 / $3.79
Web Search1/812.5%734s / 1667s$2.47 / $3.54

*Accuracy is over all questions (timeouts = 0%). C = completed runs only; A = all questions (timeouts use max-timeout latency and $0 cost).

Breakdown by database
UniProt (5 questions)
CompletedAccuracyLatency (C/A)*Cost (C/A)*
Paperclip5/599.8%94s$0.20
Phylo5/597.6%153sN/A
Claude Science5/599.1%218sN/A
MCP5/599.2%426s$0.98
Web Search4/578.3%915s / 1092s$2.38 / $2.53
PDB (5 questions)
CompletedAccuracyLatency (C/A)*Cost (C/A)*
Paperclip5/599.8%86s$0.25
Phylo5/596.3%487sN/A
Claude Science5/599%674sN/A
MCP3/558.8%654s / 1113s$1.50 / $2.62
Web Search2/539.7%879s / 1432s$2.03 / $3.24
ChEMBL (5 questions)
CompletedAccuracyLatency (C/A)*Cost (C/A)*
Paperclip5/599.8%100s$0.18
Phylo2/539.8%676s / 1360sN/A
Claude Science2/535.3%1165s / 1549sN/A
MCP1/517.2%441s / 1356s$1.09 / $4.65
Web Search1/520%371s / 1515s$0.85 / $3.83
Cross-DB (5 questions)
CompletedAccuracyLatency (C/A)*Cost (C/A)*
Paperclip5/588.9%130s$0.26
Phylo4/579.6%420s / 699sN/A
Claude Science5/594.1%1046sN/A
MCP2/540%734s / 1189s$1.59 / $3.07
Web Search1/520%336s / 1508s$0.97 / $2.97

*Accuracy is over all questions (timeouts = 0%). C = completed runs only; A = all questions (timeouts use max-timeout latency and $0 cost).

Claude Code + Paperclip completed all 20 questions with 97% accuracy. No other system exceeded 85% completion. Accuracy on completed questions was comparable across all systems (96–99%), suggesting the biggest gap is in reaching the data, not reasoning over it.

Every system handled single-protein lookups. The gap opened at family scale, where Claude Code + MCP dropped to 5/8 and Claude Code + Web Search to 3/8, and widened further at corpus scale: Claude Code + Paperclip finished 8/8 averaging 78 seconds, while Claude Code + MCP completed 2/8 and Claude Code + Web Search 1/8. Claude Science and Phylo held up better here because they have sandboxed compute and can write scripts to work around API limits, but the APIs underneath still constrained what they could finish in 30 minutes.

Results Summary

Paperclip completed 20/20 questions, averaging 1.7 minutes and $0.22 each.

Of the questions other systems completed:

Phylo completed 16/20, averaging 6.5 min (3.7× slower)
Claude Science completed 17/20, averaging 11.8 min (7.4× slower)
CC + MCP completed 11/20, averaging 9.1 min / $1.24 (5.2× slower, 5.5× more expensive)
CC + Web Search completed 8/20, averaging 12.8 min / $1.93 (9× slower, 9.4× more expensive)

Every Paperclip question finished in under 5 minutes with no timeouts. Comparisons measured on the same questions each system completed.

Benchmark Design

Question design

Questions are organized along two axes. Four database categories (UniProt-only, PDB-only, ChEMBL-only, and Cross-Database) test whether the agent can navigate each source and join across them. Three scope levels (single-protein, protein-family, and corpus-wide) test how the agent handles increasing data scale. Every category contains one single-protein question and two at the family and corpus level, where the harder, more representative work happens.

Each expected answer comes from running the ground-truth query directly against the source database APIs, so every result can be checked against the source directly. Each question includes a structured answer template specifying exact column names, sort order, and inclusion rules, so both the agent's output and the ground truth follow the same format. Each ground truth contains a set of verifiable values (e.g., 102 values for a 17-row, 6-column PDE family table). Accuracy is scored by an LLM judge that compares the agent's response against ground truth and reports the fraction of values correct out of the total.

All systems are given a 30-minute timeout per question. Accuracy in this benchmark is measured across all 20 questions. Runs that timed out or failed to produce a response receive 0% for that question.

PIK3CA Variant Domains
For human PIK3CA (UniProt P42336), map all annotated natural amino acid variants onto a domain map of PIK3CA. For each domain, report domain name, UniProt residue range, domain length, variant count, and variant identifiers (UniProt notation, e.g. H1047R); sort domains by start position ascending. Report total natural variant count, then variants outside any annotated domain as a separate section with count and variant list. All positions use UniProt numbering.
Why this question
Looking at where natural variants fall relative to a protein's functional domains can help highlight which regions, if any, may be tied to disease when mutated or dysregulated.
Metalloprotease Active Sites
Across all reviewed human enzymes with a fully-specified metalloendopeptidase EC number (3.4.24.N, excluding the unassigned 3.4.24.-), build one table: accession number, gene name, protein name, EC number, every catalytic active-site residue with UniProt position and description (if annotated), every binding-site residue with UniProt position and ligand name, and total active-site count per enzyme. All residue positions must use UniProt numbering.
Why this question
Surveying an enzyme family for conserved catalytic and binding-site residues creates an important rubric for determining exploitable regions for engineering.
SH2 Subdomain Expansion
Among all reviewed human entries with domain annotation "SH2", return the top 20 by distinct PDB cross-reference count in UniProt: gene name, accession number, PDB count, SH2 domain UniProt residue ranges, molecular weight, and disease associations (full disease names as annotated in UniProt, semicolon-separated; "None" if none).
Why this question
Identification of disease-associated proteins that contain a specific subdomain, such as the SH2 domain here, provides a starting point for systematic assessment of potential drug off-targets and guides possible target and/or disease indication expansion of a domain-targeting drug.
IL6 Structure Triage
List all PDB structures for human interleukin-6 (UniProt P05231): PDB ID, resolution, experimental structure determination method, organism of the origin, all bound non-polymer ligands, and the PDB residue range resolved.
Why this question
Before starting a structure-based campaign, it's helpful to build and refine the campaign strategy based on insights from the available experimental structures, such as protein construct dimensions; experimental determination method; presence of ligands, cofactors or binding partners; resolution ranges; etc.
ERBB Family Survey
For the four human ERBB receptor tyrosine kinase family members (EGFR, ERBB2, ERBB3, ERBB4), count their PDB structures with resolution < 3.0 Å. For each member, report the total structure count, then the top 5 structures by resolution: PDB ID, gene name, resolution, experimental method, and all non-polymer entities (comp_id and PDB component name) excluding HOH, SO4, GOL, PEG, EDO, PO4, Na, Cl, and Mg.
Why this question
The ERBB receptors are among the most-studied kinases in cancer, but they vary in quality of available structures and by what ligands are bound, so comparing them side-by-side enables informed selection of the best structures for therapeutic design.
Top Ligand Diversity
Which 20 human proteins have the most distinct non-polymer entities (excluding HOH, SO4, GOL, PEG, EDO, and PO4) co-crystallized across their PDB structures? For each, report: gene name, UniProt accession number, number of distinct PDB entries, number of distinct ligand compound ids, and highest resolution achieved.
Why this question
Ligand diversity across a protein's structures reveals where the field has concentrated its structural pharmacology effort, and by contrast which targets may offer unexplored opportunities.
EGFR Compounds
For human EGFR (UniProt P00533), list the 20 compounds with the lowest IC50 or Ki values in ChEMBL (exact or upper-bound measurements only; exclude lower-bound estimates). For each, report: compound name, ChEMBL compound ID, activity type (IC50 or Ki), value in nM, and furthest clinical phase (0 if preclinical).
Why this question
Ranking every compound tested against a target by potency shows at a glance what chemistry has been shown to work well and where the best starting points are for new compound design.
Nav Channel Compounds
For each human voltage-gated sodium channel (Nav1.1 through Nav1.9), how many distinct compounds have been tested in ChEMBL? For each, report: gene name, UniProt accession number, total compounds tested, number of compounds with IC50 or Ki values below 1 μM, and furthest clinical phase of any compound tested against that member.
Why this question
Comparing how much pharmacology exists across the Nav channel family shows which subtypes are well-explored and which are neglected.
Promiscuous Compounds
Which 20 compounds in ChEMBL have been tested against the most distinct human protein targets (single protein targets only) with pchembl_value >= 5 (i.e., potency at or below 10 μM)? For each, report: compound name (use ChEMBL ID if name is not present), ChEMBL ID, number of distinct targets, and furthest clinical phase (0 if preclinical).
Why this question
The most promiscuous compounds, those hitting many unrelated targets, are either a polypharmacology liability or a repurposing opportunity worth surfacing across the full bioactivity record.
IL6 PDB ChEMBL Ligands
For human interleukin-6 (UniProt P05231), list every co-crystallized non-polymer ligand in PDB structures (excluding HOH, SO4, GOL, PEG, EDO, PO4, Na, Cl, and Mg). For each ligand occurrence, determine whether the same chemical structure exists in ChEMBL (match by InChIKey). Report: PDB ID, ligand compound id, ligand name, ChEMBL match (Yes/No), ChEMBL compound ID (N/A if not matched), and the lowest IC50 or Ki value in nM measured against P05231 (exact or upper-bound measurements only; N/A if not matched or if matched but no IL-6 bioactivity).
Why this question
Matching structure with potency (i.e. co-crystallized ligands to the ChEMBL bioactivity) enables the structure-activity relationship determination that's critical for advancing drug discovery and development.
MMP Pre-task Structures
For each human MMP (gene name starting with MMP in UniProt), build a two-part structural triage: (1) a family overview table (one row per MMP: gene, accession, sequence length, mature chain range, formally annotated Region features only with residue ranges, total PDB structures, number of structures with at least one non-artifact ligand bound), then (2) the top 1 structure per MMP (prioritizing: ligand-bound first, then highest resolution; showing PDB ID, resolution, structure determination method, UniProt residue range from alignment, and all co-crystallized non-polymer entities (excluding HOH, SO4, GOL, PEG, EDO, PO4).
Why this question
Mapping structure availability and quality is a key prerequisite to starting any structure-based work on an enzyme family.
Disease Weak No Structure
Which reviewed human proteins have at least one formally named disease association in UniProt, at least one distinct compound with measured IC50 or Ki against a single-protein target in ChEMBL (exact or upper-bound measurements only), but no such compound below 1 μM and zero experimental structures in PDB? Report the total count, then list the top 20 by total distinct compounds tested: gene name, accession, disease count, disease names, total distinct compounds tested, best IC50 or Ki (nM), and furthest clinical phase reached.
Why this question
Proteins that are implicated in disease but are lacking both structural information and potent compounds, are a prime target for structure-guided compound design as clear SAR is often what's missing to improve weak binders.
Benchmark setup

Claude Code + Paperclip (Ours)

Claude Code with Sonnet 4.6 plus Paperclip.

Phylo

Questions submitted through the Phylo web UI with default settings. We added one instruction: “do not ask for clarification, answer the question directly,” since otherwise the system would wait for user input that never comes.

Claude Science

Questions submitted through the Claude Science web UI with all default settings, including Sonnet 4.6, all default tool connectors, and the reviewer agent enabled.

Claude Code + MCP

Claude Code with Sonnet 4.6, the bash tool, and 27 MCP tools covering every metadata endpoint for UniProt, the PDB, and ChEMBL.

Claude Code + Web Search

Claude Code with Sonnet 4.6, the web search tool, and the web fetch tool. No programmatic database access.

Conclusion

Molecule characterization and knowledge synthesis requires joining functional annotations, structures, and bioactivity data that today live behind three incompatible APIs. Agents can reason over that data once they have it (accuracy on completed questions was high across every system we tested), but most of them never finish, because pagination, rate limits, and schema friction eat the clock.

Restructuring UniProt, the PDB, and ChEMBL into a unified filesystem and SQL schema removes that bottleneck. On the same 20 questions, Paperclip completed every run with 97% accuracy, finishing corpus-wide queries in under two minutes on average. The lesson is not that agents need better tools for calling APIs; it is that the data itself needs to be agent-native.