calibre-manager
This server lets you fully manage and organize a Calibre ebook library from an AI assistant, with read-write capabilities via the safe calibredb command.
Library Exploration & Search
Health check the
calibredbconnection and library configurationSearch books using Calibre's full search syntax (e.g.,
tag:Philosophy,author:Plato)Get all metadata for a specific book by ID
List category values with book counts (tags, authors, series, publishers, formats, etc.)
View library stats including total books and breakdowns by category
Metadata Management
Set/replace metadata on a book (title, authors, tags, series, publisher, cover, rating, comments, identifiers, etc.)
Add tags to a book without overwriting existing ones
Remove specific tags from a book while keeping the rest
Rename a tag across the entire library at once
Bulk set metadata on all books matching a search query
Book Management
Add books (EPUB, PDF, MOBI, AZW3, etc.) with optional duplicate handling
Remove books by ID, with confirmation safeguards and optional permanent deletion
Convert books to another format (e.g., AZW3 for Kindle) and attach it to the existing library entry
Export books to a folder on disk (e.g., to copy to a Kindle device)
Library Maintenance
Find duplicate books by detecting matching title/author combinations
Find books missing metadata fields such as tags, cover, series, publisher, comments, or pubdate
Fetch online metadata from sources like Google Books by title, author, or ISBN, and optionally apply it (including cover) directly to a book in the library
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@calibre-manager Find duplicates in my library."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Calibre Manager MCP
An MCP server to manage and organize a Calibre library from an AI assistant (Claude Desktop, Cursor, etc.).
Unlike other Calibre MCPs —which are read-only— this one is built to write and inject metadata and keep your library spotless: tags, authors, series, covers, duplicates, conversion to AZW3 for Kindle, and more.
All writing goes through the official calibredb command, which is the supported, safe way to modify the library: it never touches metadata.db directly, avoiding corruption and conflicts.
Tools
Tool | What it does |
| Verifies that calibredb and the library respond. |
| Searches using Calibre syntax ( |
| Returns all metadata for a book. |
| Lists a category's values with counts (tags, authors...). |
| Total books and breakdown by category. |
| Sets (replaces) a book's fields. |
| Adds tags without removing the existing ones. |
| Removes specific tags, keeping the rest. |
| Renames a tag across the whole library. |
| Applies metadata to every book matching a search. |
| Adds a file (EPUB/PDF/MOBI/AZW3...) to the library. |
| Removes books by id (requires confirmation). |
| Converts to another format (e.g. AZW3) and adds it to the book. |
| Exports books to a folder (e.g. for your Kindle). |
| Detects duplicates by (title, author). |
| Lists books without tags/cover/series/etc. |
| Fetches online metadata (Google Books...) and applies it. |
Related MCP server: calibre-mcp
Requirements
Installation
git clone https://github.com/ericknavarro/calibre-manager-mcp.git
cd calibre-manager-mcp
npm install # installs dependencies and builds (the "prepare" script)To rebuild after a change:
npm run buildThe compiled server lives at dist/index.js.
Configuration in Claude Desktop
Edit claude_desktop_config.json (on Windows: %APPDATA%\Claude\claude_desktop_config.json) and add:
{
"mcpServers": {
"calibre-manager": {
"command": "node",
"args": ["C:\\Users\\<your-username>\\repos\\calibre-manager-mcp\\dist\\index.js"],
"env": {
"CALIBRE_LIBRARY_PATH": "C:\\Users\\<your-username>\\calibre",
"CALIBREDB_PATH": "C:\\Program Files\\Calibre2\\calibredb.exe",
"EBOOK_CONVERT_PATH": "C:\\Program Files\\Calibre2\\ebook-convert.exe",
"FETCH_EBOOK_METADATA_PATH": "C:\\Program Files\\Calibre2\\fetch-ebook-metadata.exe"
}
}
}
}Restart Claude Desktop. To check it works, ask it: "Run a health_check on Calibre".
Where is my library?
It's the folder that contains metadata.db (in Calibre: top-right, over the library name → "Switch/create library" shows the path). If you omit it, Calibre's default library is used.
Environment variables
Variable | Required | Description |
| No | Path to the library, or Content Server URL. If omitted, the default. |
| No | Path to |
| No | Path to |
| No | Path to |
| No | Only if you use the Content Server via URL. |
Important note: library locking
While the Calibre app is open using that same library, calibredb cannot open it — for reading or writing — because the app holds a lock (you get an error like "Another calibre program is running"). You have two options:
Close Calibre before write operations. (simplest)
Start Calibre's Content Server and point
CALIBRE_LIBRARY_PATHat its URL (http://localhost:8080#library) with a username/password.
In short: keep Calibre closed while you use this MCP, or run the Content Server (which lets multiple programs share the library safely).
Usage examples
Once configured, you can ask Claude things like:
"Tag book 5 with Philosophy and Stoicism without removing its tags."
"Set the series 'Greek Classics' on all books by Plato and Aristotle."
"Find duplicates in my library."
"Which books have no cover?"
"Convert book 12 to AZW3 for my Kindle."
"Fetch the online metadata for 'The Name of the Rose' by Umberto Eco and apply it to book 8."
License
MIT © Erick Navarro
Available Tools
17 toolsadd_bookA
Adds a file (EPUB/PDF/MOBI/AZW3...) to the library. Returns the new id. automerge (optional): 'ignore' | 'overwrite' | 'new_record' to handle duplicates. identifiers e.g. 'isbn:9788491050000'.
Inputs: file_path (required), authors, title, tags, +5 more.
add_tagsA
Adds tags to a book WITHOUT removing the existing ones. Multiple tags comma-separated.
Inputs: book_id (required), tags (required).
bulk_set_metadataA
Applies the same metadata to ALL books matching a search. Useful for organizing in bulk (e.g. setting a series or publisher on a group). 'query' uses Calibre syntax; 'fields' works like set_metadata (replaces the field). To add tags in bulk without removing, call add_tags per book.
Inputs: query (required), fields (required).
convert_bookA
Converts a book to another format and ADDS that format to the same library book (does not create a new book). Ideal for generating AZW3 for Kindle. If you don't pass source_format, it picks the best available (epub > azw3 > mobi > fb2 > pdf).
Inputs: book_id (required), to_format, source_format.
export_booksB
Exports books to a folder on disk (e.g. to copy them to a Kindle). book_ids comma-separated or 'all'. formats optional, e.g. 'azw3,epub'.
Inputs: book_ids (required), to_dir (required), formats.
fetch_online_metadataA
Looks up metadata from online sources (Google Books, etc.) by title/author or ISBN and returns an OPF. If you pass apply_to_book_id, it applies that metadata (and optionally the cover) to that book in your library.
Inputs: title, authors, isbn, apply_to_book_id, +1 more.
find_books_missing_metadataA
Lists books that are missing a specific metadata field. missing accepts: tags, comments, series, publisher, cover, identifiers, languages, pubdate.
Inputs: missing.
find_duplicatesA
Detects likely duplicates by grouping on normalized (title, author). Returns the groups with more than one book.
Inputs: no named parameters.
get_book_metadataB
Returns ALL metadata for a book by its id (JSON).
Inputs: book_id (required).
health_checkA
Checks that calibredb is reachable and the library responds. Use it first to diagnose the configuration (calibredb path, library, etc.).
Inputs: no named parameters.
library_statsA
Library summary: total number of books and a breakdown by category (tags, authors, series, formats).
Inputs: no named parameters.
list_categoriesA
Lists the values of a category with their book counts, as CSV. category accepts: tags, authors, series, publisher, languages, formats, rating, identifiers.
Inputs: category.
remove_booksA
Removes books from the library by id (comma-separated). DESTRUCTIVE: requires confirm=true. permanent=true skips Calibre's recycle bin.
Inputs: book_ids (required), confirm, permanent.
remove_tagsC
Removes specific tags from a book, keeping the rest.
Inputs: book_id (required), tags (required).
rename_tagA
Renames a tag across the WHOLE library (on every book that has it).
Inputs: old (required), new (required).
search_booksA
Searches books using Calibre's search syntax and returns JSON. Example queries: 'tag:Philosophy and author:Plato', 'series:"Classics"', 'title:Republic', 'pubdate:>2010'. Leave query empty to list (use limit).
Inputs: query, limit, fields.
set_metadataA
Sets (REPLACES) a book's metadata. 'fields' is an object of field:value pairs. Fields: title, title_sort, authors (multiple with ' & '), author_sort ('Last, First'), tags (comma-separated), series, series_index, publisher, pubdate ('2020-01-01'), languages ('eng'/'spa'), rating (0–10, where 10 = 5 stars), comments (HTML allowed), identifiers ('isbn:9788491050000'), cover (path to an image). NOTE: it replaces the whole field value; to keep the other tags use add_tags/remove_tags.
Inputs: book_id (required), fields (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Each tool targets a specific operation or resource (e.g., add_book vs convert_book, add_tags vs remove_tags) with no functional overlap. Descriptions clearly distinguish when to use each, avoiding ambiguity for agents.
All tool names follow a consistent verb_noun pattern (e.g., add_book, search_books, rename_tag) with no mixing of cases or conventions, making the API predictable.
17 tools is well-scoped for a Calibre library manager, covering essential operations without being too sparse or overwhelming. Each tool serves a clear and necessary purpose.
The tool set covers full CRUD, metadata management, format conversion, export, search, duplicate detection, bulk operations, and health checks. Only minor gaps like in-place file replacement exist, but core workflows are fully supported.
Related MCP Connectors
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
MCP server for AI dialogue using various LLM models via AceDataCloud
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables querying and managing Calibre libraries via chat by interacting with the Calibre content server over HTTP. It allows users to search for books, update metadata, manage authors and tags, and handle book file uploads or conversions.1,040 npm3BSD 3-Clause
- FlicenseAqualityDmaintenanceAn MCP server for managing local Calibre libraries using the calibredb CLI. It allows users to search books, manage metadata, and retrieve EPUB file paths through natural language commands.7-
- AlicenseNot gradedqualityDmaintenanceMCP server enabling LLMs to query a local Calibre Content Server for ebook metadata, chapters, and content in HTML or Markdown.9 npmMIT
- AlicenseAqualityDmaintenanceA local stdio MCP server that enables AI tools to search a self-hosted Calibre library over SSH, supporting metadata queries, full-text search, and book details.7MIT