Cite Caddy — Claude Code MCP server: read/write access to Zotero
A remote MCP server that gives an assistant full read and write access to a Zotero library: items, collections, tags, attachments and notes.
claude mcp add --transport http cite-caddy https://citecaddy.herbertkokholm.dk/mcpWhat Cite Caddy does
Cite Caddy talks to Zotero through its Web API and exposes 39 tools. An assistant can search for items, add new ones, edit fields, apply tags, build and rename collections, pull down attachments and read their extracted text, handle notes, the trash and saved searches, and query Zotero's own item-type and field schema.
The server ships as a Docker container and expects a reverse proxy that terminates TLS in front of it. Clients only point at a URL, so there is nothing to run locally. In stdio mode the target library comes from ZOTERO_LIBRARY_ID, ZOTERO_LIBRARY_TYPE and ZOTERO_API_KEY; the key needs write permission, not read alone. In HTTP mode each caller supplies their own library ID, type and key through the /login form, and those keys are encrypted at rest with MCP_TOKEN_STORE_KEY.
Deleting and moving items deserves care. A Word document that cites an item through the Zotero plugin stores that item's key inside a live field code, and a library-to-library move is carried out as a removal followed by a fresh creation. Either operation breaks those citations without any warning: the document stays quiet and later shows stale field text. Calls that keep the key intact are fine. Six destructive tools, among them delete_item_permanently and move_item_to_different_library, take an optional idempotency_key, so a retry after an ambiguous response replays the earlier outcome rather than hitting Zotero again.
What it helps with
- look up an item in a Zotero library by its identifier
- tag a batch of items in one go
- sort items into collections and rename them
- download an attachment and read its extracted text
- clear out the trash and saved searches
Example prompts for the agent
- Find every Zotero item whose DOI appears in
refs.txtand tag themto-read - Create a collection called Review 2025 and move the graph neural network papers into it
- Show me the notes on the item with key
ABCD1234
How to install Cite Caddy
Platform CLI: remote server
claude mcp add --transport http cite-caddy https://citecaddy.herbertkokholm.dk/mcpPlatform CLI: remote server
codex mcp add cite-caddy --url https://citecaddy.herbertkokholm.dk/mcpConfig file
{
"mcpServers": {
"cite-caddy": {
"url": "https://citecaddy.herbertkokholm.dk/mcp"
}
}
}Config file
{
"servers": {
"cite-caddy": {
"type": "http",
"url": "https://citecaddy.herbertkokholm.dk/mcp"
}
}
}Platform CLI: remote server
gemini mcp add -t http cite-caddy https://citecaddy.herbertkokholm.dk/mcpStep by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Cite Caddy
How do I install Cite Caddy in Claude Code?
Run claude mcp add --transport http cite-caddy https://citecaddy.herbertkokholm.dk/mcp.
What does Cite Caddy do?
It gives an assistant full read and write access to a Zotero library: items, collections, tags, attachments, notes, the trash and saved searches.
What does the server need to run?
A Zotero Web API key with write permission and a library ID. In HTTP mode it also needs MCP_TOKEN_STORE_KEY to encrypt tenants' keys.