Skip to main content
Glama
zotero-mcp

zotero-mcp

by masaki39

Zotero MCP Server

PyPI Downloads PyPI - Downloads

An MCP (Model Context Protocol) server that integrates with Zotero's local API to search, retrieve, read PDFs, and add items by DOI from your Zotero library.

Prerequisites

  • Zotero application with local API enabled

  • uv (recommended) or Python 3.12+

Related MCP server: Local Zotero MCP

Enable Zotero Local API

In Zotero's settings (Preferences → Advanced → General), enable:

☑️ Allow other applications on this computer to communicate with Zotero

Configuration

Add the following to your MCP client configuration file (e.g., mcp.json for Claude Desktop or Cursor):

{
  "mcpServers": {
    "zotero": {
      "command": "uvx",
      "args": ["masaki39-zotero-mcp@latest"]
    }
  }
}

Available Tools

Tool

Parameters

Description

zotero_search_items

q (optional)

Search items in your Zotero library by author name or title. Returns up to 30 matching items (excluding attachments).

zotero_get_item

itemKey (required)

Retrieve detailed information about a specific item including title, authors, publication info, abstract, tags, etc.

zotero_read_pdf

itemKey (required), page_number (optional), attachment_index (optional, default=1)

Extract text from a PDF attachment. Specify a page number to read a single page, or omit to read all pages. Use attachment_index to select among multiple PDFs.

confirm_doi

doi (required)

Fetch metadata for a DOI from CrossRef. Use this to validate a DOI before adding it to Zotero.

add_item_by_doi

doi (required)

Add an item to Zotero by DOI. Validates via CrossRef and checks for duplicates before adding.

Example Usage

Once configured, you can use these tools through your MCP client:

  • "Search my Zotero library for papers about spinal deformity"

  • "Get details for item ABCD1234"

  • "Read page 3 of the PDF attached to item ABCD1234"

  • "Look up DOI 10.1038/s41586-021-03819-2 and add it to my Zotero library"

License

MIT License - see LICENSE file for details.

Contributing

Issues and pull requests are welcome at https://github.com/masaki39/zotero-mcp

Available Tools

5 tools
add_item_by_doiA

Add an item to the Zotero library by DOI. Fetches metadata from CrossRef, checks for duplicates by DOI, and creates the item only if it does not already exist.

Inputs: doi (required).

confirm_doiB

Fetch metadata for a DOI from CrossRef to validate it exists before adding to Zotero.

Inputs: doi (required).

zotero_get_itemB

Retrieve the details of a specified item in the Zotero library by itemKey.

Inputs: itemKey (required).

zotero_read_pdfA

Read a PDF attachment from a Zotero item. attachment_index selects which PDF (1-indexed, default=1). page_number reads a single page (1-indexed); if omitted, all pages are read.

Inputs: itemKey (required), page_number, attachment_index.

zotero_search_itemsA

Search items in the Zotero library by author and title (excluding attachments, up to 30 results).

Inputs: q.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a clear, distinct purpose: adding by DOI, confirming DOI, getting item details, reading PDF, and searching. No overlap.

    Naming Consistency3/5

    Mix of 'add_item_by_doi' and 'confirm_doi' without prefix, while 'zotero_get_item', 'zotero_read_pdf', 'zotero_search_items' use a 'zotero_' prefix. Inconsistent pattern.

    Tool Count5/5

    5 tools is well-scoped for a Zotero integration, covering essential operations without bloat.

    Completeness3/5

    Covers add, confirm, get, read PDF, and search, but missing update, delete, list all items, and collection management. Notable gaps.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers