What is Z39.50 & SRU?
Z39.50 and SRU (Search/Retrieve via URL) are standard international client-server communication protocols for searching and retrieving bibliographic records from library databases. Instead of creating catalog records manually from scratch, librarians can query external databases to download standard MARC21 records, a practice known as Copy-Cataloging.
Ready-to-Use Pre-Configured Servers
MyOPAC comes preloaded with presets for popular global catalogs, which can be enabled instantly under /librarian/admin/z3950-servers:
- MyOPAC Central Catalog: A direct, cross-library shared catalog internal query. No account required.
- Library of Congress (LoC): Queries the US national library using SRU at
lx2.loc.gov:443/sru/lcdb. Free public access. - Bibliotheque nationale de France (BnF): Queries France's national catalog using SRU 1.2 / UNIMARC at
catalogue.bnf.fr/api/SRU. Free public access. - Open Library: Queries the Internet Archive's catalog via a custom JSON API wrapper. Free public access.
- WorldCat (OCLC): Queries the largest global union catalog. Requires an OCLC cataloging subscription and active credentials (userid/password).
Pure TypeScript Z39.50 Client
Traditionally, connecting to binary Z39.50 servers required compiled native binaries (such as the YAZ library). MyOPAC features a custom, pure TypeScript client that runs directly in the Node runtime with zero native dependencies. It connects over raw TCP, executes Initialize/Search/Present request handshakes, and decodes indefinite-length BER responses into standard ISO2709 formats in real time.
How to Copy-Catalog Book Records
- Navigate to the copy-cataloging panel at /librarian/z3950.
- Select the source servers you wish to search in parallel using the checkbox menu.
- Enter search queries such as the ISBN (10- or 13-digit), Title, or Author and click Search.
- Review results instantly, sorting by Rank, Title, or Publication Year, or filtering by source.
- Click Import next to a search hit to automatically pre-fill the cataloging metadata editor.