Calibre MCP
Calibre ebook library server: search, read content, curate metadata, semantic search, gated writes.
Connector by caelum29 · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/caelum29-calibre-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 14 read · 4 write · 4 delete
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 22
Read from the source code; the running server may list different tools.
Read 14 · Look things up without changing anything.
calibre_board_datacalibre_find_duplicatescalibre_get_bookcalibre_get_contentcalibre_get_figurescalibre_list_categoriescalibre_list_librariescalibre_open_bookcalibre_pingcalibre_quality_reportcalibre_recover_metadatacalibre_search
Show 2 more tools
calibre_semantic_searchcalibre_widget_log
Write 4 · Create, change, send or run things.
calibre_add_bookcalibre_build_indexcalibre_extract_isbncalibre_update_book
Delete 4 · Delete, drop, revoke or wipe things.
calibre_bulk_updatecalibre_manage_bundlescalibre_merge_bookscalibre_remove_book
Secrets and settings it asks for
Other settings (environment variables or headers).
CALIBRE_MCP_CALIBREDB_PATHCALIBRE_MCP_ENABLE_WRITECALIBRE_MCP_LIBRARYCALIBRE_MCP_SERVER_URL
Network hosts it talks to 8
archive.org· found in codecalibre-ebook.com· found in codegithub.com· found in codegoogleapis.com· found in codeopenlibrary.org· found in codepolicies.google.com· found in coderaw.githubusercontent.com· found in codeunpkg.com· found in code
Files it touches
/opt/calibre/calibredb/opt/homebrew/bin/pdfimages/opt/homebrew/bin/pdftohtml/opt/homebrew/bin/pdftoppm/opt/homebrew/bin/pdftotext/opt/homebrew/bin/python3/opt/homebrew/bin/unzip- Your home directory (~)
- Any path the agent passes to its tools
Tools (22)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
calibre_add_bookAdd a book fileImport a local ebook file (EPUB/PDF/MOBI/…) into the library. The file must live under an allowed import root and be reachable by the Calibre server process. Requires writes to be enabled.
calibre_board_dataCover board data (widget-internal)read-onlyInternal 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_build_indexBuild semantic indexBuild 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 the same call to resume, since up-to-date books are skipped. Extracts, chunks, and embeds each book. Set keywordOnly=true (or when the embedding model is absent, it happens automatically) to build a keyword-only index that powers mode:"keyword" search with zero ML dependencies. Re-run after adding books; use force to re-index unchanged ones. Set prune=true to…
calibre_bulk_updateBulk update book metadatacan change or delete dataApply the same metadata changes (tags, series, publisher, etc.) to a set of books selected by ids, a search query, or filter (a bundle name). Preview-first: returns the per-book diff without writing unless preview is set false. A book set is required (never all books). Requires writes to be enabled.
calibre_extract_isbnExtract ISBN from book textOffline scan of a book's own text for a checksum-valid ISBN → sets identifiers:isbn (no network; for online lookup use calibre_recover_metadata). Preview-first: apply=false reports only, merges into existing identifiers. Requires writes enabled.
calibre_find_duplicatesFind duplicatesread-onlyFind 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-only — never merges.
calibre_get_bookGet book metadataread-onlyGet 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_contentRead book textread-onlyExtract 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-chapter cursors. To find text inside a book, use calibre_search scope=book.
calibre_get_figuresGet book figuresread-onlyList 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 image tokens. In MCP Apps hosts the fetched figures also render for the user in an in-chat viewer, so you can point at them by figure number — but describe only what the pixels you received actually show.
calibre_list_categoriesList categoriesread-onlyBrowse 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)` is accepted).
calibre_list_librariesList Calibre librariesread-onlyList the Calibre libraries available on the Content Server and which one is the default. Call this first to discover valid library names.
calibre_manage_bundlesManage bundles (saved searches)can change or delete dataList, create, update or delete Bundles — named topical filters backed by Calibre saved searches (e.g. a 'rust' bundle scoping searches to Rust books). A name starting with '-' is an exclusion marker. Also lists virtual libraries, which are read-only here. Preview-first: create/update report the match count until confirm=true. Requires writes to be enabled.
calibre_merge_booksMerge duplicate bookscan change or delete dataMerge duplicate book records: moves formats from source books into a target (target's copy wins conflicts), merges metadata per Calibre's rules, then trashes the sources. mode=safe keeps sources; mode=formatsOnly moves formats only. Dry-run unless confirm=true. Requires writes to be enabled.
calibre_open_bookOpen book in local viewer (widget-internal)read-onlyInternal 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_pingCalibre pingread-onlyHealth 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.
Show 7 more tools
calibre_quality_reportQuality reportread-onlyScan 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_metadataRecover book metadataread-onlyPropose 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_update_book; never writes.
calibre_remove_bookRemove bookscan change or delete dataRemove books from the library. Removed books go to Calibre's Trash and can be restored from the Calibre GUI, so this is recoverable. Two-step: the first call is a dry-run listing what would be removed; re-run with confirm=true to proceed. Requires writes to be enabled.
calibre_searchSearch booksread-onlyFind 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 topic questions within a book prefer calibre_semantic_search scope=book (ranked passages with char offsets). Use calibre_semantic_search for meaning/topic queries. For "how many" questions use countOnly=true (returns only the count). filter accepts a bundle name to scope the search (list bundles via calibre_manage_bundles).
calibre_semantic_searchSemantic searchread-onlyMeaning-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; hits point at calibre_get_figures for the pixels. mode=hybrid (default) fuses semantic + keyword matches; mode=vector is semantic-only; mode=keyword is exact keyword/FTS (no model at query time). All modes need an index built by calibre_build_index. filter accepts a bundle name to scope library searches (list bundles via calibre_manage_bundles). Model inference…
calibre_update_bookUpdate book metadataReplace metadata fields on one book (title, authors, tags, series, rating, identifiers, comments, or any #custom column). Omitted fields are untouched. Requires writes to be enabled.
calibre_widget_logWidget probe logread-onlyDebug-only sink for widget probe lines (CALIBRE_MCP_WIDGET_DEBUG).
Compare and alternatives
Featured in
Signals
- Stars
- 20
- Forks
- 3
- Open issues
- 18
- Last commit
- Oct 23, 2026 (5 days ago)
- Last release
- Oct 23, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.caelum29/calibre-mcp- Version
- 0.9.0
- Auth
- No auth
- Packages
- npm calibre-mcp
- License
- MIT
- Repository
- github.com/caelum29/calibre-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
Calibre MCP. Agent Mart. https://agentmart.dev/connectors/caelum29-calibre-mcp (last updated 2026-10-25)