Making biological databases agent-native with Paperclip
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.
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.
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:
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.
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.
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.
View Paperclip's full result table
| Gene Name | Accession | Total Compounds | Compounds < 1 μM | Compounds < 100 nM | Furthest Clinical Phase | Most Potent Compound | Best IC50/Ki (nM) |
|---|---|---|---|---|---|---|---|
| BRD4 | O60885 | 11607 | 8119 | 4451 | 4 | CHEMBL5424952 | 0.1 |
| BACE1 | P56817 | 10227 | 7464 | 5073 | 4 | CHEMBL3969403 | 0.0002 |
| RORC | P51449 | 9710 | 8598 | 5076 | 4 | CHEMBL4635823 | 0.1 |
| IRAK4 | Q9NWZ3 | 9177 | 8162 | 5527 | 4 | CHEMBL4443947 | 0.022 |
| MAP4K1 | Q92918 | 5937 | 5666 | 2725 | 0 | CHEMBL4859451 | 0.005 |
| PIM1 | P11309 | 5843 | 4994 | 4042 | 4 | CHEMBL3105021 | 0.001 |
| MAPK1 | P28482 | 5777 | 5337 | 4335 | 4 | CHEMBL4115001 | 0.00431 |
| P2RX7 | Q99572 | 5586 | 5095 | 3681 | 4 | CHEMBL2324343 | 0.01 |
| KDM1A | O60341 | 5215 | 4108 | 2206 | 4 | CHEMBL4798849 | 0.05 |
| MAPK14 | Q16539 | 5058 | 4156 | 2681 | 4 | CHEMBL5186216 | 0.03 |
| CNR2 | P34972 | 4955 | 3781 | 2377 | 4 | CHEMBL1822945 | 0.01 |
| MDM2 | Q00987 | 4867 | 4043 | 3277 | 4 | CHEMBL5187340 | 0.0019 |
| NAMPT | P43490 | 4430 | 4104 | 2884 | 3 | DAPORINAD | 0.0301 |
| RIPK1 | Q13546 | 4202 | 2452 | 1552 | 4 | CHEMBL6192884 | 0.003 |
| MMP2 | P08253 | 4198 | 2707 | 1833 | 4 | CHEMBL421882 | 0.004 |
| LRRK2 | Q5S007 | 4113 | 3834 | 2789 | 4 | CHEMBL4546504 | 0.001 |
| MCL1 | Q07820 | 4036 | 2229 | 1403 | 4 | CHEMBL5782883 | 0.001 |
| PTPN1 | P18031 | 4024 | 904 | 269 | 4 | MICROCYSTIN-LR | 0.1 |
| ACACB | O00763 | 4017 | 3371 | 1372 | 2 | CHEMBL1089882 | 0.21 |
| IDO1 | P14902 | 4005 | 2695 | 1325 | 4 | CHEMBL432537 | 0.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.
Breakdown by question complexity: single → family → corpus
| Completed | Accuracy | Latency (C/A)* | Cost (C/A)* | |
|---|---|---|---|---|
| Paperclip | 4/4 | 100% | 64s | $0.13 |
| Phylo | 4/4 | 97.3% | 331s | N/A |
| Claude Science | 4/4 | 97.1% | 396s | N/A |
| MCP | 4/4 | 95.6% | 235s | $0.64 |
| Web Search | 4/4 | 99.1% | 294s | $0.67 |
| Completed | Accuracy | Latency (C/A)* | Cost (C/A)* | |
|---|---|---|---|---|
| Paperclip | 8/8 | 99.8% | 146s | $0.30 |
| Phylo | 7/8 | 84.8% | 449s / 620s | N/A |
| Claude Science | 7/8 | 81.5% | 898s / 1011s | N/A |
| MCP | 5/8 | 61.8% | 844s / 979s | $1.91 / $2.96 |
| Web Search | 3/8 | 36.7% | 1405s / 1652s | $3.42 / $3.98 |
| Completed | Accuracy | Latency (C/A)* | Cost (C/A)* | |
|---|---|---|---|---|
| Paperclip | 8/8 | 92.9% | 78s | $0.19 |
| Phylo | 5/8 | 62.3% | 352s / 902s | N/A |
| Claude Science | 6/8 | 74.7% | 692s / 971s | N/A |
| MCP | 2/8 | 25% | 422s / 1456s | $0.78 / $3.79 |
| Web Search | 1/8 | 12.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
| Completed | Accuracy | Latency (C/A)* | Cost (C/A)* | |
|---|---|---|---|---|
| Paperclip | 5/5 | 99.8% | 94s | $0.20 |
| Phylo | 5/5 | 97.6% | 153s | N/A |
| Claude Science | 5/5 | 99.1% | 218s | N/A |
| MCP | 5/5 | 99.2% | 426s | $0.98 |
| Web Search | 4/5 | 78.3% | 915s / 1092s | $2.38 / $2.53 |
| Completed | Accuracy | Latency (C/A)* | Cost (C/A)* | |
|---|---|---|---|---|
| Paperclip | 5/5 | 99.8% | 86s | $0.25 |
| Phylo | 5/5 | 96.3% | 487s | N/A |
| Claude Science | 5/5 | 99% | 674s | N/A |
| MCP | 3/5 | 58.8% | 654s / 1113s | $1.50 / $2.62 |
| Web Search | 2/5 | 39.7% | 879s / 1432s | $2.03 / $3.24 |
| Completed | Accuracy | Latency (C/A)* | Cost (C/A)* | |
|---|---|---|---|---|
| Paperclip | 5/5 | 99.8% | 100s | $0.18 |
| Phylo | 2/5 | 39.8% | 676s / 1360s | N/A |
| Claude Science | 2/5 | 35.3% | 1165s / 1549s | N/A |
| MCP | 1/5 | 17.2% | 441s / 1356s | $1.09 / $4.65 |
| Web Search | 1/5 | 20% | 371s / 1515s | $0.85 / $3.83 |
| Completed | Accuracy | Latency (C/A)* | Cost (C/A)* | |
|---|---|---|---|---|
| Paperclip | 5/5 | 88.9% | 130s | $0.26 |
| Phylo | 4/5 | 79.6% | 420s / 699s | N/A |
| Claude Science | 5/5 | 94.1% | 1046s | N/A |
| MCP | 2/5 | 40% | 734s / 1189s | $1.59 / $3.07 |
| Web Search | 1/5 | 20% | 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.
Paperclip completed 20/20 questions, averaging 1.7 minutes and $0.22 each.
Of the questions other systems completed:
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.
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.