Zotero MCP logo

Zotero MCP

Searches Zotero libraries, returns item metadata, and extracts full text through MCP tools.

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-2": {
      "command": "uvx",
      "args": [
        "zotero-mcp@latest"
      ],
      "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.

Automated check passed— started and listed 3 tools correctly (Today).

Overview

Zotero MCP MCP server exposes a Zotero library to AI assistants through the Model Context Protocol. It provides tools for text search, complete item metadata retrieval, and full-text extraction from PDFs. The Python server can use either Zotero’s local API or the Zotero Web API, depending on configuration. Reach for it when an assistant needs to find, inspect, or read sources stored in Zotero.

Use cases

  • Search a Zotero library for sources
  • Retrieve complete metadata for an item
  • Read PDF text through an AI assistant
  • Inspect citations and publication details

Key features

  • Text search across Zotero items
  • Complete item metadata retrieval
  • PDF full-text extraction
  • Local Zotero API support
  • Zotero Web API support
  • User and group library configuration

Tools3

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

Verified live~818 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 1d ago

Recent health check succeeded.

7/7 checks healthy over the last 36d

What it can do

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

Read-only tools · 3
Network at startup2 connections
Files written at startup25

Observed 2026-10-24 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 14d ago via OSV.dev · zotero-mcp@latest (PyPI)

Adoption & maintenance

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

GitHub stars162Stargazers on the source repository.
Last commit2mo agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed3Callable tools this server registers over MCP.

How Zotero MCP works

What Zotero MCP does

The Zotero MCP MCP server gives MCP-compatible AI assistants read access to a Zotero library. It focuses on three library operations: finding items with a text query, retrieving all populated metadata for a selected item, and extracting the text of an item’s PDF.

Search results can be followed by metadata or full-text requests, allowing an assistant to locate a source and then inspect its bibliographic details or contents. Metadata is grouped into publication information, identifiers, timestamps, library information, and other fields returned by Zotero.

How it works

The server is implemented in Python and communicates with Zotero through one of two API paths. The local API is provided by the Zotero desktop application and can be more responsive, but Zotero must be running on the same computer and configured to allow communication from other applications.

The alternative is Zotero’s Web API. That mode uses a Zotero API key and library ID, and it can access either a user library or a group library according to the configured library type. The server returns formatted text from the selected Zotero records for consumption by an MCP client.

One API difference affects search behavior: local Zotero search includes citation keys, while Web API search does not. A citation-key query can therefore succeed locally but return no results through the Web API.

Setup and configuration

The Zotero MCP MCP server can be launched with uvx, pipx, a local Python checkout, or Docker. For a local installation, enable Zotero’s setting under Advanced that allows other applications on the computer to communicate with Zotero. Set ZOTERO_LOCAL=true when using that interface.

For Web API access, create an API key in Zotero account settings and identify the library ID. Configure these environment variables as needed:

  • ZOTERO_LOCAL: Selects the local API when set to true; the default is false.
  • ZOTERO_API_KEY: Holds the Web API key and is not needed for local API access.
  • ZOTERO_LIBRARY_ID: Identifies the user or group library for Web API requests and is not needed locally.
  • ZOTERO_LIBRARY_TYPE: Sets the library type to user or group; it defaults to user.

The README includes MCP configuration examples for Claude Desktop using uvx and for Docker using the published container image. Development setups can install dependencies with uv sync, place configuration in a project .env file, and run the server through the MCP Inspector.

Tools and capabilities

The Zotero MCP MCP server exposes these tools:

  • zotero_search_items searches the library using a text query.
  • zotero_item_metadata returns the complete populated metadata for a specific item, including fields not limited to a fixed schema.
  • zotero_item_fulltext returns the full text of a specific Zotero item, such as PDF contents.

The tools can be discovered through an MCP client or the MCP Inspector. Metadata fields omitted by Zotero are skipped, while fields unfamiliar to the server are preserved under an “Other Fields” section.

Limitations and notes

This server provides the interactions documented in the repository and is centered on reading Zotero data. The full-text capability is described for PDF contents, so it should not be assumed to extract text from every attachment type. Local API use depends on the Zotero application being available and configured on the same computer. Web API use requires the appropriate key and library ID, and citation-key searches are not available through that API path.

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 libraries through the local Zotero API or Zotero Web API. Its main tools search items, retrieve complete metadata for a specific item, and return full text such as PDF contents for further analysis.

Install it with `uvx`, `pipx`, a local Python checkout, or Docker. The README provides MCP configuration examples for Claude Desktop with `uvx` and Docker. Local development uses `uv sync`, while the server can be inspected with the MCP Inspector.

Enable “Allow other applications on this computer to communicate with Zotero” in Zotero Settings under Advanced, then set `ZOTERO_LOCAL=true`. API key and library ID values are not required for local API access.

For Web API access, set `ZOTERO_API_KEY` and `ZOTERO_LIBRARY_ID`; `ZOTERO_LIBRARY_TYPE` selects `user` or `group` and defaults to `user`. For the local API, set `ZOTERO_LOCAL=true`; the key and library ID are not required.

Yes, Zotero MCP works with Claude Desktop through an MCP server configuration. The documented examples use either `uvx` to launch the Python package or a Docker command, with environment variables supplied in the configuration.

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