Source Library MCP Server

Search and cite 500+ translated historical texts (alchemy, Hermeticism, Renaissance) with DOI-backed academic citations. Access rare Latin and German manuscripts from the 15th-18th centuries.

Documentation

Source Library MCP Server

npm version

Search, read, and cite 22,000+ rare pre-modern texts (alchemy, Hermetica, Kabbalah, theology, early science) with AI-generated English translations. 11 tools (full-text + semantic search, reading, exact quoting, image search, duplicate detection, feedback). CLI + MCP server, no API key needed.

Quick Start

Claude Code

claude mcp add source-library -- npx -y @source-library/mcp-server

Claude Desktop

Add to your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

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

CLI

# Install globally
npm install -g @source-library/mcp-server

# Or run directly
npx @source-library/mcp-server search "philosopher's stone"

From Source

git clone https://github.com/Embassy-of-the-Free-Mind/sourcelibrary-v2.git
cd sourcelibrary-v2/mcp-server
npm install && npm run build
npm start

11 Tools

Search & Discovery

search_library

Full-text search across books and page content. Returns matching books and pages with citation URLs.

ParameterTypeRequiredDescription
querystringYesSearch query
languagestringNoFilter: Latin, German, Greek, Sanskrit, etc.
year_fromnumberNoPublication year start
year_tonumberNoPublication year end
has_doibooleanNoOnly books with DOIs
has_translationbooleanNoOnly translated books
sortstringNorelevance, date_asc, date_desc, title
limitnumberNoMax results (default 10, max 100)

search_translations

Search inside translated text across the entire library. Find what historical authors wrote about any topic. Returns passage snippets with page numbers, book info, and citation URLs.

ParameterTypeRequiredDescription
querystringYesSearch inside page text
languagestringNoFilter by book's original language
year_fromnumberNoPublication year start
year_tonumberNoPublication year end
book_idstringNoSearch within a specific book only
limitnumberNoMax results (default 20, max 50)

search_concept

Semantic passage search using Gemini embeddings. Finds conceptually related passages even when the modern term won't literally appear — e.g. "distributed cognition" maps to passages about active intellect, art of memory, wax-tablet metaphors. Prefer search_translations for literal phrases; use search_concept when the concept matters more than the wording.

ParameterTypeRequiredDescription
querystringYesConcept or natural-language description
languagestringNoFilter by original language (set explicitly to surface non-Latin/German texts)
year_fromnumberNoPublication year start
year_tonumberNoPublication year end
limitnumberNoMax passages (default 15, max 50)

search_within_book

Search inside a specific book's pages. Returns matching pages with snippets and citation URLs.

ParameterTypeRequiredDescription
book_idstringYesThe book ID to search within
querystringYesSearch query

list_books

Browse the collection with filters. Returns title, author, language, year, and translation progress.

ParameterTypeRequiredDescription
searchstringNoFilter by title/author (diacritic-insensitive)
languagestringNoFilter by language
categorystringNoFilter by category
sortstringNorecent-translation, recent, title-asc, title-desc
limitnumberNoMax results (default 100, max 200)

Reading

get_book

Detailed book metadata: summary, index stats, chapters, edition info, DOI.

ParameterTypeRequiredDescription
book_idstringYesBook ID

get_book_text

Read a book. Prefer chapter for chapter-at-a-time reading; falls back to from/to page ranges. Each response includes a truncated flag with a truncation_note giving the next from/to values when content was cut by the page-budget limit — agents must check truncated rather than infer end-of-book from pages_returned.

ParameterTypeRequiredDescription
book_idstringYesBook ID
chapternumberNoChapter index (0-based); preferred over from/to
partnumberNoPart number (1-based) for chapters split across parts
contentstringNoocr, translation, or both (default)
fromnumberNoStart page (inclusive)
tonumberNoEnd page (inclusive)
formatstringNojson (structured) or plain (concatenated text)
include_metadatabooleanNoInclude page-level metadata (model, language, etc.)

get_quote

Get the exact translated text of a single page for quoting. Returns the full translation, original OCR, and a formatted citation. Always use this before putting text in quotation marks — never paraphrase from memory.

ParameterTypeRequiredDescription
book_idstringYesBook ID or slug
pagenumberYesPage number to quote from

Gallery

search_images

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). Each result has a source field: gallery (book illustration) or artwork (standalone work).

ParameterTypeRequiredDescription
querystringNoText search across descriptions, subjects, figures, artists
sourcestringNoall (default), gallery, or artworks
typestringNowoodcut, engraving, emblem, diagram, painting, fresco, etc.
subjectstringNoSubject (alchemy, astronomy, anatomy)
figurestringNoDepicted figure (Mercury, philosopher, king)
symbolstringNoSymbol (ouroboros, caduceus, sun)
year_fromnumberNoPublication year start
year_tonumberNoPublication year end
book_idstringNoOnly images from a specific book or artwork id
min_qualitynumberNoMin gallery quality score 0-1 (default 0.5)
limitnumberNoMax results (default 20, max 50)

Curation

check_duplicate

Check whether a book already exists in Source Library before importing. Uses 4-tier matching (source fingerprint, title+author normalization, keyword search, semantic similarity) and returns a confidence level + suggestion. Use this before every import to avoid duplicates.

ParameterTypeRequiredDescription
titlestringYesBook title (original or English)
authorstringNoAuthor name (any format)
yearstringNoPublication year (optional context)
languagestringNoLanguage hint for semantic search
ia_idstringNoInternet Archive identifier (exact fingerprint match)
manifeststringNoIIIF manifest URL (exact fingerprint match)

Feedback

submit_feedback

Submit feedback, bug reports, or feature requests directly to the Source Library team.

ParameterTypeRequiredDescription
messagestringYesYour feedback (2-5000 characters)
namestringNoYour name
emailstringNoEmail for follow-up
pagestringNoRelated page URL

CLI

Most tools are also available as a standalone CLI with colored terminal output. (search_concept and check_duplicate are MCP-only for now.)

# 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 694f49d3... --from=1 --to=50

# Book details
source-library book 694f49d3...

# Browse the gallery
source-library images --subject=alchemy --type=emblem

# Submit feedback
source-library feedback "Great translation of Fludd!" --name="Jane"

# JSON output for piping
source-library search "alchemy" --json | jq .results

Example Research Prompts

"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."

"Find all alchemical emblems depicting the ouroboros. What texts are they from?"

"What does Copernicus say about the Sun's centrality in De Revolutionibus? Find the key passages with citation URLs."

Citation URLs

Every page returned by the tools includes a citation URL:

https://sourcelibrary.org/book/fludd-utriusque?page=57

Published editions include DOIs minted via Zenodo.

Development

npm run dev    # Run with hot reload (tsx)
npm run build  # Compile TypeScript
npm start      # Run compiled version
npm run cli    # Run CLI in dev mode

License

MIT

Links