Calibre library automation via FastMCP — metadata, shelves, RAG-friendly export. Companion to Calibre, not a replacement. For Cursor / Claude Desktop.
翻譯準備中
媒體Python · TypeScriptGitHub @sandraschi自行安裝營運者未確認
試用過了嗎? 點一下就好,不需要登入。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
安裝型專案無需部署網域也可驗證。個人儲存庫可透過 GitHub 登入驗證,組織儲存庫可使用上方的儲存庫驗證檔案。
正在載入完整 README。 以下為已儲存的摘錄。
📖 Installation Guide — download the .exe from Releases, double-click, done
FastMCP 3.2 MCP server for Calibre e-book library management — AI-assisted search, RAG, and agentic workflows for Sandra's 1000+ book library.
Download **Calibre MCP_*_x64-setup.exe** from Releases → double-click → launch Calibre MCP. Install guide.檢視完整 README ↗📖 Installation Guide — download the
.exefrom Releases, double-click, done
FastMCP 3.2 MCP server for Calibre e-book library management — AI-assisted search, RAG, and agentic workflows for Sandra's 1000+ book library.
Download Calibre MCP_*_x64-setup.exe from Releases → double-click → launch Calibre MCP. Install guide.
Claude Desktop one-liner (MCPB bundle): download calibre-mcp.mcpb from Releases and install via Settings → MCP Servers → Install from file.
Developers from source:
git clone https://github.com/sandraschi/calibremcp
cd calibremcp
just sync
just start-webapp
// claude_desktop_config.json { "mcpServers": { "calibre-mcp": { "command": "uv", "args": ["run", "calibre-mcp"], "env": { "CALIBRE_LIBRARY_PATH": "L:/Multimedia Files/Written Word/Calibre-Bibliothek" } } } } Then ask Claude: "Find unread sci-fi books", "Open a random Banks novel", or "What's my library health?"
calibre-mcp bridges your Calibre e-book library and AI assistants (Claude Desktop, Cursor, etc.) via the Model Context Protocol. It reads Calibre's metadata.db directly, indexes metadata for semantic search (LanceDB RAG), and exposes 33 portmanteau tools for natural-language library management.
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ CLIENT INTERFACES │
│ ┌───────────────────────┐ ┌─────────────────────────┐ ┌──────────────────────────┐ │
│ │ Claude Desktop │ │ Calibre MCP WebApp │ │ Calibre GUI + Plugin │ │
│ │ (MCP stdio / MCPB) │ │ (Next.js 15 @ :10721) │ │ (Qt6 / PyQt5 Plugin) │ │
│ └───────────┬───────────┘ └────────────┬────────────┘ └────────────┬─────────────┘ │
└──────────────┼───────────────────────────┼────────────────────────────┼────────────────┘
│ JSON-RPC (stdio) │ REST / SSE │ Direct SQLite
▼ ▼ ▼
┌───────────────────────────────────────────────────────┐ ┌─────────────────────────────┐
│ CALIBRE-MCP BACKEND (:10720) │ │ CALIBRE CONTENT SERVER │
│ │ │ (e.g. :8099) │
│ ┌─────────────────────────────────────────────────┐ │ │ │
│ │ FastMCP 3.2 Server + Tool Registry (21 tools) │ │ │ - Async Python Engine │
│ │ - Reciprocal Rank Fusion (RRF) Hybrid Search │ │ │ (calibre.srv) │
│ │ - Incremental LanceDB RAG Sync │ │ │ - RapydScript SPA │
│ │ - Portmanteau CRUD & Library Health Engine │ │ │ (index-generated.html) │
│ └─────────────────────────────────────────────────┘ │ │ - HTML5 In-Browser Reader │
│ ┌─────────────────────────────────────────────────┐ │ │ (viewer.js / offline SW) │
│ │ FastAPI REST Layer + Async Background Workers │ │ │ - OPDS Mobile Catalog Feed │
│ └─────────────────────────────────────────────────┘ │ └──────────────┬──────────────┘
└──────────────┬───────────────────────────┬────────────┘ │
│ │ │
▼ ▼ ▼
┌──────────────────────────────┐ ┌──────────────────────────────────────────────────────┐
│ AI / VECTOR LAYER │ │ DATA STORAGE LAYER │
│ - LanceDB (Metadata & FTS) │ │ - metadata.db (Calibre SQLite catalog) │
│ - fastembed (BAAI/bge-small)│ │ - full-text-search.db (Calibre FTS5 token index) │
│ - Ollama / OpenAI Provider │ │ - calibre_mcp_data.db (Sidecar extended metadata) │
└──────────────────────────────┘ └──────────────────────────────────────────────────────┘
In a production Calibre environment, two distinct web applications operate side-by-side:
Calibre Content Server (http://goliath:8099/ or http://localhost:8080/):
calibre.exe --start-in-tray or headless calibre-server.exe). It executes an asynchronous Python HTTP/1.1 daemon (calibre.srv) delivering a compiled Single Page Application bundled inside resources/content-server/index-generated.html (~3.9 MB, transpiled from Python-like AST to ES6 JavaScript using RapydScript).viewer.html/viewer.js with offline reading via ServiceWorkers, highlights, annotations, bookmarks, and font settings), native OPDS feeds for mobile readers (KyBook, Moon+ Reader), and direct format conversion.CalibreMCP WebApp (http://localhost:10721/, backend :10720):
app.main:app) running FastMCP 3.2.start.ps1); run webapp/start-lan.ps1 for LAN / Tailscale access from phone, tablet, or a second PC (no auth — trusted networks only). See Remote Access.Together, Calibre Content Server provides the high-performance reading and distribution engine, while CalibreMCP provides the conversational AI, semantic discovery, and automated library maintenance engine.
| Topic | Description |
|---|---|
| About Calibre | What Calibre is, how it stores data, access methods |
| About Calibre Web | Calibre Content Server (modern SPA) vs calibre-web vs CalibreMCP |
| About Plugins | CalibreMCP Integration plugin, calibreops-bridge, roadmap |
| About MCP Tools | 33 portmanteau tools, architecture, agentic flows |
| About AI Workflows | RAG, FTS, skills, prompts, sampling, agentic chaining |
# Development install
git clone https://github.com/sandraschi/calibremcp.git
cd calibremcp
uv sync
# Or via MCPB package
npx mcpb install calibre-mcp
start-lan.ps1Austrian efficiency for digital libraries. Built with realistic AI-assisted development timelines.