zotero-mcp
by masaki39
README.md
# Zotero MCP Server
[](https://pepy.tech/projects/masaki39-zotero-mcp)

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+
## 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):
```json
{
"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](LICENSE) file for details.
## Contributing
Issues and pull requests are welcome at https://github.com/masaki39/zotero-mcp
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
ResponsivenessNo issues