Open-source · Zotero MCP server

An MCP server
for your Zotero
library.

Zoteus gives Claude, Cursor, and other MCP clients access to your reference library: search papers, add by DOI, format bibliographies, and run semantic search over your own PDFs. Citations come from what you have already saved.

View on GitHub

MIT-licensed · Runs on your machine · No telemetry

Claude · Zoteus connected

Find papers in my library arguing against open-plan offices and draft a paragraph citing them.

zotero_semantic_search5 results · cited

Several studies in your collection challenge the open-plan model. Bernstein & Turban (2018) found face-to-face interaction dropped ~70% after the switch (p. 4); Kim & de Dear (2013) link it to lower satisfaction with privacy and acoustics.

Bernstein, E. S., & Turban, S. (2018). The impact of the ‘open’ workspace… Phil. Trans. R. Soc. B, 373.

Works withClaude DesktopClaude CodeCursorVS CodeZedCodexGemini CLI
Install

One command for any MCP client.

Reads work key-free against the desktop app. Add a Zotero API key for writes, sync, and group libraries.

Claude Code

claude mcp add --transport stdio \
  zoteus -- npx -y @oscardvs/zoteus

Any client (universal)

npx add-mcp @oscardvs/zoteus

Claude Desktop

Download zoteus.mcpb
from the latest release →

Your references are in Zotero.
Your AI client can’t see them.

Without a connection, every new chat starts from nothing: you paste the same PDFs again, describe your library again, and a request for references can come back with citations that do not exist. Zoteus connects the library itself, so your AI works from what you’ve already read and saved.

What it does

Search, cite, add, and write back to your own library.

Semantic search over your PDFs

Hybrid keyword and vector search across metadata, full text, and annotations, with page locators in the results. Runs on local embeddings by default.

Citations from your own library

Zoteus reads the references in your Zotero library and formats them with citeproc-js in any CSL style.

Add by identifier

Give it a DOI, ISBN, PMID, or arXiv id and it fetches the metadata and files the item.

Safe, reversible writes

Versioned, optimistic-locked, reversible trash by default, gated delete.

Runs on your machine

Reads go to the Zotero desktop app when it is running. Semantic search uses an on-device embedding model by default.

Scholarly-context graph

Follow references and citing works through OpenAlex and Crossref. Zoteus also ships MCP Resources, Prompts, and the code-execution pattern for agent use.

Read the docs
Pricing

Free to self-host. Hosted if you want it.

Self-hosted

Free

MIT-licensed. Run it yourself.

  • · Every feature, no paywall
  • · Local-first, your own keys
  • · Self-host the remote for a team

Hosted

€30/year

Managed, always-on connector. Sustains the project.

  • · No server to run; connect in claude.ai
  • · Per-user Zotero login, encrypted
  • · You keep your data & keys
See hosted plan

Connect your Zotero library.

One command in your MCP client. Open-source and free to self-host.

View on GitHub