For Developers & AI
Open API over 15,000+ rare pre-modern texts translated to English. No auth needed to start — sign in for a free key to lift rate limits and help us see what you're building.
The easiest path: just ask Claude
You don't need to install anything to use this collection with an AI. Open Claude (or any assistant with web access) and ask it to look something up on sourcelibrary.org — it will search, read pages, and quote with citation links. No SDK, no key, no setup.
“Use sourcelibrary.org to find what Paracelsus says about the spagyric process. Quote a few passages with citation URLs.”
“Search sourcelibrary.org for early modern texts on the harmony of the spheres — give me three with page links.”
“On sourcelibrary.org, read the first 20 pages of Fludd's Utriusque Cosmi Historia and summarize the cosmological model.”
For richer, structured access — semantic search, 50-page bulk reads, image search, DOI-backed citations — install the MCP server below or call the API directly.
30-second start (API)
One endpoint, no key required to begin. It speaks JSON-RPC over HTTP, so anything that can POST JSON can talk to it.
curl -X POST https://sourcelibrary.org/api/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1,
"method": "tools/call",
"params": {
"name": "search_concept",
"arguments": { "query": "prima materia", "limit": 5 }
}
}'fetch('https://sourcelibrary.org/api/mcp', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0', id: 1,
method: 'tools/call',
params: {
name: 'search_concept',
arguments: { query: 'prima materia', limit: 5 }
}
})
}).then(r => r.json()).then(console.log)CORS is open (Access-Control-Allow-Origin: *) — paste the snippet above into any browser console and it works.
Building something? Grab a free key.
The endpoints work without one — keys lift rate limits, give your traffic attribution, and help us learn what people are building so we can keep this open and free. Takes a minute.
What you can build
A researcher studying Renaissance natural philosophy wants to trace how the concept of “spiritus mundi” evolves from Ficino through Agrippa to Fludd. With the MCP server connected to Claude, they search across all three authors' translated works in a single conversation, pull exact passages with page citations, and compile a comparative analysis with DOI-backed references — work that would take days in a physical archive.
The same tools work for building research apps, enriching datasets with primary source references, or giving AI systems grounded access to pre-modern texts that aren't in their training data.
MCP Server
Gives Claude (and any MCP client) direct access to the full collection — search, read, quote, and browse 150,000+ illustrations. The endpoint is plain JSON-RPC over HTTP, so you can also call it from any HTTP client without an MCP library (see the snippets above). Pick whichever path fits.
Remote MCP Server (Streamable HTTP)
No install needed — connect any MCP client directly.
- Open claude.ai → Settings → Connectors (Claude Desktop uses the same Connectors settings).
- Click Add custom connector.
- Name it
Source Library— keep this exact name; shared pages and artifacts that call the library look your connector up by it. - URL:
https://sourcelibrary.org/api/mcp— leave the OAuth fields empty (no authentication), then save. - In any chat, open the tools menu, switch the connector on, and ask away — try the prompts below.
-H "Authorization: Bearer YOUR_KEY" for higher limitsclaude mcp add source-library https://sourcelibrary.org/api/mcp
{
"mcpServers": {
"source-library": {
"url": "https://sourcelibrary.org/api/mcp"
}
}
}claude mcp add source-library -- npx -y @source-library/mcp-server
Tools
| search_library | Full-text search across books and page content |
| search_translations | Search inside translated text across the whole library |
| search_concept | Semantic / conceptual passage search — matches paraphrases and adjacent ideas, not just keywords |
| search_within_book | Search inside a specific book's pages |
| list_books | Browse with filters — language, year, category, translation status |
| get_book | Book metadata: summary, chapters, edition info, DOI |
| get_book_text | Read 50+ pages in one call — OCR, translation, or both |
| get_quote | Exact text of a single page with citation URL |
| search_images | Search 150,000+ historical illustrations by subject, symbol, type |
Try asking Claude
“Search for references to ‘prima materia’ across the collection. Which authors discuss it, and how do their treatments differ?”
“Read the full translation of Fludd's History of Both Worlds, pages 1–50. Summarize the cosmological framework.”
“What does Copernicus say about the Sun's centrality in De Revolutionibus? Find the key passages with citation URLs.”
“Find all alchemical emblems depicting the ouroboros. What texts are they from?”
Command Line
Same tools as the MCP server, but standalone with colored terminal output. Add --json for scripts.
# Install npm install -g @source-library/mcp-server # Search the collection source-library search "Paracelsus" --language=German # Search inside translations source-library translations "harmony of the spheres" # Read a book source-library text history-of-both-worlds-macrocosm-fludd --from=1 --to=50 # Get exact text for quoting source-library quote history-of-both-worlds-macrocosm-fludd 57 # Browse illustrations source-library images --subject=alchemy --type=emblem # JSON output for piping source-library search "alchemy" --json | jq .results
REST API
Direct HTTP access, no authentication. The MCP server and CLI use these same endpoints.
Base URL: https://sourcelibrary.org/api/searchFull-text search across books and page content
| q | string | Search query (required) |
| language | string | Filter by language |
| year_from / year_to | number | Publication year range |
| sort | string | relevance, date_asc, date_desc, title |
GET /search?q=philosopher's stone&language=Latin/books/:id/textGet full book text (OCR, translation, or both) in a single call
| content | string | ocr, translation, or both (default) |
| from / to | number | Page range (inclusive) |
| format | string | json (structured) or plain (concatenated text) |
GET /books/history-of-both-worlds-macrocosm-fludd/text?content=translation&from=1&to=50| GET | /books/:id | Book metadata, summary, DOI |
| GET | /books/library | Browse with language/category/collection filters |
| GET | /books/:id/search | Search within a book's pages |
| GET | /books/:id/quote | Single-page text for verbatim quoting |
| GET | /verify?book_id=&page= | Flat alias of /books/:id/quote — verbatim page text + citation block, for web agents with URL allow-lists |
| GET | /gallery | Search 150,000+ historical illustrations |
| GET | /catalog/csv | Download the full catalogue as CSV |
Bulk dataset access
Pulling OCR text, translations, or page-level data in bulk? That tier is keyed — use the form above to request one, or email us with what you're building. Reviewed within 24 hours.
Citation URLs
Every page includes a citation URL linking directly to the source. Published editions have DOIs via Zenodo.
https://sourcelibrary.org/book/history-of-both-worlds-macrocosm-fludd?page=57
https://sourcelibrary.org/book/history-of-both-worlds-macrocosm-fludd
Author, Title, trans. Source Library (Year), p. N. DOI: 10.5281/zenodo.xxxxx
/llms.txt
Complete API documentation formatted for LLM consumption.
Pipeline Architecture
How books flow through 10 processing stages: Lambda workers, SQS queues, Gemini AI, backpressure controls. Live counts, diagrams, cost breakdowns.