Zotero MCP Server
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):
{
"mcpServers": {
"zotero": {
"command": "uvx",
"args": ["masaki39-zotero-mcp"]
}
}
}
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
Metadata
Release files for masaki39-zotero-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| masaki39_zotero_mcp-0.2.0.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| masaki39_zotero_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.6 kB
Release files / masaki39_zotero_mcp-0.2.0.tar.gz
| Download URL | masaki39_zotero_mcp-0.2.0.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7966fe661f3baa5898f7c1014d28606d12d534429a138cbab679eeef91bc6aa6
|
|
BLAKE2b-256 checksum How to use checksums |
9204b52d1a5375821bc52c752373ada5d82ed8412b1c91d10bb073df2c61e58d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / masaki39_zotero_mcp-0.2.0-py3-none-any.whl
| Download URL | masaki39_zotero_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d96d8f143da9a6dd934555c503348efafb7c4e2c86e6e634fb71709dd6d9b79e
|
|
BLAKE2b-256 checksum How to use checksums |
771a0b83a77adc85aea598b8765343dcb0838ae056cefaceed981e0b27e54d31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|