MCP.so
Sign In

Source Library

@Embassy-of-the-Free-Mind

About Source Library

The world's largest library of translated ancient texts. AI-powered OCR and translation of Renaissance and early modern manuscripts.

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "source-library": {
      "command": "npx",
      "args": [
        "-y",
        "@source-library/mcp-server"
      ]
    }
  }
}

Tools

12

Full-text search across Source Library's 22,000+ rare historical books. Searches titles, authors, translations, and OCR text. Returns matching books and page snippets with citation URLs. ORIENTATION HINT: when the user has named a specific author or work, call get_book directly (or list_books to find the ID first) — the AI-generated book summary is usually the right first answer and saves repeated passage hunting.

Browse the catalog by metadata — filter by author/title fragment, language, category, or translation recency. Returns books with title, author, language, year, page counts, and translation progress. Use this to discover WHAT EXISTS by an author or in a tradition before searching content; for content matches (passages on a topic) use search_translations or search_concept.

Search inside translated page text across the entire library. THE tool for sweeping across many books for evidence on a theme. Unlike search_library (which matches titles/authors), this searches inside the actual text. Returns passage snippets with page numbers, book info, and citation URLs. ORIENTATION HINT: if the user has named a specific author or work, prefer get_book first — every book has an AI-generated summary + chapter outline that is usually the right first read. Use search_translations when looking for evidence across multiple books. (Also available as 'search_passages'.)

Conceptual / semantic passage search across the whole library. Use when the modern term won't literally appear in historical texts — e.g. "distributed cognition" maps to passages about active intellect, art of memory, wax tablet metaphors; "social contract" maps to pre-Hobbesian discussions of consent and authority. Ranks passages by cosine similarity on Gemini embeddings, so paraphrases and conceptually adjacent phrasings match even when no keyword overlaps. ORIENTATION HINT: if the user named a specific author or work, prefer get_book first — semantic search is expensive and best reserved for cross-corpus discovery. Prefer search_translations for literal phrases or distinctive single terms; use search_concept when the concept matters more than the wording. Similarity calibration: 0.70+ strong match, 0.55–0.70 worth reading but verify, below 0.55 mostly conceptual drift.

Search inside a specific book's pages (OCR and translations). Returns matching pages with snippets and citation URLs. Use after finding a book to locate specific passages.

Get a book's AI-generated summary, chapter list, index stats, edition metadata, DOI, page counts, and processing status. THIS IS THE RIGHT FIRST CALL whenever the user has named a specific author or work — the summary is typically a multi-paragraph orientation covering the book's argument, structure, and significance, often answering the question without any further searching. Pair with get_book_text to read selected chapters, or search_within_book to locate passages inside it.

READ A BOOK — start here. Preferred: use 'chapter' param to read one chapter at a time (includes page markers like [Page 42] for citation). Or use page ranges (from/to) for focused reading. Call get_book first to see the chapter list. TRUNCATION: the response always includes truncated: true/false. When truncated=true, the truncation_note field gives the exact next from/to values to call — this means content was cut short by a page-budget limit, NOT that the book ended. An AI agent MUST NOT infer end-of-book from pages_returned alone; always check truncated first. Budget limits apply to anonymous callers (~50 pages per 24h); sign in at sourcelibrary.org/auth/signin or get an API key at sourcelibrary.org/developers for higher limits.

Get the exact translated text of a single page for quoting. Returns the verbatim translation, original OCR text, and a formatted citation. ALWAYS use this tool before putting text in quotation marks — copy the exact text from the response, do not paraphrase or reconstruct from memory. The response headline is citation_link (the stable sourcelibrary.org/q/… shortlink) — present it to the user alongside the quote and its page number. Render as: > [exact translation text, verbatim] > — [Author], p. [N]. [citation_link]

Search the visual collection: 50,000+ illustrations extracted from book pages PLUS 23,000+ standalone artworks (paintings, frescoes, prints, sculptures from Met, Rijksmuseum, Wikimedia, NGA). Filter by type, subject, figure, symbol, year, book, or text query. Each result has a `source` field — `gallery` (illustration in a book) or `artwork` (standalone museum work). Use `type=painting` or `type=fresco` to find standalone works; `type=woodcut`, `type=engraving`, `type=emblem` etc. surface mostly book illustrations. The `source` parameter narrows the search: 'all' (default), 'gallery' (illustrations only), or 'artworks' (standalone works only).

Check if a book already exists in Source Library before importing. Uses 4-tier matching: source fingerprint, title+author normalization, keyword search, and semantic similarity. Returns confidence level, matches with URLs, and a suggestion (safe to import / review matches / likely duplicate). Use this BEFORE every import to avoid duplicates.

Submit feedback, bug reports, feature requests, or comments to the Source Library team. Messages go directly to the maintainers.

Share a research dossier back to the Source Library team — a title, an optional summary, and an ordered list of citations (the passages your thesis rests on). Each citation is a reference { book_id, page, note }, NOT copied text: the library re-renders the canonical quote from the reference, so links stay authoritative. Use this when the user has assembled a thesis backed by passages across one or more books and wants to contribute it back. Like submit_feedback, it goes to the team for review (not an instant public page).

Overview

What is Source Library?

Source Library is an MCP server and CLI that searches, reads, and cites 22,000+ rare pre-modern texts (alchemy, Hermetica, Kabbalah, theology, early science) with AI-generated English translations. It provides 12 tools for full-text and semantic search, reading, quoting, image search, duplicate detection, feedback, and sharing findings. No API key is needed.

How to use Source Library?

Install via npm (npm install -g @source-library/mcp-server) or run directly with npx @source-library/mcp-server. For Claude Code, use claude mcp add source-library -- npx -y @source-library/mcp-server. For Claude Desktop, add a JSON entry to the config file. The CLI supports commands like source-library search "philosopher's stone" and source-library text <book_id> --from=1 --to=50.

Key features of Source Library

  • 12 tools for search, reading, quoting, and curation
  • 22,000+ rare pre-modern texts with AI translations
  • Semantic passage search using Gemini embeddings
  • 50,000+ book illustrations plus 23,000+ artworks
  • Citation URLs and DOIs for published editions
  • Duplicate detection before importing books

Use cases of Source Library

  • Search for “prima materia” across the collection and compare author treatments
  • Read the full translation of Fludd’s History of Both Worlds and summarize its cosmology
  • Find all alchemical emblems depicting the ouroboros with source texts
  • Locate key passages about the Sun’s centrality in Copernicus’s De Revolutionibus
  • Submit feedback or share a research dossier with the Source Library team

FAQ from Source Library

What is the difference between search_translations and search_concept?

search_translations finds literal phrases in translated text; search_concept uses semantic embeddings to find conceptually related passages even when the modern term doesn’t appear.

Do I need an API key to use Source Library?

No, the server works without any API key.

What data does Source Library include?

It includes 22,000+ rare pre-modern texts (alchemy, Hermetica, Kabbalah, theology, early science) and 73,000+ images (book illustrations and standalone artworks from museums).

How are citations handled?

Every page returned includes a citation URL (e.g., https://sourcelibrary.org/book/...?page=57). Published editions have DOIs minted via Zenodo.

What transports and authentication are supported?

The server supports MCP (for Claude Desktop/Code) and a standalone CLI. No authentication is required.

Frequently asked questions

What is the difference between `search_translations` and `search_concept`?

`search_translations` finds literal phrases in translated text; `search_concept` uses semantic embeddings to find conceptually related passages even when the modern term doesn’t appear.

Do I need an API key to use Source Library?

No, the server works without any API key.

What data does Source Library include?

It includes 22,000+ rare pre-modern texts (alchemy, Hermetica, Kabbalah, theology, early science) and 73,000+ images (book illustrations and standalone artworks from museums).

How are citations handled?

Every page returned includes a citation URL (e.g., `https://sourcelibrary.org/book/...?page=57`). Published editions have DOIs minted via Zenodo.

What transports and authentication are supported?

The server supports MCP (for Claude Desktop/Code) and a standalone CLI. No authentication is required.

Comments

More Developer Tools MCP servers