Zoteus logo

Zoteus

The everything Zotero MCP server — Web API v3 + local API, safe writes, citations, search.

Install Zoteus

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "zoteus": {
      "command": "npx",
      "args": [
        "-y",
        "@oscardvs/zoteus"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

7/7 checks healthy over the last 46d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 12d ago via OSV.dev · @oscardvs/zoteus (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars61Stargazers on the source repository.
npm downloads4.2kPackage downloads in the last 30 days.
Last commit4d agoMost recent push to the default branch.

From the project README

Zoteus

A Zotero MCP server. Your whole library, inside Claude and ChatGPT.

Zoteus gives Claude Desktop, claude.ai, ChatGPT, Claude Code, Cursor and any other MCP client access to a Zotero library: search by keyword or by meaning, passages from your PDFs with page numbers, citations in any CSL style, adding items, and safe writes.

npm npm downloads CI Node License: MIT

Claude in the browser answering a question from a Zotero library through Zoteus: the question is typed, the Zoteus tools run, and the answer arrives with a verbatim passage, its page number, and APA references.

A real session, 6 September 2026, against the maintainer's own library. Tool calls are shown as a time-lapse. The full recording is on zoteus.com.

Install

For most clients there is nothing to download: the client fetches Zoteus with npx the first time it runs. New to MCP servers? Start with docs/getting-started.md.

ClientHow
Claude DesktopDownload the bundle for your system from the latest release, zoteus-macos.mcpb, zoteus-windows.mcpb or zoteus-linux.mcpb, and double-click it. This is the install with a settings screen (Settings → Extensions → Zoteus) and per-tool permissions.
Claude Codeclaude mcp add --transport stdio zoteus -- npx -y @oscardvs/zoteus
Claude Code, as a plugin/plugin marketplace add oscardvs/zoteus, then /plugin install zoteus@zoteus. The same server, plus four research skills that teach Claude to quote passages with pages, build evidence tables, cite, and tidy the library. Set the optional API key with /plugin → Zoteus → Configure options. Claude Desktop shows no settings for a plugin, so use the .mcpb there. See plugins/zoteus.
Cursor, VS Code, Zed, Codex, Gemini CLI, any MCP clientnpx add-mcp @oscardvs/zoteus, or add npx -y @oscardvs/zoteus as a stdio server by hand.
claude.ai in the browserAdd a custom connector pointing at a hosted Zoteus or at your own remote instance.
ChatGPT (web)Needs Developer mode on a paid ChatGPT plan (Settings → Security and login). Then Plugins → Create app, with the server URL of a hosted Zoteus (https://mcp.zoteus.com/mcp) or of your own remote instance, and OAuth as the authentication. ChatGPT only connects to remote servers, so the npx install does not apply.

Then run the Zotero desktop app. Reads, and on Zotero 10+ writes to every library the app holds (your own and the group libraries synced into it), need no cloud key. Add a Zotero API key for sync, for group libraries the app does not hold, and for when the app is closed:

Terminal
claude mcp add --transport stdio zoteus -e ZOTERO_API_KEY=xxxxx -- npx -y @oscardvs/zoteus

Get a key at zotero.org/settings/keys. In the desktop app, enable Settings → Advanced → "Allow other applications on this computer to communicate with Zotero". Step-by-step for each client, with screenshots: zoteus.com/docs/connect-claude-to-zotero.

Updating a desktop-extension install. A manually installed .mcpb (or older .dxt) does not auto-update. Turn on Check for updates in the extension settings (or set ZOTEUS_UPDATE_CHECK=true) and Zoteus asks GitHub once a day, then says so in-chat via zotero_whoami when a newer version exists; download the new bundle for your system and reinstall. The check is off by default. npx installs always run the latest published version.

What it does

Zoteus exposes research tools, namespaced zotero_*, that search the library by keyword or by meaning, return passages from your PDFs with page locators, show PDF pages and figures as images, format bibliographies with citeproc-js in any CSL style, add items by DOI or arXiv id, and create, edit, tag and organize items with versioned writes and a reversible trash. When the Zotero desktop app is running, reads and writes go to it directly for every library it holds and need no cloud API key; the Zotero Web API v3 is the fallback for sync, group libraries the app does not hold, and for when the app is closed. Zoteus is written in TypeScript, runs on your machine, and is MIT licensed.

Features

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Zoteus

zoteus is an MCP server that gives MCP clients access to a Zotero library through the Zotero Web API v3 and local API. It supports keyword and meaning-based search, PDF passages with page numbers, CSL-style citations, adding items, and safe writes. It works with Claude, ChatGPT, Claude Code, Cursor, and other MCP clients.

Install zoteus with npx by adding `npx -y @oscardvs/zoteus` as a stdio MCP server. Claude Code can use `claude mcp add --transport stdio zoteus -- npx -y @oscardvs/zoteus`, while Cursor, VS Code, Zed, Codex, Gemini CLI, and other clients can use `npx add-mcp @oscardvs/zoteus`.

A Zotero API key is optional for local reads and personal-library writes handled through the Zotero desktop app, provided the app is running and application communication is enabled. Add a key for sync, group libraries, metadata edits, tags, collections, and access when the Zotero app is closed.

zoteus can search a Zotero library by keyword or meaning, retrieve passages from PDFs with page numbers, generate citations in CSL styles, add items, and perform safe writes. Its supported write operations include adding items by identifier, attachments, annotations, trash, restore, and other operations described by its local and Web API access.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewZoteus AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/zoteus?style=directory)](https://allmcps.com/mcp/zoteus)
HTML Embed
<a href="https://allmcps.com/mcp/zoteus"><img src="https://allmcps.com/api/badge/zoteus?style=directory" alt="Zoteus on AllMCPs" /></a>