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.6

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.6
File Size Uploaded
mcp_book_lover-0.1.6.tar.gz 119.0 kB Details

Built distribution (wheel)

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

Total release size: 150.0 kB

Release files / mcp_book_lover-0.1.6.tar.gz

Download URL mcp_book_lover-0.1.6.tar.gz
Size 119.0 kB
Tags Source
SHA-256 checksum
How to use checksums
eeb1b65dc140512da5c1e36c6fa94480c9f5f789c127bcbf7510afdfd8b02c4b
BLAKE2b-256 checksum
How to use checksums
423813e7fce91c119981e4bdf6b470b8d076cf4af585295cde2114d9e53b5ee7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.9

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

Download URL mcp_book_lover-0.1.6-py3-none-any.whl
Size 31.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
301547eebe81665a9db80bb196f7a19a707379e62ba278d8dca67f65a14c08d3
BLAKE2b-256 checksum
How to use checksums
e2720ae4403a18caad7cabb98dd8005d49404f69f4d81ac4000a97d84eec4c7d
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

0.1.7

2 release files

This release

0.1.6 This release

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