mcp-zotero
Provides tools for searching, browsing, and managing Zotero library items, collections, tags, attachments, and saved searches, with optional semantic search via local embeddings.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-zoterosearch items for 'deep learning' in my Zotero library"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-zotero
MCP server for Zotero — 38 library tools + optional semantic search via local embeddings.
Install
Base (Zotero API tools only)
uv tool install mcp-zoteroWith semantic search
uv tool install "mcp-zotero[rag]"Adds 8 RAG tools for indexing PDFs and searching by meaning. Downloads a ~80MB embedding model on first use.
With OCR for scanned PDFs
uv tool install "mcp-zotero[rag,ocr]"Adds docling-based OCR fallback for PDFs that contain scanned images instead of text.
Related MCP server: Zotero MCP Server
Configuration
Add to your Claude Code MCP settings (.mcp.json or ~/.claude/settings.json):
{
"mcpServers": {
"zotero": {
"command": "mcp-zotero",
"env": {
"ZOTERO_LIBRARY_ID": "YOUR_LIBRARY_ID",
"ZOTERO_LOCAL": "true",
"ZOTERO_LOCAL_KEY": "YOUR_LOCAL_KEY",
"ZOTERO_API_KEY": "YOUR_API_KEY",
"ZOTERO_ATTACHMENTS_DIR": "~/Zotero/storage"
}
}
}
}Environment variables
Variable | Required | Default | Description |
| Yes | — | Your Zotero library ID |
| No |
|
|
| No |
| Use Zotero Local API (requires Zotero app running) |
| For reads | — | Local API key |
| For writes | — | Web API key from zotero.org/settings/keys |
| For RAG | — | Path to Zotero storage directory |
RAG-only variables (when installed with [rag])
Variable | Default | Description |
|
| Where to store index data |
|
| Sentence transformer model |
|
| Target chunk size in tokens |
|
| Overlap between chunks |
|
| Enable docling OCR fallback for scanned PDFs |
Tools
Base tools (38)
Always available. Covers the full Zotero API:
Search & browse: search_items, top_items, get_item, trash_items, deleted_items
Collections: list_collections, list_collections_top, list_collections_sub, get_collection, collection_items, collection_items_top, collection_tags, create_collections, update_collection, delete_collection, add_item_to_collection, remove_item_from_collection
Tags: list_tags, item_tags, delete_tags
Items: add_item, update_item, delete_item
Attachments: download_attachments, attach_file, attach_linked_file
Schema: item_types, item_fields, item_type_fields, creator_fields, item_creator_types, item_attachment_link_modes
Saved searches: list_searches, list_groups, create_saved_search, delete_saved_search
System: ping, health_check
RAG tools (8)
Available when installed with [rag]. Semantic search across your PDF library:
Tool | Description |
| Index a collection or entire library |
| Index specific items by key |
| Remove items from the index |
| Search passages by meaning |
| Get surrounding text for a search result |
| Find similar passages across documents |
| Get index statistics |
| List all indexed items |
Development
git clone https://github.com/nealcaren/mcp-zotero.git
cd mcp-zotero
uv venv && uv pip install -e ".[dev,rag]"
pytestLicense
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nealcaren/mcp-zotero'
If you have feedback or need assistance with the MCP directory API, please join our Discord server