Skip to main content

MCP Book Lover

An MCP server for managing your personal book library. Track what you read, write reviews, get recommendations, search across multiple sources, and convert between formats — all from your AI assistant.

Features

  • Book tracking — manage your library with statuses: want to read → downloaded → reading → finished
  • Series support — track progress through book series with ordering and series-level reviews
  • Library search — find books in your library by title, author, series, or description
  • Reviews & quotes — rate books and series (1–5), write reviews, save favourite quotes
  • Recommendations — personalized suggestions based on your ratings and series reviews; save recommendations for later
  • Multi-source search — search online across 8 sources (Google Books, Open Library, Author.Today, Knigogo, Searchfloor, LibGen, Flibusta, Project Gutenberg)
  • Series/cycle search — bl_search_series groups numbered parts of a cycle (e.g. "Брутфорс 1..6") into a single result
  • Download — download books directly from searchfloor.org to ~/Books; bl_download_series grabs a whole cycle in one call
  • Format conversion — convert between epub, fb2, txt, pdf with full preservation of chapters, bold/italic, inline images, cover and metadata; zipped books (.fb2.zip) are handled automatically; bl_convert_batch converts an entire directory at once
  • Reading stats — yearly progress, top authors/genres, average rating
  • Reading challenge — set yearly goals and track progress
  • Import/Export — bulk import from text, export to JSON/CSV/Markdown

Installation

No installation needed if you use uvx — it fetches the package automatically.

Or install manually (requires Python 3.11+):

python3.11 -m venv .venv
source .venv/bin/activate
pip install mcp-book-lover

Connecting to MCP clients

Claude Code

claude mcp add book-lover uvx mcp-book-lover

To make it available in all projects, add to ~/.claude/mcp.json:

{
  "mcpServers": {
    "book-lover": {
      "command": "uvx",
      "args": ["mcp-book-lover"]
    }
  }
}

Claude Desktop / Kiro / Cursor

Add to the MCP config file of your client:

{
  "mcpServers": {
    "book-lover": {
      "command": "uvx",
      "args": ["mcp-book-lover"]
    }
  }
}

Development

git clone https://github.com/MIt9/mcp-book-lover
cd mcp-book-lover
uv sync

Test interactively with the MCP inspector:

mcp dev src/mcp_book_lover/server.py

Tools

Tool Description
bl_add_book Add a book to your library (with series/order support)
bl_list_books List books with filters (status, author, genre)
bl_find_in_library Search YOUR library by title, author, series, description
bl_update_book_status Change reading status
bl_delete_book Delete a book with all its reviews and quotes
bl_list_series List all series with progress
bl_series_books Show books in a series with order and status
bl_review_book Write a review + rating (1–5)
bl_get_reviews View reviews for a book
bl_review_series Write a review for a book series
bl_get_series_reviews View series reviews
bl_save_recommendation Save a recommendation for future reading
bl_list_recommendations List saved recommendations
bl_delete_recommendation Remove a recommendation from the list
bl_add_quote Save a quote from a book
bl_list_quotes View saved quotes
bl_get_recommendations Get recommendations by author/genre via Open Library
bl_search_books Search online across 8 sources
bl_search_series Find ALL books of a cycle/series — groups numbered parts (e.g. "Брутфорс 1..6") into one result
bl_suggest_next What to read next (scored by ratings, series reviews, fav authors/genres)
bl_find_download Find download links (LibGen, Flibusta)
bl_download_book Download a book from searchfloor.org to ~/Books
bl_download_series Download ALL books of a cycle/series in one call
bl_convert_book Convert book file — preserves chapters, formatting, images; auto-extracts .fb2.zip/.epub.zip
bl_convert_batch Convert every book file in a directory to one format (great for a downloaded cycle)
bl_reading_stats Reading statistics
bl_set_goal Set a yearly reading challenge
bl_goal_progress Check reading challenge progress
bl_import_list Import books from text list
bl_export_library Export library (json/csv/markdown)

Book Statuses

Status Meaning
want_to_read On the wishlist, don't have the file yet
downloaded File ready, queued for reading
reading Currently reading/listening
finished Done

Format Conversion

All conversions preserve chapter structure, metadata (title, author, language), cover image, bold/italic text, and inline images.

From \ To epub fb2 pdf txt
fb2 ✅ — ✅ ✅
epub — ✅ ✅ ✅
txt ✅ ✅ ✅ —
pdf ✅ ✅ — ✅

PDF output uses a system Unicode font (Arial on macOS, DejaVu on Linux) for Cyrillic support.

Zipped book files (.fb2.zip, .epub.zip) are extracted automatically before parsing, so you can convert them directly.

Typical cycle workflow

# 1. Find every book of the cycle at once
bl_search_series("Брутфорс")

# 2. Download all parts in one call
bl_download_series("Брутфорс", author="Иван Катиш")

# 3. Convert the whole directory (auto-extracts .fb2.zip)
bl_convert_batch("~/Books", "epub")

Search Sources

Sources are auto-selected based on query language (Cyrillic → uk/ru sources, Latin → en sources):

Source Languages Type
Google Books en, uk, ru API
Open Library en, uk, ru API
Author.Today uk, ru Scraping
Knigogo uk, ru Scraping
Searchfloor uk, ru Scraping + download
LibGen en, uk, ru Scraping
Flibusta ru Scraping
Project Gutenberg en Scraping

Storage

SQLite database at ~/.mcp-book-lover/books.db. Downloaded books go to ~/Books by default.

Requirements

  • Python ≥ 3.10
  • No external services or API keys required
  • System Unicode font (Arial/DejaVu) for PDF output with Cyrillic

License

MIT

Metadata

Release files for mcp-book-lover 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-book-lover 0.1.7
File Size Uploaded
mcp_book_lover-0.1.7.tar.gz 160.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-book-lover 0.1.7
File Interpreter ABI Platform
mcp_book_lover-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 193.2 kB

Release files / mcp_book_lover-0.1.7.tar.gz

Download URL mcp_book_lover-0.1.7.tar.gz
Size 160.3 kB
Tags Source
SHA-256 checksum
How to use checksums
bc9d15453e8dbc7a4643b06d8b64ee5ba2294eb1a0b86063c0ff35494285728c
BLAKE2b-256 checksum
How to use checksums
4038062867c77fa1c47f95030ce659b5464a528f368524fa15ccc4441b22cfd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.9

Release files / mcp_book_lover-0.1.7-py3-none-any.whl

Download URL mcp_book_lover-0.1.7-py3-none-any.whl
Size 32.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c23c0dab15abf6704804b43fcaeaa3298d79aa83f2ead2dd3efd86ca0380ef0
BLAKE2b-256 checksum
How to use checksums
f34bcc8adbd120d31304113fc83ce01c5899f117f77f6b50a9979fd5cb475cb7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.9

Release history Release notifications | RSS feed

0.1.8

2 release files

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page