# Embassy-of-the-Free-Mind/sourcelibrary-v2 [Health: Active]

**Category:** 🔬 Research  
**Repository:** https://github.com/Embassy-of-the-Free-Mind/sourcelibrary-v2/tree/main/mcp-server  
**GitHub Stars:** 24  
**npm Downloads (last month):** 247  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/embassy-of-the-free-mind-sourcelibrary-v2

## Description
Search and cite rare historical texts (alchemy, Hermeticism, Renaissance philosophy) with DOI-backed academic citations from Source Library

## Tools
Capabilities this server exposes over MCP:

- **search_library** — 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.
- **list_books** — 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_translations** — 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'.)
- **search_concept** — 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_within_book** — 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_book** — 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.
- **get_book_text** — 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_quote** — 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_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). 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_duplicate** — 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** — Submit feedback, bug reports, feature requests, or comments to the Source Library team. Messages go directly to the maintainers.
- **share_findings** — 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).

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

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

## Documentation

## What Embassy-of-the-Free-Mind/sourcelibrary-v2 does
Embassy-of-the-Free-Mind/sourcelibrary-v2 exposes Source Library through both an MCP server and a command-line interface. It gives agents access to over 22,000 pre-modern books covering subjects such as alchemy, Hermeticism, Kabbalah, theology, and early science. Many texts include AI-generated English translations, alongside OCR and bibliographic information.

The server is designed for research workflows that need discoverable sources and page-level evidence. Search responses can include matching books, passages, page numbers, and citation URLs. Book metadata includes summaries, edition details, chapter information, translation progress, and DOI data where available.

## How it works
The search tools cover several research patterns. `search_library` searches books and page content, while `search_translations` looks within translated passages. `search_concept` uses Gemini embeddings to find semantically related material when the wording of a modern query does not appear literally in a historical text. `search_within_book` narrows a query to one identified book, and `list_books` browses the collection by metadata and filters.

Reading is handled through `get_book` and `get_book_text`. Text can be requested by chapter or page range, in OCR, translation, or both. Responses from `get_book_text` can be truncated by page limits, so agents should inspect the returned truncation status and continuation details.

For evidence intended for quotation, `get_quote` retrieves one page’s translated text, the original OCR, and a formatted citation. Its citation link is a stable `sourcelibrary.org/q/...` shortlink intended to accompany the quoted passage.

## Setup and configuration
No API key is required. The MCP package can be launched directly with npx:

```bash
npx -y @source-library/mcp-server
```

Claude Code can register it with:

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

Claude Desktop users add a `source-library` entry with `npx` as the command and `-y @source-library/mcp-server` as its arguments in the platform-specific MCP configuration file. The package can also be installed globally with npm for CLI use, or built from the repository with `npm install`, `npm run build`, and `npm start`.

## Tools and capabilities
The 12 tools are organized around these functions:

- Search books, pages, translations, and related concepts.
- Browse titles, authors, languages, categories, dates, and translation progress.
- Read chapters or page ranges with structured or plain output.
- Retrieve exact translated page text with OCR and citation details.
- Search illustrations and standalone artworks using subjects, figures, symbols, types, and quality filters.
- Check potential imports against existing books using several matching methods.
- Send feedback or share research dossiers with ordered citations.

Image search covers illustrations extracted from books as well as standalone artworks from collections including the Met, Rijksmuseum, Wikimedia, and the National Gallery of Art. The curation tool helps prevent duplicate imports by comparing identifiers, normalized metadata, keywords, and semantic similarity.

## Limitations and notes
Search limits vary by tool. For example, full-library search allows up to 100 results, translation and concept searches allow up to 50, and image search allows up to 50. `get_quote` is page-oriented and requires both a book identifier and page number.

Semantic discovery is distinct from literal text search: use translation search for exact wording and concept search for related ideas. Original-language filtering can be important when looking beyond Latin or German material. Feedback and shared findings are sent to the Source Library team for review rather than acting as local records.

_Full upstream README: https://allmcps.com/mcp/embassy-of-the-free-mind-sourcelibrary-v2/readme_

