Get Zotero MCP up and running in minutes
For the best experience, enable the local Zotero API:
Edit > Preferences > AdvancedUV is the fastest Python package manager. It provides quick installation and isolated environments.
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
uv tool install "git+https://github.com/54yyyu/zotero-mcp.git"
zotero-mcp setup
Classic Python installation using pip:
pip install git+https://github.com/54yyyu/zotero-mcp.git
zotero-mcp setup
Smithery is a package manager for AI tools. It automatically handles configuration.
npx -y @smithery/cli install @54yyyu/zotero-mcp --client claude
Smithery will automatically:
Enable AI-powered semantic search to find papers by meaning, not just keywords.
# During initial setup (recommended)
zotero-mcp setup
# Or configure separately
zotero-mcp setup --semantic-config-only
During setup, you'll be prompted to select an embedding model:
| Model | Cost | Quality | Requirements |
|---|---|---|---|
| Default (all-MiniLM-L6-v2) | Free | Good | Runs locally, no API key |
| HuggingFace | Free | Good | Runs locally, no API key |
| OpenAI | Paid | Better | OPENAI_API_KEY required |
| Gemini | Paid | Better | GEMINI_API_KEY required |
# Quick build (metadata only)
zotero-mcp update-db
# Full build with text content (better search results)
zotero-mcp update-db --fulltext
# Custom Zotero database path
zotero-mcp update-db --fulltext --db-path "/path/to/zotero.sqlite"
Configure how often the database syncs:
zotero-mcp update-dbzotero-mcp setup
Add to your claude_desktop_config.json:
{
"mcpServers": {
"zotero": {
"command": "zotero-mcp",
"env": {
"ZOTERO_LOCAL": "true"
}
}
}
}
Config file locations:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonGo to Settings → MCP Servers → Edit MCP Configuration:
{
"mcpServers": {
"zotero": {
"name": "zotero",
"type": "stdio",
"isActive": true,
"command": "zotero-mcp",
"args": [],
"env": {
"ZOTERO_LOCAL": "true"
}
}
}
}
Most MCP clients use a similar configuration format. The key settings are:
zotero-mcpZOTERO_LOCAL=true for local APIFor streamable HTTP transport:
zotero-mcp serve --transport streamable-http
Zotero MCP now supports ChatGPT! The setup requires a few additional steps.
pip install git+https://github.com/54yyyu/zotero-mcp.git
zotero-mcp setup --no-claude
The setup will create a standalone configuration optimized for ChatGPT.
search and fetch). The no-claude configuration ensures compatibility.
For detailed ChatGPT configuration, see the Getting Started guide.
Use the Zotero Web API for remote access to your library.
zotero-mcp setup --no-local \
--api-key YOUR_API_KEY \
--library-id YOUR_LIBRARY_ID
ZOTERO_LOCAL=false
ZOTERO_API_KEY=your_api_key
ZOTERO_LIBRARY_ID=your_library_id
ZOTERO_LIBRARY_TYPE=user # or 'group' for group libraries
Keep Zotero MCP up to date with the smart update command:
# Check for updates without installing
zotero-mcp update --check-only
# Update to latest version (preserves configurations)
zotero-mcp update
# Force update even if up to date
zotero-mcp update --force
The update command will:
~/.config/zotero-mcp/
# Check version
zotero-mcp version
# Show installation and config info
zotero-mcp setup-info
# Check semantic search database status
zotero-mcp db-status
If you encounter issues:
zotero-mcp setup-info to verify your configuration