NestDaddy

MCP Zotero

io.github.Xevos117/mcp-zotero · v2.1.0

Unofficial Zotero server: search your library, add papers by DOI, import PDFs, cite in Word

Connect Runs on your machine

Terminal
claude mcp add mcp-zotero -e ZOTERO_API_KEY=<ZOTERO_API_KEY> -e ZOTERO_USER_ID=<ZOTERO_USER_ID> -e ZOTERO_LIBRARY_TYPE=<ZOTERO_LIBRARY_TYPE> -e ZOTERO_LIBRARY_ID=<ZOTERO_LIBRARY_ID> -e UNPAYWALL_EMAIL=<UNPAYWALL_EMAIL> -e UNSAFE_OPERATIONS=<UNSAFE_OPERATIONS> -- npx -y @xevos117/[email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "mcp-zotero": {
      "command": "npx",
      "args": [
        "-y",
        "@xevos117/[email protected]"
      ],
      "env": {
        "ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
        "ZOTERO_USER_ID": "<ZOTERO_USER_ID>",
        "ZOTERO_LIBRARY_TYPE": "<ZOTERO_LIBRARY_TYPE>",
        "ZOTERO_LIBRARY_ID": "<ZOTERO_LIBRARY_ID>",
        "UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>",
        "UNSAFE_OPERATIONS": "<UNSAFE_OPERATIONS>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "mcp-zotero": {
      "command": "npx",
      "args": [
        "-y",
        "@xevos117/[email protected]"
      ],
      "env": {
        "ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
        "ZOTERO_USER_ID": "<ZOTERO_USER_ID>",
        "ZOTERO_LIBRARY_TYPE": "<ZOTERO_LIBRARY_TYPE>",
        "ZOTERO_LIBRARY_ID": "<ZOTERO_LIBRARY_ID>",
        "UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>",
        "UNSAFE_OPERATIONS": "<UNSAFE_OPERATIONS>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "mcp-zotero": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@xevos117/[email protected]"
      ],
      "env": {
        "ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
        "ZOTERO_USER_ID": "<ZOTERO_USER_ID>",
        "ZOTERO_LIBRARY_TYPE": "<ZOTERO_LIBRARY_TYPE>",
        "ZOTERO_LIBRARY_ID": "<ZOTERO_LIBRARY_ID>",
        "UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>",
        "UNSAFE_OPERATIONS": "<UNSAFE_OPERATIONS>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
ZOTERO_API_KEY
Required, secret
Zotero Web API key (zotero.org/settings/keys) with library read/write and file access
ZOTERO_USER_ID
Required
Your numeric Zotero user ID (shown on zotero.org/settings/keys); the default library is this user's
ZOTERO_LIBRARY_TYPE
Optional
Default library type: 'user' (personal library) or 'group'
ZOTERO_LIBRARY_ID
Optional
Numeric group ID; required when ZOTERO_LIBRARY_TYPE is 'group', otherwise defaults to ZOTERO_USER_ID
UNPAYWALL_EMAIL
Optional
Email sent to the Unpaywall API to find open-access PDFs; if unset, OA PDF lookup is skipped
UNSAFE_OPERATIONS
Optional
Deletions allowed: 'none' (default, all blocked), 'items' (delete_items) or 'all' (also delete_collection)

Details

Package@xevos117/[email protected] (NPM, stdio)
First published11 Nov 2026
Last updated11 Nov 2026
Registry nameio.github.Xevos117/mcp-zotero

More search and web servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.