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. |
Capabilities
Features and capabilities supported by this server
| 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. |
| 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 | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shreeyachand/goodreads-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server