CLI tool
54yyyu/zotero-mcp avatar
54yyyu/zotero-mcp

Zotero MCP: A practical bridge between your research library and AI assistants

Zotero MCP: Connects your Zotero research library with Claude and other AI assistants via the Model Context Protocol to discuss papers, get summaries, analyze citations, and more.

5,026 stars400 forksPythonMIT

At a glance

What is it?
Zotero MCP connects Zotero libraries to Claude, ChatGPT, and other MCP clients, offering search, annotations, write operations, and optional semantic search. The project also ships a standalone CLI and an agent skill that cuts context cost dramatically.
Who is it for?
Adopt Zotero MCP if you live in Zotero and want an AI assistant to read, summarize, or edit your library without manual export. It is a good fit for researchers who already use Claude Desktop, ChatGPT, or a shell-based agent like Claude Code.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What problem it solves and who it is for

Researchers and students accumulate large Zotero libraries, but getting an AI assistant to actually read those papers is awkward. You can copy text into a chat window, but that loses structure and context. Zotero MCP solves this by exposing your library as a set of tools that an MCP-compatible assistant can call directly. The target user is someone who already uses Zotero and wants to discuss papers, get summaries, or analyze citations without leaving their AI client. The README lists ChatGPT, Claude, Cherry Studio, Chorus, and Cursor as supported clients. If you are a Zotero power user who also writes with AI tools, this project removes a real friction point.

How the MCP server works under the hood

The server speaks the Model Context Protocol, which is a standardized way for AI assistants to call external tools. Based on the README, the default profile exposes 38 tools. Those tools cover search by title, author, or content; browsing collections and tags; retrieving metadata in markdown or BibTeX; extracting PDF annotations; and write operations like adding papers by DOI or URL. The data flow is straightforward: the assistant sends a tool call, the server queries your Zotero library (local or web API), and returns structured results. The server also supports a hybrid mode where reads come from the local Zotero database and writes go through the web API. That design matters because local mode works offline but may not support all write operations, while web mode requires an API key.

Getting it running: install commands and configuration

Installation is straightforward if you have Python. The README recommends uv, but pip and pipx work too. The core command is `uv tool install zotero-mcp-server`, followed by `zotero-mcp setup` to auto-configure for Claude Desktop. The base install is lightweight, with no ML dependencies. Heavy features are gated behind extras: `semantic` for vector search via ChromaDB and sentence-transformers, `pdf` for PDF outline extraction with PyMuPDF, and `scite` for citation tallies and retraction alerts. You can install everything with `uv tool install "zotero-mcp-server[all]"`. Updating is handled by `zotero-mcp update --check-only` to see what's new, then `zotero-mcp update` to apply it while preserving configuration. The setup command also configures semantic search, though the README truncates the details.

The agent skill: a cheaper alternative for shell-capable clients

One of the more interesting design choices is the agent skill. The README points out that an MCP server sends every tool schema on every request, which costs 13,448 tokens before you even type anything. The skill, installed via `zotero-mcp install-skill`, sits at 98 tokens until the agent decides it is relevant, then loads the body at 1,368 tokens. That is roughly 137x cheaper before use and about 10x after it fires. The skill teaches the agent to drive the standalone CLI (`zotero-cli`) directly. This is a clever workaround for clients that have shell access, like Claude Code or Cursor. The README is honest that this measures fixed context cost only, not task success or round trips. If the skill produces wrong answers, the token savings are meaningless.

Semantic search and the optional extras trade-off

Semantic search is the headline feature for finding papers by concept rather than keyword. It uses ChromaDB for vector storage and supports multiple embedding models: a free local default, OpenAI, Gemini, and Ollama. The database auto-updates with configurable sync schedules. But this comes at a cost. The `semantic` extra pulls in sentence-transformers and other ML dependencies, which makes the install heavier. The README explicitly separates these extras so the base install stays fast. If you only need basic lookup and annotation, you do not need semantic search at all. The trade-off is real: semantic search gives better recall for vague queries, but it requires more setup and ongoing maintenance of the embedding index. For a small library, keyword search might be enough.

Scite integration: citation intelligence without an account

The `scite` extra adds citation tallies and retraction alerts. According to the README, it uses public API endpoints, so no Scite account is required. That is a notable advantage because Scite normally requires a subscription. The feature mirrors the Scite Zotero Plugin but works through the MCP server. For each item, you can see how many papers support, contrast, or mention it. Retraction alerts scan your whole library for papers that have been retracted or corrected. This is useful for literature reviews where you need to know if a cited paper has been withdrawn. The limitation is that it depends on Scite's public data, which may not be as complete as the paid API. If you need deep citation graphs or citation networks, this extra might not be enough.

Write operations and the hybrid mode caveat

Zotero MCP is not read-only. You can add papers by DOI, with automatic metadata fetching and an open-access PDF cascade that tries Unpaywall, arXiv, Semantic Scholar, and PMC in order. You can also add by URL or local file, create collections, update metadata, batch-update tags, and merge duplicates with a dry-run preview. These write operations are powerful, but they come with a caveat. Local mode reads from your local Zotero database, but writes may require the web API. The hybrid mode solves this by reading locally and writing via the web API. That means you need a Zotero API key and network access for writes. If you are offline or do not want to grant web API access, you are limited to local reads. The duplicate merge dry-run is a good safety feature, but it is still a write operation that could modify your library if you confirm it.

Maintenance, licensing, and when it is the wrong tool

The project is MIT-licensed, which means you can use, modify, and embed it freely, though you should check the license text for exact terms. Maintenance appears active, with recent releases v0.9.1, v0.10.0, and v0.11.0 pushed in August 2026. The update command preserves configurations, which reduces upgrade friction. However, the project is young and evolving quickly, so breaking changes between minor versions are possible. It is the wrong tool if you do not use Zotero regularly, or if your AI client does not support MCP and you do not want to install a CLI skill. It is also wrong if you need citation intelligence beyond what Scite's public endpoints provide. For those cases, you might be better off exporting a BibTeX file and pasting it into a chat, or using a dedicated reference manager with built-in AI features.

Editorial conclusion

Adopt Zotero MCP if you live in Zotero and want an AI assistant to read, summarize, or edit your library without manual export. It is a good fit for researchers who already use Claude Desktop, ChatGPT, or a shell-based agent like Claude Code. Skip it if you rarely touch Zotero or if you need deep citation analytics beyond Scite's public endpoints. Before committing, verify that your Zotero version is compatible with the local API and that the setup command detects your client; test the semantic extra on a sample collection because embedding models vary in quality and cost. The project is MIT-licensed and actively updated, but its write operations and hybrid mode depend on Zotero's web API, so check your account permissions first.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes