Zotero MCP Server
# 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
Scored across 4 tools
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.
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.
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.
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.