LABSCO SUMMARY
A reading log an assistant can actually query.
Book recommendations from a model are guesses about what exists; pointed at your Hardcover account they become queries against real titles, series and shelves. The read-only design means the worst outcome of a bad query is a wasted call, not a mangled library.
What it is
A community-maintained server over the Hardcover.app GraphQL API. It is read-only and namespaced, so an assistant can look books, readers and series up without any path to writing back. Not affiliated with Hardcover.app.
What you get
- Tools grouped under three namespaces:
books.*,users.*andseries.* - Resources such as
hardcover/tag-categoriesfor the vocabulary behind the data - Prompts such as
hardcover/fantasy-this-yearas ready-made starting queries limitandoffsetarguments on queries — the API rate-limits, and the docs suggest starting atlimit<=10- Read-only by construction: nothing here changes your Hardcover data
Requirements
Python 3.11+ and a Hardcover API key from hardcover.app/account/api. Export it as HARDCOVER_API_KEY including the leading Bearer prefix — the server refuses to start without it, and a missing prefix is the usual cause of a 401. Install with uv pip install -e . or pip, then run uv run src/hardcover_mcp/main.py. STDIO only.
Setup effort
Build from source — git clone https://github.com/AlexSowT/hardcover-mcp
USE CASES
01
Finding what to read next from your own shelves
Query your reader data and the series you are partway through, rather than a generic list.
02
Working out where a series left off
Look the series up and see which entries are logged and which are not.
03
Browsing by tag without learning the vocabulary
Read hardcover/tag-categories first, then search inside the categories that actually exist.
BEFORE YOU INSTALL
What to know first
Requires
- Python 3.11+
- HARDCOVER_API_KEY in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
TERMINAL
git clone https://github.com/AlexSowT/hardcover-mcp
cd hardcover-mcp
python -m venv .venv
source .venv/bin/activate
pip install -e .Get an API key from https://hardcover.app/account/api. Copy the value exactly as provided (it already starts with Bearer ).
TERMINAL
export HARDCOVER_API_KEY="Bearer <YOUR_TOKEN>"
uv run src/hardcover_mcp/main.pyMCP Clients
Codex
CODEX · TOML
[mcp_servers.hardcover_mcp]
command = "uv"
args = ["run", "src/hardcover_mcp/main.py"]
env = { "HARDCOVER_API_KEY" = "<YOUR_HARDCOVER_API_KEY>" }
cwd = "<YOUR_PATH_TO_HARDCOVER_MCP>"<YOUR_PATH_TO_HARDCOVER_MCP> is the absolute path of your clone, and "<YOUR_HARDCOVER_API_KEY>" is your Hardcover API key exactly as copied from hardcover.app, including its leading Bearer .