Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.Embassy-of-the-Free-Mind/source-library

NPM · @SOURCE-LIBRARY/MCP-SERVER · SCANNED AUG 3

Search 22,000+ rare pre-modern texts with AI English translations, summaries, and 73K+ images.

+25 this week 67 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security86
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability64
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2893 tokens (~263/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @source-library/mcp-server

# add to Claude Code
claude mcp add embassy-of-the-free-mind-source-library -- npx -y @source-library/mcp-server
# add to Codex CLI
codex mcp add embassy-of-the-free-mind-source-library -- npx -y @source-library/mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "embassy-of-the-free-mind-source-library": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@source-library/mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add embassy-of-the-free-mind-source-library --command npx --arg -y --arg @source-library/mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  embassy-of-the-free-mind-source-library:
    command: "npx"
    args: ["-y", "@source-library/mcp-server"]
// mcp.json
{
  "mcpServers": {
    "embassy-of-the-free-mind-source-library": {
      "command": "npx",
      "args": [
        "-y",
        "@source-library/mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +10
    • Provenance: fail → unverified security
    • Install scripts: pass → unverified security
    • Known CVEs: unverified → partial security
    • Maintenance: pass → unverified functional
    • License: pass → unverified functional
    • Dependency health: unverified → partial functional
    • Stability: unverified → 0.23 functional
    • Licence: MIT functional
  • 1 Aug 26 +25
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Dependency health: partial → unverified functional
    • MCP protocol: unverified → pass functional
    • Tool coverage: unverified → 100 functional
  • 31 Jul 26 +16
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −62
    • Malware scan: pass → unverified security
    • Known CVEs: partial → unverified security
    • Dependency health: partial → unverified functional
    • Tool coverage: 100 → unverified functional
    • First check of Schema quality: unverified functional
  • 29 Jul 26 +35
    • Provenance: unverified → fail security
    • Known CVEs: unverified → partial security
    • Install scripts: unverified → pass security
    • Schema quality: unverified → excellent functional
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → partial functional
    • License: unverified → pass functional
    • Licence: MIT functional
  • 27 Jul 26 42

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@source-library/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 94 packages

94 packages in the resolved dependency tree · 94 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 11 exposed · ~2,498 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
check_duplicate ~173

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.

NameTypeReqDescription
authorstringAuthor name (any format: 'First Last', 'Last, First', etc.)
ia_idstringInternet Archive identifier (optional, for exact fingerprint match)
languagestringLanguage hint for semantic search (optional)
manifeststringIIIF manifest URL (optional, for exact fingerprint match)
titlestringyesBook title (original language or English)
yearstringPublication year (optional, for context)

No output schema declared.

No examples provided.

get_book ~112

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.

NameTypeReqDescription
book_idstringyesThe book ID

No output schema declared.

No examples provided.

get_book_text ~411

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.

NameTypeReqDescription
book_idstringyesThe book ID
chapternumberChapter index (0-based). Returns chapter text with embedded [Page N] markers for citation. Preferred over from/to. If the chapter has multiple parts, returns part 1 — check parts_total in response.
contentstringWhich text to return: 'ocr' (original), 'translation' (English), or 'both' (default)
formatstringResponse format: 'json' (structured, default) or 'plain' (concatenated text with page markers)
fromnumberStart page number (inclusive). Use with to for explicit page ranges. If the response has truncated=true, use the next from/to from truncation_note.
include_metadatabooleanInclude page-level metadata (model, language, page_type, columns)
partnumberPart number (1-based) for large chapters split into multiple parts.
tonumberEnd page number (inclusive). Recommended chunk size: 50 pages. If the response has truncated=true, use the next from/to from truncation_note.

No output schema declared.

No examples provided.

get_quote ~87

Get the exact translated text of a single page for quoting. Returns the full 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.

NameTypeReqDescription
book_idstringyesThe book ID or slug
pagenumberyesPage number to quote from

No output schema declared.

No examples provided.

list_books ~191

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.

NameTypeReqDescription
categorystringFilter by category
languagestringFilter by language (e.g., 'Latin', 'German', 'Greek')
limitnumberMaximum results (default 100, max 200)
searchstringFilter by title or author (diacritic-insensitive, e.g., 'bohme' matches 'Böhme')
skipnumberPagination offset (default 0)
sortstringSort order (default: recent-translation)

No output schema declared.

No examples provided.

search_concept ~346

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.

NameTypeReqDescription
languagestringFilter by original language (e.g., Latin, German, Greek, Arabic, Chinese, Sanskrit, Hebrew, Persian, Tibetan). Use this filter when you want passages from a specific tradition — unfiltered English qu…
limitnumberMax passages (default 15, max 50)
querystringyesA concept or natural-language description — full sentences are fine. Unlike search_translations, this does NOT require words that appear in the corpus.
year_fromnumberFilter by publication year (start, inclusive)
year_tonumberFilter by publication year (end, inclusive)

No output schema declared.

No examples provided.

search_images ~498

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

NameTypeReqDescription
book_idstringOnly return images from a specific book or artwork id
figurestringFigure depicted (e.g., 'Mercury', 'philosopher', 'king')
limitnumberMaximum results to return (default 20, max 50)
min_qualitynumberMinimum gallery quality score 0-1 (default 0.5). Applies to gallery illustrations only.
querystringText search across descriptions, subjects, figures, titles, and artists (e.g., 'ouroboros', 'Raphael fresco', 'Botticelli')
sourcestringWhich collection to search. 'all' (default) returns both illustrations and standalone artworks, interleaved. 'gallery' = book illustrations only. 'artworks' = standalone paintings/prints/sculptures o…
subjectstringSubject filter (e.g., 'alchemy', 'astronomy', 'anatomy')
symbolstringSymbol depicted (e.g., 'ouroboros', 'caduceus', 'sun')
typestringImage type. For book illustrations: woodcut, engraving, emblem, diagram, frontispiece, portrait, illustration, map, chart, decorative, musical_score, symbol. For standalone artworks: painting, drawin…
year_fromnumberFilter by publication year (start)
year_tonumberFilter by publication year (end)

No output schema declared.

No examples provided.

search_library ~244

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.

NameTypeReqDescription
has_doibooleanOnly return books with DOIs
has_translationbooleanOnly return books with translations
languagestringFilter by original language (e.g., 'Latin', 'German', 'Greek', 'Sanskrit')
limitnumberMaximum results (default 10, max 100)
offsetnumberPagination offset (default 0)
querystringyesSearch query (searches titles, authors, translations, OCR text)
sortstringSort order (default: relevance)
year_fromnumberFilter by publication year (start, inclusive)
year_tonumberFilter by publication year (end, inclusive)

No output schema declared.

No examples provided.

search_translations ~251

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'.)

NameTypeReqDescription
book_idstringSearch within a specific book only
languagestringFilter by book's original language (e.g., 'Latin', 'German', 'Greek')
limitnumberMaximum results (default 20, max 50)
querystringyesSearch query — searches inside page translations and OCR text (e.g., 'divine providence', 'philosopher stone', 'harmony of the spheres')
year_fromnumberFilter by publication year (start, inclusive)
year_tonumberFilter by publication year (end, inclusive)

No output schema declared.

No examples provided.

search_within_book ~77

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.

NameTypeReqDescription
book_idstringyesThe book ID to search within
querystringyesSearch query — finds matches in both original text (OCR) and English translations

No output schema declared.

No examples provided.

submit_feedback ~108

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

NameTypeReqDescription
emailstringYour email for follow-up (optional)
messagestringyesYour feedback, bug report, or feature request (2-5000 characters)
namestringYour name (optional)
pagestringRelated page URL or path (optional, e.g., 'https://sourcelibrary.org/book/...')

No output schema declared.

No examples provided.