Goodreads MCP
Provides tools to interact with Goodreads shelves and reading history, including listing shelves, getting currently reading, recently read books, reading stats, searching library, and fetching book details with enrichment from Open Library.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Goodreads MCPlist my bookshelves"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Goodreads MCP
Use your Goodreads shelves and reading history from Claude Code, Codex, and other Model Context Protocol clients—without sharing a Goodreads password.
Goodreads MCP reads supported Goodreads RSS feeds and optional Goodreads CSV exports. The local server runs entirely on your machine. The remote server adds OAuth 2.1 login, per-account storage, and a Streamable HTTP MCP endpoint on Cloudflare Workers.
Goodreads retired its public API. This project does not scrape Goodreads, collect session cookies, or use private Goodreads APIs. RSS is limited to roughly the most recent 100 books on each shelf; import a CSV export for complete history.
Tools
Tool | Purpose |
| List shelves found in RSS or an imported library |
| Read a shelf with an optional result limit |
| Read the |
| Return recently completed books |
| Calculate counts, ratings, pages, and pace, optionally by year |
| Search your own library by title, author, or ISBN |
| Find a library book and enrich ISBN metadata through Open Library |
Related MCP server: mcp-rss2json
Run locally
Requirements: Node.js 20 or newer and a Goodreads profile user ID. For RSS
access, open My Books, find the RSS link at the bottom of a shelf, and copy
the key query parameter. Treat it as a secret.
export GOODREADS_USER_ID=12345678
export GOODREADS_RSS_KEY=your-rss-key
npx goodreads-mcpGOODREADS_RSS_KEY is optional for public feeds. You can also set
GOODREADS_CSV_PATH to a Goodreads library export for complete local history.
Claude Code
claude mcp add goodreads \
--env GOODREADS_USER_ID=12345678 \
--env GOODREADS_RSS_KEY=your-rss-key \
-- npx -y goodreads-mcpCodex
# ~/.codex/config.toml
[mcp_servers.goodreads]
command = "npx"
args = ["-y", "goodreads-mcp"]
[mcp_servers.goodreads.env]
GOODREADS_USER_ID = "12345678"
GOODREADS_RSS_KEY = "your-rss-key"Use the hosted server
After deploying, connect a Streamable HTTP client to /mcp:
claude mcp add --transport http goodreads https://YOUR_WORKER.workers.dev/mcp
claude mcp login goodreads
codex mcp add goodreads --url https://YOUR_WORKER.workers.dev/mcp
codex mcp login goodreadsThe OAuth login opens the Worker's connect page. Paste your Goodreads profile
URL (for example https://www.goodreads.com/user/show/12345678-name) and
optional RSS key. The OAuth provider supports dynamic client registration,
PKCE, refresh tokens, and protected-resource metadata for compatible clients.
Self-host on Cloudflare
For a manual deployment:
Fork or clone this repository and run
pnpm install.Create the D1 database and KV namespaces described in
packages/server-remote/wrangler.toml.Apply the D1 migrations.
Replace placeholder binding IDs in
wrangler.toml.Add the secrets documented in
packages/server-remote/README.md.Run
pnpm --filter @goodreads-mcp/server-remote deploy.
Cloudflare's free plan is sufficient for personal/light use, subject to its
current limits. The deploy job in CI requires CLOUDFLARE_API_TOKEN and
CLOUDFLARE_ACCOUNT_ID repository secrets.
Development
corepack enable
pnpm install
pnpm check
pnpm buildWorkspace layout:
packages/core RSS, CSV, library queries, stats, Open Library
packages/server-local stdio MCP server published as goodreads-mcp
packages/server-remote OAuth-enabled Cloudflare Worker and onboarding UISee CONTRIBUTING.md for project boundaries and SECURITY.md for reporting and data-handling details.
Privacy
The local server keeps your library and credentials on your machine. A hosted
deployment stores the Goodreads identity, RSS key, imported CSV rows, and OAuth
grants required to serve each account. It does not receive your Goodreads
password. RSS responses may be cached for up to 15 minutes. Use the
authenticated delete_account MCP tool to remove stored profile and library
data, then revoke the connection in your MCP client.
Open Library receives ISBN queries when get_book performs enrichment. Review
the policies of Goodreads, Open Library, Cloudflare, and your MCP client before
use.
Limitations and migration path
Goodreads RSS normally exposes only about 100 recent items per shelf.
Private profiles may need an RSS key or CSV-only mode.
Some CSV exports omit fields used by aggregate statistics.
If Goodreads retires RSS, the core data-source interface can support another provider. Hardcover is the intended migration candidate because it offers a documented GraphQL API and Goodreads import.
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/simhskal/goodreads-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server