Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Zotero Server

FreeNot checked

Gives Claude full read/write access to your Zotero reference library, enabling search, collection management, and article addition through natural language.

GitHubEmbed

About

Gives Claude full read/write access to your Zotero reference library, enabling search, collection management, and article addition through natural language.

README

An MCP (Model Context Protocol) server that gives Claude full read/write access to your Zotero reference library. Search your library, browse collections, add articles, and organize references — all through natural language.

Built with the MCP Python SDK and pyzotero.

Tools

Read

Tool Description
search_library Search your Zotero library by keyword, title, author, or phrase
get_collections List all collections (folders) with keys and item counts
get_collection_items Get all items in a specific collection
get_item_details Get full metadata for a specific item by key
get_recent_items Get the most recently added items

Write

Tool Description
add_article Add a journal article to your library (pairs well with CrossRef, Scopus, ERIC, etc.)
add_multiple_articles Batch-add articles from search results
create_collection Create a new collection or sub-collection
add_item_to_collection Add an existing item to a collection

Setup

1. Get Zotero API credentials

  1. Go to zotero.org/settings/keys
  2. Create a new API key with read/write access to your library
  3. Note your user ID (shown on the same page)

2. Install

cd zotero-mcp-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Or run directly with uv (dependencies are declared inline):

uv run server.py

3. Add to Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "zotero": {
      "command": "/path/to/zotero-mcp-server/venv/bin/python",
      "args": ["/path/to/zotero-mcp-server/server.py"],
      "env": {
        "ZOTERO_API_KEY": "your-api-key",
        "ZOTERO_USER_ID": "your-user-id",
        "ZOTERO_LIB_TYPE": "user"
      }
    }
  }
}

Or with uv:

{
  "mcpServers": {
    "zotero": {
      "command": "uv",
      "args": ["run", "/path/to/zotero-mcp-server/server.py"],
      "env": {
        "ZOTERO_API_KEY": "your-api-key",
        "ZOTERO_USER_ID": "your-user-id",
        "ZOTERO_LIB_TYPE": "user"
      }
    }
  }
}

Usage examples

  • "Search my Zotero library for papers on curiosity"
  • "Show me my Zotero collections"
  • "Add this CrossRef result to my Zotero library"
  • "Create a new collection called 'Literature Review' and add these 5 papers to it"
  • "What are the most recent items I've added to Zotero?"

Group libraries

To connect to a Zotero group library instead of your personal one, set ZOTERO_LIB_TYPE=group and use the group ID as ZOTERO_USER_ID.

License

MIT

from github.com/SMABoundless/zotero-mcp-server

Installing Zotero Server

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/SMABoundless/zotero-mcp-server

FAQ

Is Zotero Server MCP free?

Yes, Zotero Server MCP is free — one-click install via Unyly at no cost.

Does Zotero Server need an API key?

No, Zotero Server runs without API keys or environment variables.

Is Zotero Server hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Zotero Server in Claude Desktop, Claude Code or Cursor?

Open Zotero Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Zotero Server with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs