Zotero MCP connects your Zotero research library with Claude and other AI assistants through the Model Context Protocol. This powerful tool enables you to discuss papers, get summaries, analyze citations, extract PDF annotations, and perform semantic searches across your research materials.
To automatically install Zotero MCP for Claude Desktop using Smithery:
npx -y @smithery/cli install @54yyyu/zotero-mcp --client claude
Using uv:
uv tool install "git+https://github.com/54yyyu/zotero-mcp.git"
zotero-mcp setup # Auto-configure for Claude Desktop
Using pip:
pip install git+https://github.com/54yyyu/zotero-mcp.git
zotero-mcp setup # Auto-configure for Claude Desktop
To check for updates:
zotero-mcp update --check-only
To update to the latest version (preserves all configurations):
zotero-mcp update
Configure semantic search during initial setup or separately:
# During initial setup (recommended)
zotero-mcp setup
# Or configure semantic search separately
zotero-mcp setup --semantic-config-only
After setup, build your semantic search database:
# Build the semantic search database
zotero-mcp update-db
# Check database status
zotero-mcp db-status
zotero-mcp setup
Add to your claude_desktop_config.json
:
{
"mcpServers": {
"zotero": {
"command": "zotero-mcp",
"env": {
"ZOTERO_LOCAL": "true"
}
}
}
}
Go to Settings -> MCP Servers -> Edit MCP Configuration, and add:
{
"mcpServers": {
"zotero": {
"name": "zotero",
"type": "stdio",
"isActive": true,
"command": "zotero-mcp",
"args": [],
"env": {
"ZOTERO_LOCAL": "true"
}
}
}
}
Then click "Save".
For accessing your Zotero library via the web API:
zotero-mcp setup --no-local --api-key YOUR_API_KEY --library-id YOUR_LIBRARY_ID
Zotero Connection:
ZOTERO_LOCAL=true
: Use the local Zotero API (default: false)ZOTERO_API_KEY
: Your Zotero API key (for web API)ZOTERO_LIBRARY_ID
: Your Zotero library ID (for web API)ZOTERO_LIBRARY_TYPE
: The type of library (user or group, default: user)Semantic Search:
ZOTERO_EMBEDDING_MODEL
: Embedding model to use (default, openai, gemini)OPENAI_API_KEY
: Your OpenAI API key (for OpenAI embeddings)OPENAI_EMBEDDING_MODEL
: OpenAI model nameGEMINI_API_KEY
: Your Gemini API key (for Gemini embeddings)GEMINI_EMBEDDING_MODEL
: Gemini model name# Run the server directly
zotero-mcp serve
# Setup and configuration
zotero-mcp setup --help # Get help on setup options
zotero-mcp setup-info # Show installation path and config info
# Updates and maintenance
zotero-mcp update # Update to latest version
zotero-mcp update --check-only # Check for updates without installing
# Semantic search database management
zotero-mcp update-db # Update semantic search database
zotero-mcp update-db --force-rebuild # Force complete database rebuild
zotero-mcp db-status # Show database status and info
# General
zotero-mcp version # Show current version
zotero_semantic_search
: AI-powered similarity search with embedding modelszotero_update_search_database
: Manually update the semantic search databasezotero_get_search_database_status
: Check database status and configurationzotero_search_items
: Search your library by keywordszotero_advanced_search
: Perform complex searches with multiple criteriazotero_get_collections
: List collectionszotero_get_collection_items
: Get items in a collectionzotero_get_tags
: List all tagszotero_get_recent
: Get recently added itemszotero_search_by_tag
: Search your library using custom tag filterszotero_get_item_metadata
: Get detailed metadata (supports BibTeX export)zotero_get_item_fulltext
: Get full text contentzotero_get_item_children
: Get attachments and noteszotero_get_annotations
: Get annotations (including direct PDF extraction)zotero_get_notes
: Retrieve notes from your Zotero libraryzotero_search_notes
: Search in notes and annotationszotero_create_note
: Create a new note for an item (beta feature)zotero-mcp setup
to configure your environment--limit
parameter for testingzotero-mcp update-db
zotero-mcp update --force
~/.config/zotero-mcp/
for backup filesTo add this MCP server to Claude Code, run this command in your terminal:
claude mcp add-json "zotero" '{"command":"zotero-mcp","env":{"ZOTERO_LOCAL":"true"}}'
See the official Claude Code MCP documentation for more details.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"zotero": {
"command": "zotero-mcp",
"env": {
"ZOTERO_LOCAL": "true"
}
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.
To add this MCP server to Claude Desktop:
1. Find your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
2. Add this to your configuration file:
{
"mcpServers": {
"zotero": {
"command": "zotero-mcp",
"env": {
"ZOTERO_LOCAL": "true"
}
}
}
}
3. Restart Claude Desktop for the changes to take effect