Fast, Customizable & Light Zotero MCP server for AI research assistants
Project description
Zotero MCP Lite
A high-performance Model Context Protocol (MCP) server for Zotero with customizable research workflows.
- Full Local - No cloud, no API key; runs entirely via Zotero Desktop
- Atomic Tools - 9 composable tools; LLM orchestrates as needed
- MCP-Native - Works with any MCP client
- Extensible - User-editable prompts to match your research style
- Easy Deploy - Single command install, auto-detects Zotero
Architecture
flowchart LR
subgraph MCP [Zotero MCP Lite]
Read[Read Operations]
Write[Write Operations]
end
subgraph Zotero [Zotero Desktop]
LocalAPI["/api/ endpoint"]
ConnectorAPI["/connector/ endpoint"]
SQLite[(zotero.sqlite)]
end
Read -->|GET| LocalAPI
Read -->|Direct SQL| SQLite
Write -->|POST saveItems| ConnectorAPI
LocalAPI --> SQLite
ConnectorAPI --> SQLite
Quick Start
Prerequisites
- Python 3.10+
- Zotero 6 or 7 installed
Step 0: Enable Zotero Local API
The Local API allows third-party applications to communicate with Zotero. This is required.
Steps:
- Open Zotero → Edit → Settings (or Preferences on macOS)
- Go to Advanced tab
- Under Miscellaneous, check "Allow other applications on this computer to communicate with Zotero"
- The API will be available at
http://localhost:23119/api/
Note: The Local API requires manual enabling (unlike the browser Connector).
Step 1: Install
uv tool install zotero-mcp-lite
Or with pip:
pip install zotero-mcp-lite
Alternative: Install from GitHub or source
# From GitHub (latest development version)
uv tool install "git+https://github.com/xmruuu/zotero-mcp-lite.git"
# From source (for development)
git clone https://github.com/xmruuu/zotero-mcp-lite.git
cd zotero-mcp-lite && uv sync
uv run zotero-mcp setup
# Direct run without install
uvx zotero-mcp-lite serve
Step 2: Setup
zotero-mcp setup
This detects your Zotero installation and configures MCP clients automatically.
Step 3: Connect to MCP Client
Claude Code (one command):
claude mcp add zotero -- zotero-mcp serve
Other MCP clients — add to your MCP config JSON:
{
"mcpServers": {
"zotero": {
"command": "zotero-mcp",
"args": ["serve"]
}
}
}
That's it! You're ready to use Zotero with AI assistants.
Features
9 Atomic MCP Tools
Search and Navigation
zotero_search_items- Keyword search with tag filteringzotero_get_recent- Recently modified/added items (excludes notes by default)zotero_get_collections- List all collectionszotero_get_collection_items- Items in a collection (excludes notes by default)zotero_search_annotations- Search all PDF highlights across library
Content Reading
zotero_get_item_metadata- Metadata, authors, abstract, tagszotero_get_item_children- Attachments, notes, and PDF annotationszotero_get_item_fulltext- Full text extraction
Writing (via local Connector API)
zotero_create_note- Create note with full formatting support (tables, lists, line breaks)
4 Research Skills (MCP Prompts)
Pre-defined workflows that guide AI through common academic tasks:
| Skill | Use Case | What It Does |
|---|---|---|
knowledge_discovery(query) |
Explore a topic | Searches titles AND your annotations |
literature_review(item_key) |
Deep-dive one paper | Structured analysis from annotations or full text |
comparative_review(item_keys) |
Compare papers | Table-rich synthesis with insights |
bibliography_export(item_keys) |
Prepare citations | APA, IEEE, and BibTeX formats |
Works with or without annotations. Fully customizable. See Customizing Skills.
Debugging
Debugging MCP servers can be challenging. Use MCP Inspector:
npx @modelcontextprotocol/inspector zotero-mcp serve
This opens a web UI to test tools and prompts interactively.
Technical Notes
- Annotations: Direct SQLite query (faster than Web API, works offline)
- Cross-platform: Auto-detects Zotero on Windows, macOS, Linux
- Architecture: Read via
/api/, Write via/connector/, Annotations via SQLite
Customizing Skills
Prompts are fully customizable. Copy from the package defaults and edit:
~/.zotero-mcp/prompts/
├── literature_review.md # Single paper analysis skill
├── comparative_review.md # Multi-paper comparison skill
├── knowledge_discovery.md # Topic exploration skill
└── bibliography_export.md # Citation export skill
Loading order: User files (~/.zotero-mcp/prompts/) take priority over package defaults.
Edit the .md files to customize analysis sections, add new ones, or change the output format entirely.
Credits
Thanks to @54yyyu for the original zotero-mcp project.
License
MIT License - See LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zotero_mcp_lite-0.1.4.tar.gz.
File metadata
- Download URL: zotero_mcp_lite-0.1.4.tar.gz
- Upload date:
- Size: 146.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6eb6c478ae0c2a4367cac2ed4ba5b7c365645f1c2b7d78b730d2ec495bf0145
|
|
| MD5 |
234ab351ae749693464f9be53cded310
|
|
| BLAKE2b-256 |
2fb026963f21eca41c5df1a86b097a9fada4739eeac7aae6b311b6693f922339
|
Provenance
The following attestation bundles were made for zotero_mcp_lite-0.1.4.tar.gz:
Publisher:
publish.yml on xmruuu/zotero-mcp-lite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zotero_mcp_lite-0.1.4.tar.gz -
Subject digest:
b6eb6c478ae0c2a4367cac2ed4ba5b7c365645f1c2b7d78b730d2ec495bf0145 - Sigstore transparency entry: 843942267
- Sigstore integration time:
-
Permalink:
xmruuu/zotero-mcp-lite@fb6cd21d7fd9a59919d356cb585a9b6fc99d9334 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/xmruuu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fb6cd21d7fd9a59919d356cb585a9b6fc99d9334 -
Trigger Event:
push
-
Statement type:
File details
Details for the file zotero_mcp_lite-0.1.4-py3-none-any.whl.
File metadata
- Download URL: zotero_mcp_lite-0.1.4-py3-none-any.whl
- Upload date:
- Size: 27.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a31e533a4ff608b28d98973e9cec298d5452bab09280c823b79cee4ce1aa35f
|
|
| MD5 |
27d714f555522e354e82fe1275d3b854
|
|
| BLAKE2b-256 |
8413e71723028363f44dc18fda75c46c7da8a1727bc9d80c09c60e97611349fd
|
Provenance
The following attestation bundles were made for zotero_mcp_lite-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on xmruuu/zotero-mcp-lite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zotero_mcp_lite-0.1.4-py3-none-any.whl -
Subject digest:
0a31e533a4ff608b28d98973e9cec298d5452bab09280c823b79cee4ce1aa35f - Sigstore transparency entry: 843942271
- Sigstore integration time:
-
Permalink:
xmruuu/zotero-mcp-lite@fb6cd21d7fd9a59919d356cb585a9b6fc99d9334 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/xmruuu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fb6cd21d7fd9a59919d356cb585a9b6fc99d9334 -
Trigger Event:
push
-
Statement type: