Skip to main content
Glama
pshap
by pshap

Neolibrarian MCP: Calibre Library (Read‑only)

Minimal MCP server exposing read‑only access to a local Calibre library. Designed for use with MCP‑compatible hosts (e.g., Claude Desktop) to search metadata, inspect formats, and extract small content samples for analysis.

What it does

  • Connects to your existing Calibre library (local filesystem)

  • Exposes read‑only tools: library stats, searches (author/title/unified), per‑book details and formats, full‑text search (global and per‑book, if your Calibre FTS DB exists), small content samples, and batch metadata

  • Provides two lightweight JSON resources for quick at‑a‑glance info

Related MCP server: Readwise Reader MCP Server

Requirements

  • Python 3.12+ (3.13 supported)

  • Calibre installed locally (calibre‑debug.exe available)

  • Access to your Calibre library directory (contains metadata.db)

Install

# From repo root (Windows PowerShell)
python -m venv .venv
./.venv/Scripts/Activate.ps1
pip install -r requirements.txt

Configuration

Place a JSON config file with at least these keys:

{
	"calibre_library_path": "C:/Path/To/Calibre Library",
	"calibre_installation_path": "C:/Program Files/Calibre2"
}

Resolution/precedence (first match wins):

  • Environment variable CALIBRE_CONFIG_PATH (absolute or ~-expanded path)

  • config.local.json next to the server script

  • config.json next to the server script

Run the MCP server

The server runs over stdio for MCP hosts.

./.venv/Scripts/python.exe calibre_mcp_server.py

For MCP hosts (e.g., Claude Desktop), point the tool to this script; optionally set CALIBRE_CONFIG_PATH to your config file.

Exposed tools (read‑only)

  • ping → quick health check and paths

  • get_total_books

  • search_by_author(author_name)

  • search_by_title(title)

  • unified_search(query?, author?, title?, series?, formats?, date_start?, date_end?, offset=0, limit=20, sort_by)

  • get_book_details(book_id)

  • get_book_formats(book_id)

  • get_book_sample(book_id, sample_type, sample_size)

  • analyze_book_content(book_id, analysis_type, max_length)

  • full_text_search(query, case_sensitive?, max_results?, context_chars?)

  • full_text_search_book(book_id, query, case_sensitive?, context_chars?)

  • get_books_batch([book_ids])

  • get_random_books(count?, formats?, series_only?)

  • get_full_text_search_stats()

Resources:

  • calibre://stats (application/json)

  • calibre://book/{book_id}/details (application/json)

Notes

  • This server is strictly read‑only (no writes to your library).

  • Full‑text search tools require Calibre’s full‑text database to exist in your library folder (full‑text-search.db*).

License: MIT (see LICENSE)

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pshap/mcp-neolibrarian'

If you have feedback or need assistance with the MCP directory API, please join our Discord server