mcp-zotero

MCP.Pizza Chef: kaliaboi

Five read-only lookups cover your Zotero cloud account: list your collections, list what is inside one, pull the full record for a single paper, keyword-search the whole library, and fetch what you added most recently. Nothing here can add, edit, tag or delete a reference, so your library is safe from accidental changes. You need a free Zotero account, a key generated in your account settings, and your numeric user ID. The code has not changed since February 2025.

Unmaintained · no code changes since February 2025
Notes
Web/Research

Use This MCP server To

Search my whole Zotero library by keyword List every collection in my research library See which papers I saved most recently Pull the authors and abstract for one paper Ask which of my saved papers cover a topic

README

MCP Zotero

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.

  2. Set environment variables:

    export ZOTERO_API_KEY="your-api-key"
    export ZOTERO_USER_ID="user-id-from-curl"
  3. 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.

  4. 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
  2. Check the installation:

    npm list -g mcp-zotero
  3. Try reinstalling:

    npm uninstall -g mcp-zotero
    npm install -g mcp-zotero

mcp-zotero FAQ

Can I use this to add papers to Zotero?
No. All five of its tools only read. There is no way to create, edit, tag or delete anything in your library.
Do I need a paid Zotero account?
No. A free account is enough. You generate a key in your Zotero account settings and look up your numeric user ID once.
Which apps does it work in?
It was written for Claude Desktop and works in any app that accepts a small pasted config block, such as Cursor or Cline.
Does it read my local files or my synced copy?
The synced online copy of your library, so anything you have not synced to Zotero's servers will not show up.
Is it still being updated?
The repository is public and not archived, but nothing has changed in the code since February 2025, so treat it as dormant.
How many recent papers can it return at once?
Ten by default, and the request is capped at one hundred even if you ask for more.