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 | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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