zotero-mcp-server
Zotero Toolkit
Tools for Zotero: MCP servers, Zotero plugins and agent skills for reference management and systematic/scoping review workflows.
Built for real review work - screening decisions, exclusion logging, PRISMA record accounting - rather than as a demo.
What's here
Component | Runs where | Status |
Any MCP client, or as a standalone CLI | v1.2.0 | |
| Inside the Zotero desktop app ( | v1.0.1 |
Loaded by an AI agent | planned | |
Shared libraries | not yet needed | |
Cross-package documentation | in progress |
zotero-toolkit/
├── mcp/ # MCP servers (npm workspaces)
│ └── zotero-mcp-server/ # 24 tools + 3 prompts over the Zotero Web API, plus a CLI
├── plugins/ # Zotero .xpi add-ons, using Zotero's internal API
├── agent-skills/ # research workflows for AI agents
├── core/ # shared libraries, once >1 package needs them
└── docs/ # cross-package documentationAutoAttach matches downloaded PDFs to the items you already have by reading what is inside each file — DOI, arXiv ID, embedded metadata, first-page text — rather than comparing filenames. Every match carries the evidence it was made on, and nothing is written until you confirm:

It runs inside Zotero, and every command ends in that same reviewed dialog:


Two different integration points, deliberately:
MCP servers talk to the Zotero Web API over HTTPS. They work from any machine against your synced library and need no desktop app, but only see items that have synced.
Plugins run inside Zotero using its internal API. They work offline and can touch local files and attachments, but must be installed in the app.
Quick start
The MCP server is the finished piece. Requires Node.js 18+.
git clone https://github.com/adolinjonathan-bot/zotero-toolkit.git
cd zotero-toolkit
npm install
npm run build
npm run verify # 7 checks, no credentials neededThen follow mcp/zotero-mcp-server/README.md to
create a Zotero API key and connect a client - Claude Desktop, Claude Code, Cursor,
Zed, Continue, VS Code, LM Studio, or a local open-source model.
It also runs as a plain CLI with no AI involved at all:
node mcp/zotero-mcp-server/dist/cli.js search "youth employability" --limit 10Repository conventions
npm installonce at the root; workspaces covermcp/*andcore/*.agent-skills/is documentation, not code, and is deliberately excluded.npm run buildandnpm run verifyfan out across every package.Build output (
dist/,build/,*.xpi) is not committed. Plugin.xpifiles ship as GitHub Release assets so each download traces to a source commit.Every package carries its own README; this file stays an index.
Licence
MIT - see LICENSE.
Credits
Initial implementation generated with Claude, then debugged, hardened and tested against a live research library.