Skip to main content

Book Recommendations — "What Should I Read Next?" MCP 📚🎲

CI License: MIT PyPI

Book recommendations for AI agents: "what should I read next?" answered from millions of works — topic recommendations, blind-date serendipity spins hooked by the book's actual first sentence, and free public-domain classics you can start reading right now. Zero API keys.

Ask any agent "what should I read next?", "books like Dune", or "surprise me with a book" — book-recommendations is the tool that answers.

Why this exists

  • LLMs recommend the same 50 canon books for every ask. This fishes OpenLibrary's millions of works — including a blind-date spin that picks a random subject shelf at random depth, deliberately off the bestseller lists, and hooks you with the book's actual first sentence before the reveal.
  • Read-now intelligence on every card: read_now says when a book is freely readable at archive.org (public) or borrowable (free loan) — instant reading beats a shopping link.
  • Free classics via Project Gutenberg (fail-soft: when the Gutenberg index is down, the error itself points at archive.org alternatives).
  • Honest attribution: every card says why_picked — how the book was actually chosen. Discovery you can trust.

Tools

Tool What it does
recommend Book recommendations by topic/mood/"books like X", with ratings, subjects, first sentences, read-now flags
blind_date Serendipity spin: random shelf, random depth, first-sentence hook, two-beat reveal
free_classics Public-domain books with read-now URLs (Gutenberg, fail-soft)
skills_list / skill_read Updatable playbooks (presentation, error recovery)

Plus the prompt: what-should-i-read-next.

Quickstart

# 1-Line Universal Installer (auto-configures Claude Desktop, Cursor, Claude Code, VS Code, ...)
curl -fsSL "https://book-recommendations.builditwithai.xyz/install" | bash

# Or run directly via your preferred runtime:
uvx book-recommendations
npx -y book-recommendations

Example

User:  surprise me with a book

blind_date()
→ picks: [{
     first_sentence: "The lighthouse kept its own counsel…",
     subjects: ["lighthouses", "islands", "solitude"], first_published: 1962,
     why_picked: "blind date: fished the “lighthouses” shelf at depth 3 — picked
                  for serendipity, not sales rank",
     title: "…", author: "…", read_now: "borrowable at archive.org",
     openlibrary_url: "https://openlibrary.org/works/…" }]

Present the hook first, then the reveal — the two-beat structure is the product.

Telemetry & privacy

Anonymous usage telemetry (no PII, no queries, no paths) via the fleet standard (schema v2, dual-endpoint fallback). Opt out any time: BOOK_RECOMMENDATIONS_TELEMETRY=false or DO_NOT_TRACK=1.

Development

uv venv && uv pip install -e ".[dev]"
DO_NOT_TRACK=1 .venv/bin/python -m pytest tests/ -q   # unit + live + e2e

Live tests hit the real OpenLibrary API and self-skip offline.

License

MIT

Metadata

Release files for book-recommendations 0.1.2

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

Source distribution (sdist)

Source distribution for book-recommendations 0.1.2
File Size Uploaded
book_recommendations-0.1.2.tar.gz 27.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for book-recommendations 0.1.2
File Interpreter ABI Platform
book_recommendations-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 51.7 kB

Release files / book_recommendations-0.1.2.tar.gz

Download URL book_recommendations-0.1.2.tar.gz
Size 27.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1271914afda9afe3203c35fe20bf2339a7436ab72d42c5e571bd56401674e9b7
BLAKE2b-256 checksum
How to use checksums
c81f0ffd05e2070a43fef3ba4248f35692534ee64a9e1e333d76098245dc9403
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / book_recommendations-0.1.2-py3-none-any.whl

Download URL book_recommendations-0.1.2-py3-none-any.whl
Size 24.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
18bf5cd8028f52ddb38e54158962de547111d1f5fc4a81340020adeb3c0e21d4
BLAKE2b-256 checksum
How to use checksums
285a062d04e7a4f2d9413ebcf9a9cc39c925520e80b65aa9e2163da2d294ad00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.1.2 This release

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