Book recommendations for AI agents: what should I read next β€” topic recs, blind-date serendipity, free classics β€” MCP server, zero API keys (uvx book-recommendations)

Book Recommendations β€” "What Should I Read Next?" MCP πŸ“šπŸŽ²

CILicense: MITPyPI

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 "surpriseme with a book" β€” book-recommendations is the tool that answers.

Why this exists

  • LLMs recommend the same 50 canon books for every ask. This fishesOpenLibrary's millions of works β€” including a blind-date spin that picksa random subject shelf at random depth, deliberately off the bestsellerlists, and hooks you with the book's actual first sentence before thereveal.
  • Read-now intelligence on every card: read_now says when a book isfreely readable at archive.org (public) or borrowable (free loan) β€” instantreading beats a shopping link.
  • Free classics via Project Gutenberg (fail-soft: when the Gutenberg indexis down, the error itself points at archive.org alternatives).
  • Honest attribution: every card says why_picked β€” how the book wasactually 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 fleetstandard (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

MCP Server Β· Populars

MCP Server Β· New