Back to School
AI research assistant — read your readings 10x faster this semester.From $7/mo · Lifetime $39
View Pricing →

Zotero MCP Server

MCPServer.intro

Since v4.0, the Zotero MCP server is built on DocsAgent that enables AI agents to connect and search papers in your Zotero library.

Detailed Guide Available:

Check out our guide to Zotero MCP Server 4.0: JavaScript and Python shells over a resident C++ core, with no need to open Zotero.

Read the Zotero MCP Server 4.0 Guide →

To configure it, add one of the following to your MCP settings.

1. JavaScript / Node (npm) — start the search core, then register the server:

npx @docsagent/mcp-zotero start
{
  "mcpServers": {
    "docsagent-zotero": {
      "command": "npx",
      "args": [
        "-y",
        "@docsagent/mcp-zotero"
      ]
    }
  }
}

2. Python (3.10+) — same tools, same C++ core:

pip install docsagent-mcp-zotero
docsagent-mcp-zotero core start
{
  "mcpServers": {
    "docsagent-zotero": {
      "command": "docsagent-mcp-zotero",
      "args": []
    }
  }
}

Note: both shells share one config file at ~/.docsagent/config.json (override with DOCSAGENT_CONFIG). Set zoteroDataDir there if your Zotero data directory is not the default ~/Zotero, and set enableWrites to true if you want the write tools registered.

From v0.3.4 to v0.5.1, PapersGPT supports MCP Server via SSE server. This means that any chatbot client, such as ChatWise, Cherry Studio, Cursor, Gemini CLI, etc., that supports MCP SSE Server can connect to your personal Zotero library through PapersGPT on any Mac, Windows, or Linux system.

How to access your personal Zotero library in popular AI chatbots through PapersGPT?

Start the search core (the Zotero plugin is optional)

Run "npx @docsagent/mcp-zotero start" (JavaScript) or "docsagent-mcp-zotero core start" (Python) to launch the resident search core. Indexing and search read your Zotero data directory directly, so Zotero does not have to be open. Install the PapersGPT plugin in Zotero only if you also want the agent to import items, add notes or retag papers.

Configure the PapersGPT MCP Server in your AI chatbot

Here, take the AI chatbot ChatWise as an example, you can configure your settings about PapersGPT MCP server as the pictures below:

image
image

In the chat dialog configuration, confirm that you are connecting the PapersGPT's MCP Server.

In some chatbots, such as ChatWise, Cherry Studio, There is an option to confirm whether to use the mcp connection at the bottom of the chat dialog box. You need to confirm again before the chat conversation. While in some chatbots like Gemini Cli, once configured, all are triggered automatically. Here still take ChatWise as an example, the concrete configures are shown below:

image

Select a thinking large language model and input the prompt related to zotero

In order to invoking MCP server automatically by LLM, when chatting you should choose a thinking model, such as GPT 5, Gemini 2.5 thinking, DeepSeek V3.1, or Qwen3 Next 80B A3B Thinking and etc. Besides selecting a thinking model, you should input some prompts like 'search papers about *** in Zotero', 'get the papers about *** in my Zotero'. The query you enter should preferably contain the word 'Zotero' to trigger the smart LLM to automatically invoke the PapersGPT MCP server. Here still take ChatWise as an example, selecting Qwen3 Next 80B A3B Thinking model provided by OpenRouter, and the responding result is shown below:

image
image

In ChatWise, when the MCP server is to be invoked, it will remind the user to manually confirm and trigger.

image

Core features of PapersGPT's Zotero MCP Server

BM25 full-text search of documents' meta data, such as title, creators, tags, abstract, notes, annotation and collections.

The 'search' tool runs BM25 full-text search across titles, creators, tags, abstracts, notes, annotations and collections, with filters for tags, year range, item type, authors and collections. 'get_content' then returns either the ranked passages that answer the question or the full text of the PDF, and 'get_metadata' adds abstracts, annotations and citations (BibTeX, CSL-JSON or formatted).

Reads your library without opening Zotero

The engine reads ~/Zotero/zotero.sqlite and the storage/ directory directly, so search and retrieval keep working while Zotero is closed — around 15 ms per query even on a 1,000+ PDF library. Only the write tools (import items, add notes, bulk tag or collection edits) go through Zotero's local API and therefore need Zotero running.

Blazing fast, powered by a resident C++ search core

The indexing and retrieval engine is written in C++ for extreme efficiency, and it runs as a background service. The MCP shell itself is available for JavaScript (npm) and Python (PyPI) — use either one, or both, over the same core.