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.