Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)★ 20
Write a review

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.

We use your email only for this newsletter. Privacy

About

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

No 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_data
  • calibre_find_duplicates
  • calibre_get_book
  • calibre_get_content
  • calibre_get_figures
  • calibre_list_categories
  • calibre_list_libraries
  • calibre_open_book
  • calibre_ping
  • calibre_quality_report
  • calibre_recover_metadata
  • calibre_search
Show 2 more tools
  • calibre_semantic_search
  • calibre_widget_log

Write 4 · Create, change, send or run things.

  • calibre_add_book
  • calibre_build_index
  • calibre_extract_isbn
  • calibre_update_book

Delete 4 · Delete, drop, revoke or wipe things.

  • calibre_bulk_update
  • calibre_manage_bundles
  • calibre_merge_books
  • calibre_remove_book

Secrets and settings it asks for

Other settings (environment variables or headers).

  • CALIBRE_MCP_CALIBREDB_PATH
  • CALIBRE_MCP_ENABLE_WRITE
  • CALIBRE_MCP_LIBRARY
  • CALIBRE_MCP_SERVER_URL

Network hosts it talks to 8

  • archive.org · found in code
  • calibre-ebook.com · found in code
  • github.com · found in code
  • googleapis.com · found in code
  • openlibrary.org · found in code
  • policies.google.com · found in code
  • raw.githubusercontent.com · found in code
  • unpkg.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 file

    Import 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-only

    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_build_indexBuild semantic 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 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 data

    Apply 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 text

    Offline 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-only

    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-only — never merges.

  • calibre_get_bookGet book metadataread-only

    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_contentRead book textread-only

    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-chapter cursors. To find text inside a book, use calibre_search scope=book.

  • calibre_get_figuresGet book figuresread-only

    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 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-only

    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)` is accepted).

  • calibre_list_librariesList Calibre librariesread-only

    List 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 data

    List, 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 data

    Merge 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-only

    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_pingCalibre pingread-only

    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.

Show 7 more tools
  • calibre_quality_reportQuality reportread-only

    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_metadataRecover book metadataread-only

    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_update_book; never writes.

  • calibre_remove_bookRemove bookscan change or delete data

    Remove 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-only

    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 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-only

    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; 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 metadata

    Replace 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-only

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