home / mcp / zotero mcp server

Zotero MCP Server

A Model Control Protocol (MCP) connector for integrating your local Zotero with Claude

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "gyger-mcp-pyzotero": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/gyger/mcp-pyzotero.git",
        "--with",
        "mcp[cli]",
        "--with",
        "pyzotero",
        "mcp",
        "run",
        "zotero.py"
      ],
      "env": {
        "ZOTERO_USER_ID": "0"
      }
    }
  }
}

You can expose your local Zotero library to Claude via a dedicated MCP (Model Control Protocol) server. This lets Claude access your Zotero items and metadata directly from your desktop, enabling nuanced queries and retrievals from your library while keeping control on your machine.

How to use

Install and run the Zotero MCP server locally, then connect your Claude Desktop client to it. You will interact with your Zotero library through predefined tools, such as listing library properties, fetching collection items, retrieving item metadata, and performing searches.

How to install

Prerequisites you need before installing are Python 3.10 or newer and a local Zotero installation with the Web API enabled. You will also use the Claude Desktop client’s MCP features.

# Step 1: Install and prepare the local MCP runtime
# (Install uvx as the runtime helper for MCP workflows)
# Note: exact install commands may vary by platform

# Step 2: Add the Zotero MCP server to Claude Desktop configuration via uvx
uvx run mcp install zotero.py

# Step 3: Ensure the local Zotero web API is enabled (Zotero 7)
# This step is performed in Zotero settings (UI steps not shown here)

# Step 4: Start using the Zotero MCP server with Claude Desktop
# The server is configured through a local JSON entry (see config in the next section)

Additional configuration and run details

The Zotero MCP server is designed to run locally in stdio mode using a local command, not as a remote HTTP service. The example configuration shown in the setup demonstrates how Claude Desktop can launch the server via uvx with the appropriate flags.

{
  "mcpServers": {
    "zotero": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/gyger/mcp-pyzotero.git",
        "--with",
        "mcp[cli]",
        "--with",
        "pyzotero",
        "mcp",
        "run",
        "zotero.py"
      ],
      "env": []
    }
  }
}

Available tools

get_zotero_summary

Lists properties about your library including collections, recent items, or tags.

get_collection_items

Get all items in a specific collection by collection_key.

get_items_metadata

Get detailed information about specific papers, including abstracts.

search_library

Search your Zotero library with modes like everything or titleCreatorYear.