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

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.1
File Size Uploaded
book_recommendations-0.1.1.tar.gz 26.0 kB Details

Built distribution (wheel)

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

Total release size: 48.8 kB

Release files / book_recommendations-0.1.1.tar.gz

Download URL book_recommendations-0.1.1.tar.gz
Size 26.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a547a17f8dba558c3bc27a716d2b75d0bd7fb6bdca520fcd3521df25f8fc736e
BLAKE2b-256 checksum
How to use checksums
7fbf9b7b6cdba4bbd7037f35f76e686fe77e16cc05eccf45b799691c2f7dd844
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.1-py3-none-any.whl

Download URL book_recommendations-0.1.1-py3-none-any.whl
Size 22.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
052ca9dae7cd2fb6d9112cbd66fa30a7d3e16812d5dbd456a5ad8d5de90634dd
BLAKE2b-256 checksum
How to use checksums
044e1c71470b9f3f29391e2f39aaf6ff8379e4d690b25864ee45c7325b10dc68
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

0.1.2

2 release files

This release

0.1.1 This release

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