Conversational Calibre e-book library management with FastMCP 3.2.0 server featuring sampling, agentic workflows, skills, prompts, and LanceDB metadata RAG
CalibreMCP presents a mixed picture. The server has 9 tools with varying quality. Strengths: search_books has comprehensive schema with 26+ parameters, all typed and mostly described; manage_libraries declares clear CRUD actions with enum constraints; some descriptions are reasonably detailed (search_books, calibre_ocr). Weaknesses: Three tools (japanese_book_organizer_helper, it_book_curator_helper, reading_recommendations_helper) have EMPTY input schemas ({}), which violates the critical rule that empty schemas score 0. The 'manage_authors' and 'manage_libraries' tools use operation/action enums to multiplex multiple concerns into single tools, making them harder for LLMs to disambiguate. Error handling guidance is absent across all tools, no recovery hints, no input validation patterns, no actionable error messages shown. Parameter descriptions, while present in search_books, are often generic (e.g., 'Filter by author name' without format or constraint). Output schemas are not documented. The three 'helper' tools have placeholder descriptions ('Weeb optimization', 'Austrian efficiency') that are opaque and fail to explain WHEN or WHY an LLM should call them. Overall: solid foundational work on search and CRUD, but three non-functional tools, weak error posture, and composition issues drag the average down.
Process scanned documents with OCR using FineReader or GOT-OCR2.0. Returns structured dicts with a success flag; see outputSchema for core fields. On failure, read error and details for recovery steps.
Enhance metadata for one or more books with options for updating titles, authors, series, publisher, pubdate, identifiers, ratings, tags, comments, and covers with optional dry-run and backup
IT book curation for Sandra's programming and technology collection. Organizes by programming language, identifies outdated books, and provides learning path recommendations for technology topics.
Weeb optimization - Organize Japanese library for maximum cultural efficiency. Categorizes manga series, light novels, language learning materials, and provides reading order recommendations for Japanese content.
Unified author management tool supporting list, get, get_books, get_stats, and get_by_letter operations on author data with pagination and filtering
Three helper tools (japanese_book_organizer_helper, it_book_curator_helper, reading_recommendations_helper) have empty input schemas ({}), making them non-functional for LLM invocation.
Three helper tools have placeholder, opaque descriptions ('Weeb optimization', 'Austrian efficiency', 'eliminate decision paralysis') that do not explain WHAT the tool does, WHEN to call it, or what it returns. LLMs cannot determine selection criteria from these descriptions.
manage_authors and manage_libraries use operation/action enums to multiplex 5+ distinct concerns into single tools (list/get/create/update/delete/stats). LLMs must reason about which operation to select, increasing confusion and mis-selection. Should split into list_authors, get_author, get_author_books, etc.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2025-06-18+ | v2 |
| 2026-03-09 | D | 51 | - | v1 |
Manage Calibre libraries with CRUD operations (list, get, create, update, delete), statistics, and search capabilities
Austrian efficiency reading recommendations - eliminate decision paralysis. Provides smart recommendations based on reading history, series progress, ratings, and personal preferences to optimize reading satisfaction.
Advanced book search with fuzzy matching, relevance scoring, filtering by author/tag/series/rating, and optional highlighting of matching text
Standardize metadata across books according to specified rules for titles, authors, series, tags, ISBN, and dates with optional dry-run
No output schemas documented for any tool. LLMs do not know what fields to expect, making downstream composition impossible. Examples: what does search_books return? What fields does a book object have? What does manage_libraries.create return, library_id, name, path, created_at?
No error handling guidance across any tool. Descriptions do not explain failure modes, recovery steps, or whether errors are retryable. Example: if search_books finds no results, should the LLM retry with different parameters, or is that a terminal condition?
enhance_metadata and standardize_metadata accept 'options' as a generic object without documenting what keys/values are valid. Description says 'Enhancement options including update flags, dry_run, and backup_before_changes' but does not enumerate them or their types.
calibre_ocr parameter descriptions lack format/constraint details. Example: 'region' is described as 'Bounding box region as [x1, y1, x2, y2]' but does not specify units (pixels? normalized 0-1? page coordinates?), minimum/maximum values, or error behavior if out of bounds.
manage_authors description says 'Unified author management tool supporting list, get, get_books, get_stats, and get_by_letter operations' but does not explain WHEN to use each. An LLM reading this has no guidance on which operation to invoke.
Tools returning lists (search_books, manage_authors list operation, manage_libraries list operation) should document pagination parameters and limits, but descriptions do not state: what is the maximum result size? Is there a cursor? What happens if limit exceeds a cap?
manage_libraries.create and manage_libraries.update accept generic 'library' and 'updates' objects without documenting required vs optional fields. Can you omit 'path'? What if you only provide 'name'?