Zotero MCP logo

Zotero MCP

Search, read, cite, annotate, and organize Zotero research libraries from MCP-compatible AI assistants.

Install Zotero MCP

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

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "zotero-mcp": {
      "command": "uvx",
      "args": [
        "zotero-mcp-server"
      ],
      "env": {
        "ZOTERO_LOCAL": "YOUR_VALUE_HERE",
        "ZOTERO_API_KEY": "YOUR_VALUE_HERE",
        "ZOTERO_LIBRARY_ID": "YOUR_VALUE_HERE",
        "ZOTERO_LIBRARY_TYPE": "YOUR_VALUE_HERE"
      }
    }
  }
}

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

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

Zotero MCP connects Zotero libraries to MCP-compatible assistants, exposing tools for metadata, full-text reading, annotations, notes, collections, tags, search, and citation export. It can use the local Zotero database and Better BibTeX when Zotero Desktop is available, or the Zotero web API for remote access. Optional semantic-search support finds papers by meaning, while PDF extras support page images, layouts, and region-based annotations. Reach for Zotero MCP when an agent needs to work with an existing research library rather than a general web search index.

Use cases

  • Search a Zotero library for papers by topic or author
  • Read selected pages from a research paper
  • Collect highlights and notes for a literature review
  • Create and update annotations on PDF attachments
  • Export citations in APA, MLA, Chicago, IEEE, or BibTeX formats

Key features

  • Metadata, full-text, page-range, and image reading
  • Metadata, tag, structured, citation-key, and semantic search
  • PDF and EPUB annotation retrieval and editing
  • Zotero note creation, updating, and trashing
  • Collection, library, attachment, and tag browsing
  • CSL bibliography and citation export

Tools41

What Zotero MCP lets your agent do. Expand a tool for its parameters.

Verified live~14.5k tokens of context

Security & health

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

ActiveLast checked Today

Recent health check succeeded.

50/52 checks healthy over the last 91d

What it can do

From the 41 tools this server returned when we ran it.

Can delete or modify data · 9Handles credentials · 8Makes network requests · 8Read-only tools · 32
Network at startup2 connections
Files written at startup30

Observed 2026-10-15 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 3d ago via OSV.dev · zotero-mcp-server (PyPI)

Adoption & maintenance

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

GitHub stars5.8kStargazers on the source repository.
Last commit3d agoMost recent push to the default branch.
Tools exposed41Callable tools this server registers over MCP.
Directory activity12 viewsConfig copies, upvotes, and views on AllMCPs.

How Zotero MCP works

What Zotero MCP does

Zotero MCP gives an AI assistant structured access to a Zotero research library through the Model Context Protocol. It supports metadata lookup, BibTeX and CSL-based bibliography export, full-text extraction, page-range reading, annotation retrieval, note management, collection browsing, tag discovery, and several kinds of item search.

Research workflows can search by metadata, tags, structured fields, citation keys, or semantic similarity. Agents can gather highlights and notes into a per-paper digest with zotero_synthesize_annotations, then use that material for a literature review. The server can also create, update, and delete notes; create, edit, or permanently remove PDF and EPUB annotations; and change an item's parent relationship.

How it works

The server maintains an active library context. Use zotero_list_libraries to discover personal, group, and locally available feed libraries, then call zotero_switch_library before operating on another library. Subsequent reads and writes use that selected context.

In local mode, reads can come directly from Zotero's SQLite database. When Zotero Desktop is running, Better BibTeX is used for citation-key lookups and some local operations. Web mode uses the Zotero API. Writing requires either an authorized local Zotero installation or a Zotero web API key.

Semantic search uses an embedding database and requires the optional semantic dependencies plus a configured embedding provider. Run the database update tool after installation or after adding or changing library items. PDF layout detection and page-image output require the optional PDF dependencies.

Setup and configuration

Install the Python package with Python 3.10 or newer:

bash
uv tool install zotero-mcp-server
# or
pip install zotero-mcp-server

For local access, enable Zotero's setting that allows other applications on the computer to communicate with Zotero. The MCP setup command can configure Claude Desktop, or the server can be added manually with ZOTERO_LOCAL set to true.

Install optional capabilities with zotero-mcp-server[semantic], [pdf], [scite], or [all]. On Zotero 10+, run the local authorization command and approve the requested access in Zotero. Web API writes use ZOTERO_API_KEY and ZOTERO_LIBRARY_ID.

Tools and capabilities

  • Search items by title, creator, year, abstract, tags, collections, citation key, structured fields, or semantic similarity.
  • Read item metadata, abstracts, BibTeX, primary PDF or EPUB text, selected PDF pages, and page images.
  • Find attachment keys, inspect PDF page layouts, and place text, area, or sticky-note annotations.
  • Retrieve, create, replace, append, update, and trash Zotero notes.
  • Browse libraries, collections, nested collection contents, recent items, tags, and child attachments.
  • Export formatted bibliographies or in-text citations through Zotero's CSL engine.
  • Assemble highlights, annotation comments, and notes into a structured research digest.

Limitations and notes

Full-text extraction can return 10,000 or more tokens and should be reserved for reading a paper, not searching across papers. PDF extraction may return little text for scanned documents without OCR. Page and region operations use attachment keys rather than parent item keys; zotero_get_item_children helps locate them.

Area annotations are PDF-only and should normally follow zotero_get_page_layout. EPUB annotations support highlights but not area boxes or sticky notes. Deleting an annotation is permanent, while deleting a note moves it to Zotero's recoverable Trash. Semantic search depends on a populated embedding database and is available only with the semantic extra. Local attachment paths are available only in local mode.

Reviews

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

Frequently Asked Questions about Zotero MCP

Zotero MCP is an MCP server that connects AI assistants to Zotero research libraries. Its main tools search items, read metadata and paper text, retrieve and manage notes and annotations, browse collections, perform semantic search, and export citations or bibliographies. It works through local Zotero access or the Zotero web API.

Install it with `uv tool install zotero-mcp-server` or `pip install zotero-mcp-server` using Python 3.10 or newer. Enable Zotero's local application access setting, then run `zotero-mcp setup` for Claude Desktop or configure another MCP client manually.

Yes, Zotero MCP works with Cursor. The project documents Cursor as an MCP client and also provides a shell-based agent-skill route through `zotero-mcp install-skill` for agents that can run commands.

Install the semantic extra with `pip install "zotero-mcp-server[semantic]"`, configure an embedding provider, and run `zotero_update_search_database`. Check readiness with `zotero_get_search_database_status` before calling `zotero_semantic_search`.

Authorize local writes on Zotero 10+ with the local authorization command and approve the dialog in Zotero, or configure `ZOTERO_API_KEY` and `ZOTERO_LIBRARY_ID` for web API writes. The server also exposes `zotero_write_capabilities` to report the available write route.

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 PreviewZotero MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/zotero-mcp?style=directory)](https://allmcps.com/mcp/zotero-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/zotero-mcp"><img src="https://allmcps.com/api/badge/zotero-mcp?style=directory" alt="Zotero MCP on AllMCPs" /></a>