goodreads-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOODREADS_USER_ID | No | Your Goodreads user ID (numeric). Overrides the config file. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_booksA | Search Goodreads for books by title/author/ISBN. Uses the JSON autocomplete endpoint (no auth, no HTML parsing). Returns book_id, title, author, rating info, and a cover URL. |
| get_bookA | Get full details for a book by its Goodreads id (numeric, or numeric-slug like '11870085-the-fault-in-our-stars'). Parses the page's embedded NEXT_DATA JSON (Apollo state) rather than scraping the DOM, which survives markup changes. Includes the full ratings histogram, series/position, and review-language breakdown — use get_reviews for the actual review text. When you cite details or ratings from this book, link to its 'url'. |
| get_reviewsA | Get reader reviews for a book — the actual review text, not just a score. Fetches from Goodreads' GraphQL backend with true pagination, so limit can exceed the ~30 shown on a page. Reviews come in "most relevant" order and aggregate across all editions of the work. Each review has the reviewer name, star rating (1-5), full text, like/comment counts, date, a spoiler flag, a 'url' permalink (use it to cite/link), and the reviewer's profile url. limit: max reviews to return (capped at 100 to stay polite). min_rating / max_rating: server-side star filters, e.g. min_rating=4 for positive reviews, max_rating=2 for the critical ones. exclude_spoilers: drop reviews flagged as spoilers. |
| similar_booksA | "Readers also enjoyed" — books similar to the given one. Goodreads' own recommendation graph (hard to reproduce with web search). Each result has book_id/title/author/rating/url so you can chain into get_book or get_reviews. limit capped at 40. |
| author_booksA | List an author's works (bibliography), given any of their books. Resolves the book's primary author, then returns their works ranked by popularity. Each result has book_id/title/author/rating/url. limit capped at 40. |
| series_booksA | List the books in a series (with reading-order placement), given any book in that series. Each entry has the series 'placement' (e.g. '1', '0.5' for a prequel), 'is_primary' (a main-sequence entry vs companion), and the usual book_id/title/author/rating/url. limit capped at 40. |
| get_editionsA | List published editions of a book (formats, ISBNs, publishers, dates). Useful for "which edition / format / ISBN" questions. limit capped at 40. |
| book_listsA | List the Listopia lists a book appears on (e.g. "Best Dystopian Fiction"), ordered by popularity. Each list has its title, total member votes, how many books it contains, and a 'url'. Good for "what kind of book is this / what's it grouped with" and for discovery. limit capped at 40. |
| popular_booksA | Most popular books by release date — Goodreads' "Popular by date" chart. Ranks the books/works released in a given year (or a specific month of a year) by how many Goodreads members have added them. Mirrors the goodreads.com/book/popular_by_date/[/] page. year: 4-digit release year. month: optional 1-12 for a single month; omit for the whole year. limit: how many to return (capped at 50). Each entry has rank, count (members who added it), and the usual book_id/title/author/rating/url so you can chain into get_book/get_reviews. |
| compare_booksA | Compare several books side by side by rating and rating distribution. Fetches each book and returns them ranked best-to-worst by average rating, with the ratings_histogram plus 'pct_positive' (share of 4-5 star) and 'pct_critical' (share of 1-2 star) so you can judge not just the average but how divisive each book is. Pass 2-10 book ids (from search_books etc.). |
| get_shelfA | List books on a shelf via its RSS feed (public shelves; no auth). Common shelves: 'read', 'currently-reading', 'to-read', plus any custom shelf name. RSS pages hold ~100 items; pass page=2,3,... for more. Defaults to the configured GOODREADS_USER_ID. When you cite a book from a shelf, link it to its 'link' field. |
| list_shelvesA | List a user's shelf names (scraped from their review-list page; best effort). Defaults to the configured user. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Most tools target clearly distinct resources: search_books, get_book, get_reviews, get_editions, similar_books, author_books, series_books, compare_books, popular_books, book_lists, and get_shelf are all identifiable by purpose. The main ambiguity is between list_shelves and get_shelf—both involve shelves—but descriptions clarify one returns shelf names and the other returns books on a shelf.
The naming follows a loose verb_noun pattern for many tools (search_books, get_book, get_reviews, get_editions, get_shelf, compare_books, list_shelves), but several tools drop the verb entirely and use bare noun phrases like book_lists, similar_books, author_books, series_books, and popular_books. This mixed convention is readable but not fully consistent.
Twelve tools form a well-scoped set for a Goodreads data-access server. Each tool covers a meaningful, distinct aspect of book discovery and reading data without feeling padded or redundant.
The tool surface covers the major Goodreads information needs: search, full book details, reviews, editions, related books, author bibliographies, series membership, Listopia lists, popularity charts, comparison, and shelf contents. There are no obvious dead ends for a read-only book-data server; result payloads include ids and URLs for chaining into further lookups.