Zotero Library Integration
STDIOModel Context Protocol server for Zotero integration, allowing Claude to interact with Zotero library.
Model Context Protocol server for Zotero integration, allowing Claude to interact with Zotero library.
A Model Context Protocol server for Zotero integration that allows Claude to interact with your Zotero library.
Get your Zotero credentials:
# First, create an API key at https://www.zotero.org/settings/keys # Then use it to get your user ID: curl -H "Zotero-API-Key: YOUR_API_KEY" https://api.zotero.org/keys/current
The response will look like:
{ "userID": 123456, "username": "your_username", "access": { "user": { "library": true, "files": true, "notes": true, "write": true } } }
The userID
value is what you need.
Set environment variables:
export ZOTERO_API_KEY="your-api-key" export ZOTERO_USER_ID="user-id-from-curl"
Verify your credentials:
# Test that your credentials work: curl -H "Zotero-API-Key: $ZOTERO_API_KEY" \ "https://api.zotero.org/users/$ZOTERO_USER_ID/collections"
You should see your collections list in the response.
Install and run:
# Install globally (recommended) npm install -g mcp-zotero mcp-zotero # Or run directly with npx npx mcp-zotero
To use this server with Claude Desktop, add the following to your Claude Desktop configuration:
{ "mcpServers": { "zotero": { "command": "mcp-zotero", "env": { "ZOTERO_API_KEY": YOUR_API_KEY, "ZOTERO_USER_ID": YOUR_USER_ID } } } }
get_collections
: List all collections in your libraryget_collection_items
: Get items in a specific collectionget_item_details
: Get detailed information about a papersearch_library
: Search your entire libraryget_recent
: Get recently added papersIf you encounter any issues:
Verify your environment variables are set:
echo $ZOTERO_API_KEY echo $ZOTERO_USER_ID
Check the installation:
npm list -g mcp-zotero
Try reinstalling:
npm uninstall -g mcp-zotero npm install -g mcp-zotero