Goodreads MCP
Enables access to Goodreads shelves and reading history via MCP tools, using RSS feeds and CSV exports without requiring a password.
README
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.
[!IMPORTANT] 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 |
List shelves found in RSS or an imported library |
get_reading_list |
Read a shelf with an optional result limit |
get_currently_reading |
Read the currently-reading shelf |
get_recently_read |
Return recently completed books |
reading_stats |
Calculate counts, ratings, pages, and pace, optionally by year |
search_library |
Search your own library by title, author, or ISBN |
get_book |
Find a library book and enrich ISBN metadata through Open Library |
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-mcp
GOODREADS_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-mcp
Codex
# ~/.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 goodreads
The 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 build
Workspace 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 UI
See 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.