Skip to main content
Glama
README.md
# Zotero MCP Server

An MCP (Model Context Protocol) server that integrates with Zotero's local API to search, retrieve, and extract full text from PDFs in your Zotero library.

## Prerequisites

- Zotero application with local API enabled
- uv (recommended) or Python 3.12+ with pip

## 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_config.json` for Antigravity, `mcp.json` for Claude Desktop or Cursor):

```json
{
  "mcpServers": {
    "zotero": {
      "command": "uvx",
      "args": ["git+https://github.com/yuogawaiic/zotero-mcp.git"]
    }
  }
}
```

## 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) | Extract full text from a PDF attachment associated with a Zotero item. |
| `read_pdf` | `local_path` (required) | Extract full text from a PDF file at a local file path. Can be used with filesystem MCP servers. |




TDQS

B3.2/5.0

Scored across 4 tools

Disambiguation3/5

The tools have overlapping purposes that could cause confusion: 'read_pdf' and 'zotero_read_pdf' both read PDFs, with the latter being a more specific Zotero-integrated version. However, 'zotero_get_item' and 'zotero_search_items' are clearly distinct for retrieval and searching, and the descriptions help clarify the differences between the PDF tools.

Naming Consistency3/5

The naming is mixed: 'zotero_get_item', 'zotero_read_pdf', and 'zotero_search_items' follow a consistent 'zotero_verb_noun' pattern, but 'read_pdf' deviates by omitting the 'zotero_' prefix. This inconsistency is minor but noticeable, making the set less predictable.

Tool Count3/5

With 4 tools, the count is borderline for a Zotero server: it feels thin for covering a full bibliographic management domain (e.g., missing create, update, or delete operations). However, it's reasonable for a focused subset of reading and retrieval tasks, though not ideal.

Completeness2/5

There are significant gaps in the tool surface for Zotero's domain: it only supports reading PDFs and retrieving/searching items, with no tools for creating, updating, deleting, or managing collections. This incomplete coverage will likely cause agent failures when trying to perform common Zotero workflows beyond basic lookups.

Maintenance

ActivityInactive
ResponsivenessNo issues