Goodreads MCP

Goodreads MCP

Enables access to Goodreads shelves and reading history via MCP tools, using RSS feeds and CSV exports without requiring a password.

Category
Visit Server

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

Deploy to Cloudflare

For a manual deployment:

  1. Fork or clone this repository and run pnpm install.
  2. Create the D1 database and KV namespaces described in packages/server-remote/wrangler.toml.
  3. Apply the D1 migrations.
  4. Replace placeholder binding IDs in wrangler.toml.
  5. Add the secrets documented in packages/server-remote/README.md.
  6. 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

MIT

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured