mcp zotero

Local 2025-08-31 23:36:50 0
Research and Data @kaliaboi/mcp-zotero

Allows AI to interact with your [Zotero](https://www.zotero.org/) library.


NPM Version smithery badge

A Model Context Protocol server for Zotero integration that allows Claude to interact with your Zotero library.

Zotero MCP server

Setup

  1. 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.

  1. Set environment variables:
export ZOTERO_API_KEY="your-api-key"
export ZOTERO_USER_ID="user-id-from-curl"
  1. 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.

  1. Install and run:
# Install globally (recommended)
npm install -g mcp-zotero
mcp-zotero

# Or run directly with npx
npx mcp-zotero

Integration with Claude Desktop

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
      }
    }
  }
}

Available Tools

  • get_collections: List all collections in your library
  • get_collection_items: Get items in a specific collection
  • get_item_details: Get detailed information about a paper
  • search_library: Search your entire library
  • get_recent: Get recently added papers

Troubleshooting

If you encounter any issues:

  1. Verify your environment variables are set:
echo $ZOTERO_API_KEY
echo $ZOTERO_USER_ID
  1. Check the installation:
npm list -g mcp-zotero
  1. Try reinstalling:
    npm uninstall -g mcp-zotero
    npm install -g mcp-zotero