Skip to main content

MCP server for personal book library — track reading, reviews, recommendations, multi-source search and format conversion

Project description

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)
  • Download — download books directly from searchfloor.org to ~/Books
  • Format conversion — convert between epub, fb2, txt, pdf with full preservation of chapters, bold/italic, inline images, cover and metadata
  • 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

With uv (recommended — manages Python version automatically):

uv sync

Or manually (requires Python 3.11+):

python3.11 -m venv .venv
source .venv/bin/activate
pip install -e .

MCP Client Configuration

With uv (recommended):

{
  "mcpServers": {
    "book-lover": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-book-lover", "run", "mcp-book-lover"]
    }
  }
}

With a manual venv:

{
  "mcpServers": {
    "book-lover": {
      "command": "/path/to/mcp-book-lover/.venv/bin/mcp-book-lover"
    }
  }
}

Development

Test the server 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_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_convert_book Convert book file — preserves chapters, formatting, images
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.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_book_lover-0.1.0.tar.gz (107.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_book_lover-0.1.0-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file mcp_book_lover-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_book_lover-0.1.0.tar.gz
  • Upload date:
  • Size: 107.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcp_book_lover-0.1.0.tar.gz
Algorithm Hash digest
SHA256 812469b524ab8d7831ba46e0ddcef5e274ebae0724c0baa04b965ed76930144d
MD5 47a847a3d5244ecb3604402c3ed1ce8c
BLAKE2b-256 bce3bd6ae3b727f4a8bc625595e740e660a96ae83bdcb90c652e4fcbcd5a2a35

See more details on using hashes here.

File details

Details for the file mcp_book_lover-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_book_lover-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcp_book_lover-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 83b3d9d532e5e990ab9ec1b0de7e904a5f5af82e981a6bf5895bfa71fd895720
MD5 654b95c88901d78ed890302a238c930d
BLAKE2b-256 62aeb46338858f0edc9a1eed3684904c5d0f1ddf2ea65fd625284f78fc382e8d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page