hardcover-mcp
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., "@hardcover-mcpShow me my reading progress and stats for this year."
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.
hardcover-mcp
โ ๏ธ Beta v0.1.0 โ This is an early release. The API surface, tool names, and query structure may change. Please report issues and feedback via GitHub Issues.
A Model Context Protocol (MCP) server for the Hardcover API โ the book-tracking platform that uses the same GraphQL API for its website, iOS, and Android apps.
Connect any MCP-compatible AI assistant (Claude Desktop, Cursor, Kiro, or any MCP client) directly to your Hardcover library, reading history, goals, and the full Hardcover book catalogue.
Contents
Related MCP server: hardcover-mcp
Features
๐ Search books, authors, series, users, lists, characters, publishers, and prompts
๐ Browse your library โ all statuses, filtered views, and paginated results
๐ Reading progress โ currently-reading books with page-level progress
๐ Reading statistics โ books read this month, this year, all time, with average ratings
๐ฏ Reading goals โ progress, state, and target for all your goals
๐๏ธ Books by date range โ list every book you finished between two dates
๐ Reading journal โ per-book session history
๐ค User profiles โ your profile and public profiles by username
๐ Lists โ retrieve any Hardcover list with its books
๐ Activity feed โ your recent activity and activity on specific books
๐ Editions โ look up by title, ID, or ISBN-10/13
โ๏ธ Authors โ profiles and bibliography
๐ Series โ ordered, deduplicated book lists
Tools Reference
Identity
Tool | Description |
| Authenticated user's profile: id, username, name, bio, location, books count, followers, flair, pro status |
Search
Tool | Arguments | Description |
|
| Search books, authors, series, users, lists, characters, publishers, or prompts |
Books
Tool | Arguments | Description |
|
| Full book details by Hardcover ID |
|
| Full book details by URL slug (e.g. |
|
| All editions matching an exact title |
|
| Single edition details |
|
| Look up edition by ISBN-10 or ISBN-13 (digits only) |
Authors
Tool | Arguments | Description |
|
| Author profile by ID |
|
| Author profile by slug (e.g. |
|
| Books by an author, ordered by popularity |
Series
Tool | Arguments | Description |
|
| Series metadata: name, description, book count |
|
| Ordered, deduplicated book list โ excludes partial books and compilations |
My Library
Tool | Arguments | Description |
|
| Full library, all statuses, paginated |
|
| Library filtered by reading status |
| โ | Currently-reading books with page progress |
|
| Your relationship with a book: status, rating, review, read sessions |
|
| Reading journal and session history for a book |
Status IDs: 1 Want to Read ยท 2 Currently Reading ยท 3 Read ยท 4 Paused ยท 5 Did Not Finish ยท 6 Ignored
Reading Statistics
Tool | Arguments | Description |
|
| All-time count + avg rating, and filtered count since a date ( |
|
| Books finished between two dates, ordered newest first |
Goals
Tool | Arguments | Description |
| โ | All reading goals with progress, target, state, and dates |
Activities
Tool | Arguments | Description |
|
| Your activity feed (books added, rated, reviewed, goals, lists) |
|
| Community activity for a specific book |
Other Users
Tool | Arguments | Description |
|
| Look up a public user profile |
|
| Another user's library filtered by reading status |
Lists
Tool | Arguments | Description |
|
| List details and its books (up to 50) |
Requirements
Python 3.10 or later
uv (recommended) or pip
A Hardcover API key โ get yours at hardcover.app/account/api
Installation
With uv (recommended)
git clone https://github.com/YOUR_USERNAME/hardcover-mcp
cd hardcover-mcp
uv syncWith pip
git clone https://github.com/YOUR_USERNAME/hardcover-mcp
cd hardcover-mcp
pip install -e .From PyPI (once published)
uv pip install hardcover-mcp
# or
pip install hardcover-mcpConfiguration
Copy .env.example to .env and add your API key:
cp .env.example .envHARDCOVER_API_KEY=your_api_key_hereKeep your token private. Your Personal Access Token has access to your Hardcover account. Never commit it to version control, share it publicly, or embed it in client-side code.
Usage
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"hardcover": {
"command": "uv",
"args": [
"run",
"--with-editable",
"/path/to/hardcover-mcp",
"hardcover-mcp"
],
"env": {
"HARDCOVER_API_KEY": "your_api_key_here"
}
}
}
}Or if installed via pip/uv into a virtualenv:
{
"mcpServers": {
"hardcover": {
"command": "/path/to/venv/bin/hardcover-mcp",
"env": {
"HARDCOVER_API_KEY": "your_api_key_here"
}
}
}
}Kiro CLI
Add to ~/.kiro/settings/mcp.json:
{
"mcpServers": {
"hardcover": {
"command": "/path/to/uv",
"args": [
"run",
"--with-editable",
"/path/to/hardcover-mcp",
"hardcover-mcp"
],
"env": {
"HARDCOVER_API_KEY": "your_api_key_here"
},
"disabled": false,
"autoApprove": []
}
}
}Other MCP Clients
Point your client at the hardcover-mcp entrypoint (or python -m hardcover.server) with HARDCOVER_API_KEY set in the environment. The server communicates over stdio and is compatible with any MCP 1.0+ client.
Rate Limits & API Policy
Please read before building with this server. Hardcover's API is free to use but has firm limits. Hitting them unexpectedly can disrupt your workflow.
Rate Limits
Plan | Daily | Burst | Per Minute |
Free | 5,000 req/day | 10 req | 60 req/min |
Supporter | 50,000 req/day | 15 req | 60 req/min |
Daily limit: hard cap. Once reached, all requests return
429until midnight UTC.Burst limit: how many requests you can fire back-to-back before throttling. Refills continuously at the per-minute rate.
Per-minute limit: 60 req/min for all plans (token bucket).
Per-request limit: a single GraphQL request may contain at most 5 top-level queries. Exceeding this returns
403, not429.Personal Access Tokens get double the burst capacity vs. legacy JWT auth on the same plan.
This MCP server surfaces retry_after hints when a 429 is returned, so your AI assistant can back off gracefully.
Commercial Use
User-owned data (libraries, ratings, reviews, journal entries, lists, goals) may not be used in commercial products unless you are acting on behalf of a user who has explicitly granted access.
Aggregate, anonymised data (e.g. number of Hardcover readers, average Hardcover rating) may be used commercially if credited to Hardcover.
Images served from Hardcover are user-uploaded. If you display them publicly, you must have a DMCA takedown policy.
Prohibited Query Patterns
The following GraphQL operators are disabled by the API:
_like, _nlike, _ilike, _niregex, _nregex, _iregex, _regex, _nsimilar, _similar
Queries must run server-side
The Hardcover API may not be called from a browser. Your API key must be kept in a secure server environment.
For more details see the official Getting Started guide.
Disclaimer
This is a beta release (v0.1.0). It is independent, community-built software and is not affiliated with, endorsed by, or supported by Hardcover.
The Hardcover API is itself in beta and subject to breaking changes.
Tool names, query structure, and response shapes in this MCP server may change between versions.
Use in production or commercial contexts is entirely at your own risk.
By using the Hardcover API via this server, you agree to Hardcover's policies.
Development
git clone https://github.com/YOUR_USERNAME/hardcover-mcp
cd hardcover-mcp
# Create virtualenv and install with dev deps
uv sync --extra dev
# or: pip install -e ".[dev]"
# Run tests
uv run pytest
# or: python -m pytest
# Run the server locally (needs HARDCOVER_API_KEY in environment)
HARDCOVER_API_KEY=your_key hardcover-mcpProject structure
hardcover-mcp/
โโโ hardcover/
โ โโโ __init__.py
โ โโโ client.py # GraphQL HTTP client, rate-limit handling, error mapping
โ โโโ queries.py # All GraphQL query strings
โ โโโ server.py # MCP server, tool definitions, dispatch
โโโ tests/
โ โโโ conftest.py # Shared fixtures
โ โโโ test_client.py # 30 client tests (HTTP errors, rate limits, response parsing)
โ โโโ test_server.py # 51 server tests (tool dispatch, error formatting)
โโโ .env.example
โโโ .gitignore
โโโ pyproject.toml
โโโ README.mdRunning tests
pytest # all tests
pytest tests/test_client.py # client only
pytest tests/test_server.py # server only
pytest -v # verboseContributing
Contributions are welcome. Please:
Open an issue first to discuss significant changes
Follow the existing code style
Add or update tests for any changed behaviour
Keep PRs focused โ one feature or fix per PR
License
MIT โ see LICENSE for details.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to help users manage their reading experience by searching books, tracking reading progress, managing bookmarks, and generating personalized recommendations and summaries.
- AlicenseAqualityAmaintenanceConnects AI assistants to the Hardcover book library, enabling natural language book searches, reading status updates, list management, and library exploration.315MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI assistants with direct access to your ebook library, enabling listing books, reading chapters, and searching across books via the Model Context Protocol.MIT
- FlicenseAqualityCmaintenanceEnables AI assistants to interact with BookLore self-hosted libraries, allowing natural language queries to search books, manage reading status, ratings, series, authors, and highlights.71
Related MCP Connectors
Read and update your Everway trips and itineraries from any MCP-compatible AI assistant.
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
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/muhyousri/hardcover-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server