calibre-mcp

Tested by AddonAudit · 24 Oct 2026

io.github.caelum29/calibre-mcp

Calibre ebook library server: search, read content, curate metadata, semantic search, gated writes.

Install

npx -y [email protected]

Client fit

Inferred for Cursor, Claude, Codex. Basis: stdio. This is not a certification from those products.

Transports: stdio.

Links

Search

Audit report

Tested by AddonAudit.

Sandbox handshake completed, with warnings: medium known vulnerabilities; install scripts present.

Automated smoke test, not a security guarantee.

Version
0.9.0
Audited
24 Oct 2026
Package
npm calibre-mcp
Advisories
0 critical, 0 high, 8 medium, 0 low
Time to ready
621 ms
Network
Disabled. A connection was attempted while offline.
  • Pass Version. Pinned npm [email protected]
  • Warn Known vulnerabilities. Medium advisories were returned. No critical or high advisories were returned.
  • Pass License. MIT
  • Warn Install scripts. Install-time scripts: prepare
  • Pass Credential patterns. No credential patterns in the published artifact.
  • Pass Package size. 348.0 KB
  • Pass Maintainer activity. Active 0 days ago.
  • Pass Sandbox. MCP handshake completed. 14 tools listed.

Tools

  • calibre_list_libraries List the Calibre libraries available on the Content Server and which one is the default. Call this first to discover valid library names.
  • calibre_search Find books by exact title, author, ISBN, tag, or Calibre query syntax (mode=meta), or by full text (mode=fts). scope=book returns short keyword snippets from inside one book; first hits often land in TOC/front matter — for definitional or t
  • calibre_get_book Get full metadata (authors, ISBN, formats, comments, cover) for one book by its id or uuid (id and bookId are interchangeable — pass the bookId from a search result). Set include_cover=true only when the cover image itself must be inspected
  • calibre_get_content Extract a book's text as a capped, fenced excerpt; pass the returned nextCursor token verbatim to walk the whole book, or jump to a char position with offset (e.g. a search passage's charStart). Set structure=true for a chapter map with per
  • calibre_get_figures List a book's figures — images the text references, identified by caption (Figure 1-2 / Рис. 3.1) — with page + caption per figure, then fetch chosen ones as images via indexes (≤3 per call). Captions let you pick figures before spending im
  • calibre_list_categories Browse library categories (Authors, Tags, Series, Languages, Publisher). No field → list the categories; with a field → its values + counts, filterable via a valueFilter regex (case-insensitive by default; a leading inline flag like `(?i)`
  • calibre_semantic_search Meaning-based search over the local index. scope=library ranks books; scope=book (needs bookId) ranks passages within one book. target=figures searches figure captions instead of text — use when the user asks for a diagram/chart/schema; hit
  • calibre_build_index Build the semantic index for specific books (required: bookId, ids, or query — full-library indexing is deferred). A query selects ALL matching books (no 100-book cap); large selections run long and may outlive the client timeout — re-run t
  • calibre_find_duplicates Find probable duplicate books. mode=identical (exact title+authors) or similar (fuzzy) group the library (or ids/query/filter subset — filter takes a bundle name) with a merge-safety score; mode=compare diffs 2+ ids field-by-field. Read-onl
  • calibre_quality_report Scan books for metadata problems: missing fields, raw-filename titles, invalid ISBNs, author-sort mismatches, series gaps. Defaults to the whole library; narrow with ids/query/filter (a bundle name) or specific checks. Read-only.
  • calibre_recover_metadata Propose real metadata for a book with a missing/raw-filename title via online provider lookup (ISBN from its identifiers or text, else title/author) on Open Library and Google Books. Preview only — returns a changes object for calibre_updat
  • calibre_board_data Internal endpoint for the in-chat cover-board widget. Returns the cached payload of a recent search. Do not call as the model — search results already contain everything this returns.
  • calibre_open_book Internal endpoint for the in-chat widgets' Open button. Launches a book in the local Calibre viewer via the calibre:// scheme. Do not call as the model — use calibre_get_book to show a book instead.
  • calibre_ping Health check: confirms the MCP server can reach the running Calibre Content Server via calibredb, and reports semantic-search status (embedding model, dependency, index vector count). Returns library categories on success.
Sandbox log excerpt
e_book","calibre_merge_books","calibre_manage_bundles","calibre_board_data","calibre_open_book","calibre_ping"],"writeEnabled":false,"serverUrl":"http://localhost:8080"}
[calibre-mcp] INFO calibre-mcp listening on stdio
(node:23) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
[calibre-mcp] ERROR content-server request failed {"url":"http://localhost:8080/ajax/library-info","aborted":false,"cause":"fetch failed"}
[calibre-mcp] WARN Calibre Content Server not reachable at http://localhost:8080 — start it in Calibre (Connect/share → Start Content server) or set CALIBRE_MCP_SERVER_URL
[calibre-mcp] INFO extractor backends {"pdf":null,"epub":null,"detectedAt":"2026-10-24T01:05:23.021Z"}

Raw audit JSON

Metadata checks

  • Repository activity: Active in the last 180 days
  • License: Recognized SPDX id
  • Metadata quality: High

Score 100 uses public metadata only. It is separate from the audit tier. Payment never changes a score. How listings are checked.

Tested by AddonAudit

Free to use on this listing. The mark links back to this page and does not change the score or the tier.

Light

Tested by AddonAudit
[![Tested by AddonAudit](https://addonaudit.com/badges/tested.svg)](https://addonaudit.com/addon/io-github-caelum29-calibre-mcp/)
<a href="https://addonaudit.com/addon/io-github-caelum29-calibre-mcp/"><img alt="Tested by AddonAudit" src="https://addonaudit.com/badges/tested.svg" width="240" height="240"></a>
Tested by AddonAudit
[![Tested by AddonAudit](https://addonaudit.com/badges/tested-dark.svg)](https://addonaudit.com/addon/io-github-caelum29-calibre-mcp/)
<a href="https://addonaudit.com/addon/io-github-caelum29-calibre-mcp/"><img alt="Tested by AddonAudit" src="https://addonaudit.com/badges/tested-dark.svg" width="240" height="240"></a>
Tested by AddonAudit Tested by AddonAudit
[![Tested by AddonAudit](https://addonaudit.com/badges/tested-seal.svg)](https://addonaudit.com/addon/io-github-caelum29-calibre-mcp/)
<a href="https://addonaudit.com/addon/io-github-caelum29-calibre-mcp/"><img alt="Tested by AddonAudit" src="https://addonaudit.com/badges/tested-seal.svg" width="240" height="240"></a>
[![Tested by AddonAudit](https://addonaudit.com/badges/tested-seal-dark.svg)](https://addonaudit.com/addon/io-github-caelum29-calibre-mcp/)
<a href="https://addonaudit.com/addon/io-github-caelum29-calibre-mcp/"><img alt="Tested by AddonAudit" src="https://addonaudit.com/badges/tested-seal-dark.svg" width="240" height="240"></a>

Get your add-on audited

Request a free audit of a public MCP server or AI coding add-on. A request does not buy a listing, a tier, or a score change.

Request an audit Featured option

Data notes
  • Tool count is not part of this registry record, so it is blank.