Skip to content

Essential Tools

Zotero Setup Guide

Install Zotero, choose citation and attachment plugins, and connect your library to Obsidian and AI research tools.

Beginner · 30–45 min · No prerequisites

A well-tended reference library compounds in value across every project.

Overview

Zotero is your primary reference management tool for the literature review process. This guide covers essential plugins and configurations to integrate Zotero with your AI-enhanced workflow, particularly with Obsidian and Cherry Studio.

Benefits:

  • Centralized reference management
  • PDF annotation and extraction
  • Seamless integration with Obsidian for notes
  • A choice of stored or linked attachments, with different sync limits
  • Direct API access for AI tools

Step 1: install Zotero

The current major release is Zotero 10 (checked October 19, 2026). Use the official download page for the latest compatible version and check each plugin's compatibility before upgrading.

1.1 download Zotero

  1. Visit zotero.org/download (opens in a new tab)
  2. Download the current Zotero release for Windows
  3. Run the .exe installer
  4. Follow the installation wizard
  5. Install the browser connector for your browser (Chrome, Firefox, Edge, etc.)

Most users should download Zotero from the official website; it works on all platforms and handles updates automatically.

1.2 create Zotero account

  1. Sign up at zotero.org/user/register (opens in a new tab)
  2. Sign in to Zotero desktop app
  3. Enable sync in Settings → Sync (Zotero → Settings on macOS; Edit → Settings on Windows/Linux)
    • Note: Free tier includes 300MB storage
    • External attachment storage has its own quota and device limitations; see below

Step 2: choose optional plugins

Install only what your workflow needs. Plugins can access your library and computer; check the developer and compatibility before installing. Zotero's plugin instructions (opens in a new tab) use Tools → Plugins. Open settings through Zotero → Settings on macOS or Edit → Settings on Windows/Linux.

2.1 install plugin market (Zotero addons)

The plugin market gives Zotero a central place to find and install extensions.

  1. Download from: GitHub - Zotero Addons (opens in a new tab)
  2. In Zotero: Tools → Plugins → gear menu → Install Plugin From File
  3. Select the downloaded .xpi file
  4. Restart Zotero
  5. Access via: Tools → Zotero Addons Manager

Benefits: One-click install for other plugins, automatic updates

2.2 Better BibTeX (optional)

Better BibTeX provides customizable citation keys and enhanced exports. It is recommended for the citation-key workflow below, not required for Zotero, ZotLit, or basic Zotero MCP access. ZotLit also supports native item keys and manual exports.

Via Addon Manager:

  1. Open Zotero Addons Manager
  2. Search "Better BibTeX"
  3. Click Install

Manual Installation:

  1. Download from: retorque.re/zotero-better-bibtex (opens in a new tab)
  2. Tools → Plugins → gear menu → Install Plugin From File

Configuration:

  1. Open Settings → Better BibTeX
  2. Citation keys (this is my personal preference - totally optional but recommended):
    • Pattern: [auth:lower][year]
    • Example: smith2024
    • Note on duplicates: Better BibTeX automatically adds letters (a, b, c, d) to the end when you have multiple papers from the same first author in the same year:
      • First paper: smith2024a
      • Second paper: smith2024b
      • Third paper: smith2024c
    • This keeps citation keys unique and memorable.
  3. Enable: "On item change, export to" (for auto-export)

2.3 attanger - attachment management

Attanger organizes attachments and uses Zotero's native file-renaming templates. Its current documentation (opens in a new tab) distinguishes three modes: Zotero storage, external linked files, or Zotero storage with an external copy.

Installation:

  1. Via Addon Manager: Search "Attanger"
  2. Or download from: GitHub - Zotero Attanger (opens in a new tab)

Configuration for external attachments:

  1. Open Settings → Attanger and choose a mode. Keep Zotero storage for Zotero-managed file sync, External Links for files managed outside Zotero, or Storage + External Copy for a one-way organized copy.

  2. For an external mode, choose a dedicated attachment folder, for example:

    /Users/[username]/Dropbox/Zotero-Attachments/
    or
    /Users/[username]/OneDrive/Zotero-Attachments/
  3. Enable: "Automatically rename attachments"

  4. Rename format (this is my personal preference - works great for searching):

    {{ citationKey suffix="_" }}{{ title truncate="100" }}
    • Example output:

      smith2024a_Systematic_Review_of_AI_in_Research.pdf
    • Why this format? The citation key makes PDFs easier to remember and find. The title makes files searchable on your computer, so you can match PDFs to their Zotero entries.

    • For more format options, see: Zotero File Renaming Guide (opens in a new tab)

External storage uses your cloud provider's quota, not unlimited free storage. Zotero does not sync linked files; each desktop needs access to the files and compatible path settings. An external copy is one-way from Zotero and does not carry Zotero annotations. It is not a two-way editing workflow or a guarantee of mobile access. See Zotero's attachment guidance (opens in a new tab).

Never put the Zotero database/data directory in Dropbox, OneDrive, or Google Drive. Only the separate attachment folder belongs there; syncing the database that way can corrupt it. Follow Zotero's data-directory warning (opens in a new tab).

2.4 zotlit plugin for Zotero and Obsidian

ZotLit brings Zotero metadata and annotations into managed regions of Obsidian literature notes. Its Companion plugin can support live updates when enabled. This is not general two-way synchronization of arbitrary edits. Follow the ZotLit documentation (opens in a new tab) for templates, update behavior, and paths on each device.

A. Install ZotLit Zotero Plugin:

  1. Via Addon Manager: Search for "ZotLit"
  2. Or download from: GitHub - ZotLit Releases (opens in a new tab)
  3. Install the .xpi file and restart Zotero.

B. Install ZotLit Obsidian Plugin:

  1. In Obsidian, go to Settings > Community Plugins.
  2. Turn off "Safe mode".
  3. Browse community plugins and search for "ZotLit".
  4. Install and then enable the plugin.

C. Configuration:

  1. In Obsidian's ZotLit settings:
    • Connect to the Zotero database. The plugin will usually find the database automatically.
    • Configure the template for your literature notes. A good starting point for the template is provided in the ZotLit documentation.
    • Set the folder where you want your literature notes to be created (e.g., 01-Literature-Notes/).

Usage:

  • From Obsidian, open the command palette (Cmd/Ctrl+P) and search for "ZotLit".
  • You can create new literature notes, insert citations, and pull annotations directly from Zotero into your Obsidian notes.

Step 3: enable API access

3.1 Zotero MCP server for Cherry Studio

Required for the MCP (Model Context Protocol) integration with Cherry Studio. This involves running a local server that connects Cherry Studio to your Zotero library. The server lets the AI search and interact with your research.

A. Prerequisites:

  • Python 3.10+ installed on your system.
  • Zotero 7+ running. The local API and full-text access below require 7 or newer.
  • Better BibTeX is optional, recommended when you want its citation keys.

B. Enable Zotero's Local API:

  1. In Zotero, open Settings → Advanced → Miscellaneous (under the Zotero menu on macOS or Edit on Windows/Linux).
  2. Check the box for "Allow other applications to communicate with Zotero".
  3. Note the port number (usually 23119).

This enables local access, not unrestricted writes. On Zotero 10 or newer, zotero-mcp authorize-local requests separate local-write authorization; inspect it with zotero-mcp authorize-local --status. Older versions can use local reads with separately authorized web API writes. See the Zotero MCP setup and write-access distinction before granting access.

C. Install and Set Up the Zotero MCP Server:

This is a command-line application that you will run from your terminal.

  1. Install the server:

    • The package on PyPI is zotero-mcp-server; the command it installs is zotero-mcp.
    uv tool install "zotero-mcp-server[semantic]"
    • The base install stays small, and the heavier dependencies live in optional extras. The semantic extra is the one that provides the embedding and vector-search machinery Step 2 configures, so install it now if you want semantic search. Use [all] instead to add PDF outline extraction and Scite citation data.
  2. Initial Setup & Embedding Configuration:

    • After installation, run the interactive setup command:
    zotero-mcp setup
    • This process asks you to choose a semantic search embedding model. You have several options, including:
      • Default: A local model that requires no API keys.
      • Gemini: Uses Google's embedding models. The setup prompts you for your Gemini API key.
      • OpenAI: Uses OpenAI's embedding models. You need an OpenAI API key.
    • Select Gemini and provide your API key when prompted to enable semantic search on your research library.
  3. Build the Database:

    • To allow the MCP to search your Zotero library, you need to build its database. For the most comprehensive search, include full-text extraction:
    zotero-mcp update-db --fulltext

D. Connect to Cherry Studio:

  1. In Cherry Studio, go to Settings > MCP Servers > Edit MCP Configuration.
  2. Add the following JSON configuration:
    {
      "mcpServers": {
        "zotero": {
          "name": "zotero",
          "type": "stdio",
          "isActive": true,
          "command": "zotero-mcp",
          "args": [],
          "env": {
            "ZOTERO_LOCAL": "true"
          }
        }
      }
    }

E. Further Information:

3.2 Better BibTeX API

Better BibTeX provides a separate JSON-RPC endpoint (opens in a new tab) for integrations that request it. This is not Zotero's web API or the local API used by Zotero MCP. With Zotero and Better BibTeX running, its read-only readiness method returns their versions:

curl http://localhost:23119/better-bibtex/json-rpc \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","method":"api.ready","id":1}'

Other JSON-RPC methods can change your library. Enable only the integration your workflow needs; do not expose the local endpoint to the network.

Step 4: Research Rabbit integration

This is optional. ResearchRabbit is a citation-network discovery route, not a prerequisite for a working Zotero library.

4.1 prerequisites

Before connecting Research Rabbit to Zotero, ensure you have:

  1. Zotero web sync enabled (Settings → Sync → logged in)
  2. At least one collection with seed papers
  3. A Research Rabbit account at researchrabbit.ai (opens in a new tab)

4.2 connect Research Rabbit to Zotero

Step 1: Enable Zotero Web Sync (if not already done)

  1. In Zotero desktop: Settings → Sync
  2. Log in with your Zotero account
  3. Ensure "Sync automatically" is checked
  4. Allow sync to complete before proceeding

Step 2: Import a collection Follow the ResearchRabbit connection and import steps. Authorize the intended Zotero account, then choose the articles and destination collection in ResearchRabbit's importer.

Step 3: Verify Import

  • Check that all papers imported correctly
  • Match imported papers with their titles
  • Compare the selected articles with the imported records before using them for screening

4.3 import and export workflow

ResearchRabbit's Zotero importer guide (opens in a new tab) says two-way sync is still under development. Use an explicit import and export workflow:

  1. Sync your seed collection from Zotero desktop to your Zotero web library.
  2. Import that collection into ResearchRabbit and explore related papers.
  3. Export your discoveries from ResearchRabbit as a BibTeX file.
  4. Import that file into Zotero, check the metadata, and resolve duplicates.

Changes do not synchronize automatically between the applications. Keep Zotero as your curated library and repeat the import or export when needed. The Research Rabbit setup guide explains the same workflow.

4.4 best practices for integration

Collection Naming Strategy:

Zotero Collections:
├── Research-2025_SeedPapers          # Original seed papers
├── Research-2025_RR_Discovered       # Papers found via Research Rabbit
└── Research-2025_Final_Curated       # Final selection after human review

Recommended Workflow:

  1. Start in Zotero: Import 3-5 seed papers from databases
  2. Explore in Research Rabbit: Import seed collection, discover related papers
  3. Curate in Zotero: Export discoveries as BibTeX, import them, then apply inclusion criteria
  4. Iterate: Repeat discovery-curation cycles as needed

4.5 troubleshooting integration

If a collection is missing, first check that it appears in your Zotero web library and that you linked the intended account. Review the access you granted. Large libraries can take time to load; the importer does not document a 50-paper limit.

If records are missing after import, compare your selection with the result and check the official importer guide (opens in a new tab). Do not diagnose an import problem as failed two-way sync: that feature is not yet available. For group material, check your access and sharing permissions before copying or exporting it.

4.6 alternative export methods

To bring discoveries back to Zotero, use file-based transfer:

Export from Research Rabbit:

  1. In Library, open the collection and select the papers, then choose Export
  2. Choose BibTeX (.bib) format
  3. Download file

Import to Zotero:

  1. File → Import
  2. Select the .bib file
  3. Choose "Place imported items in new collection"
  4. Name collection appropriately

Step 5: configure for systematic reviews

5.1 create collections structure

My Library/
├── Systematic Review Project/
│   ├── Search Results/
│   │   ├── Database 1/
│   │   ├── Database 2/
│   │   └── Grey Literature/
│   ├── Screening/
│   │   ├── Title-Abstract/
│   │   ├── Full-Text/
│   │   └── Excluded/
│   ├── Included Studies/
│   └── Analysis/

5.2 set up tags for review stages

Create standard tags:

  • #to-screen
  • #screening-passed
  • #full-text-review
  • #included
  • #excluded-reason-1 (not relevant)
  • #excluded-reason-2 (wrong methodology)
  • #excluded-reason-3 (duplicate)

5.3 create saved searches

  1. Edit → New Saved Search
  2. Examples:
    • "Needs Screening": Tag is not #screening-passed
    • "Recent AI Papers": Date Added in last 7 days AND Any field contains "AI"
    • "High Quality": Item Type is "Journal Article" AND Publication contains "Nature" OR "Science"

Step 6: import and export settings

6.1 import from databases

For systematic reviews, use these formats:

  • Web of Science: BibTeX or RIS
  • Scopus: RIS or BibTeX
  • PubMed: PubMed XML
  • IEEE Xplore: BibTeX
  • Google Scholar: Use Zotero Connector
  • OpenAlex: paste DOIs into Add Item by Identifier (the magic wand), one per line; see the OpenAlex guide

Bulk Import Process:

  1. File → Import
  2. Choose file format
  3. Select: "Place imported items in new collection"
  4. Name: "Database Name - Date"

6.2 export for analysis

For Obsidian:

  • Better BibTeX → Export Library
  • Format: Better CSL JSON or Better BibTeX
  • Keep updated: Check this for auto-sync

For Cherry Studio:

  • Use API access (configured above)
  • Or export as CSL JSON

Step 7: PDF management and annotation

7.1 built-in PDF reader

Zotero includes a built-in PDF reader for annotation:

  1. Double-click any PDF
  2. Use highlighting tools. Colors can carry meaning:
    • Yellow: Important points
    • Red: Disagree/Question
    • Green: Agree/Support
    • Blue: Methodology
    • Purple: Future research

7.2 extract annotations

  1. Right-click PDF → "Add Note from Annotations"
  2. Creates structured note with:
    • All highlights with page numbers
    • Your comments
    • Links back to PDF location

7.3 export annotations to Obsidian

With plugins configured:

  1. Right-click → "Create Obsidian Note"
  2. Annotations automatically included
  3. Each highlight links back to PDF page

Step 8: backup strategy

8.1 database backup

Your Zotero database location:

  • Windows: C:\Users\[username]\Zotero
  • Mac: /Users/[username]/Zotero
  • Linux: /home/[username]/Zotero

Backup regularly to:

  • External drive
  • Cloud service (different from attachment sync)

8.2 export library backup

Monthly backup:

  1. File → Export Library
  2. Format: Zotero RDF (includes most metadata)
  3. Include: Files and Notes
  4. Save with date: Zotero-Backup-2025-09-01.rdf

Troubleshooting

Common issues

Sync conflicts

  • Disable auto-sync during bulk imports
  • Resolve conflicts by choosing "Use local version"
  • Re-enable after import complete

Attachment not found

  • Check Attanger settings
  • Verify cloud folder is synced
  • Tools → Manage Attachments → Convert to Linked Files

Better BibTeX slow

  • Reduce citation key update frequency
  • Disable "Background export"
  • Pin citation keys for large libraries

API not working

  • Check firewall settings
  • Restart Zotero
  • Verify port 23119 is not in use

Plugin compatibility

  • Always check "Compatible with Zotero"
  • Disable old plugins before updating
  • Check GitHub issues for known problems

Quick reference

Keyboard shortcuts

  • Cmd/Ctrl + Shift + N: New item from identifier (DOI, ISBN)
  • Cmd/Ctrl + Shift + A: Add attachment
  • Cmd/Ctrl + Shift + C: Copy citation
  • Tab: Move between fields
  • Shift + Enter: Create new creator field

Useful workflows

Adding papers from PDF

  1. Drag PDF into Zotero
  2. Right-click → "Retrieve Metadata for PDF"
  3. Verify and correct metadata
  4. Add tags for review stage

Bulk tagging

  1. Select multiple items
  2. Drag to tag in left panel
  3. Or right-click → "Assign Tags"

Quick export to Obsidian

  1. Select papers
  2. Cmd/Ctrl + Shift + C (with Better BibTeX)
  3. Paste in Obsidian with citations

Integration points

With Obsidian

  • Better BibTeX provides citation keys
  • Obsidian Note plugin creates notes
  • ZotLit updates Zotero-derived note regions; live updates require its Companion and configuration

With Cherry Studio

  • Local API enables MCP access
  • Zotero MCP searches library
  • Exports feed the AI knowledge base

With cloud services

  • Attanger can organize external linked files or maintain a one-way copy
  • External storage has its own quota and per-device paths; Zotero does not sync linked files
  • Keep the Zotero database out of third-party cloud-sync folders

Checklist

By the end of this guide, you should have completed the following:

  • Install Zotero
  • Install only the plugins your workflow needs
  • If using Better BibTeX, configure citation keys
  • If using Attanger, choose a storage mode and check attachment access on each device
  • If using a local integration, enable the API it requires and verify that connection
  • If using ResearchRabbit, test a seed-collection import and BibTeX return to Zotero
  • Create collections structure
  • Import 3-5 seed papers
  • If using an Obsidian integration, test one note import

Check the result

Tool Comparison Matrix

Compare tools against the work you need to do, not a permanent yes/no feature grid. Prices, storage allowances, plugins and account permissions change. The choices below describe the routes documented in this book, not a ranking of every alternative.

Reference Management

This book's worked route uses Zotero and the separate Zotero MCP integration. If you already use EndNote or Mendeley, test a small export and import before migrating. Check that citation keys, attachments, annotations and collection structure survive; a successful bibliography import does not establish that all four transferred.

AI Interfaces

RouteWhat to check before choosing it
Cherry StudioThe selected provider, model, API billing and MCP configuration. Installing the client does not supply a provider account or make cloud models work offline.
ChatGPT webCustom remote MCP connections are available subject to plan and workspace permissions. Read/fetch access and write-capable access are different entitlements. Check the current connection guide (opens in a new tab).
Claude.aiRemote MCP connectors are available subject to plan limits and organization controls. They connect from Anthropic's infrastructure, not directly to a server on your laptop. Check the current connector guide (opens in a new tab).
Other browser clientsCheck the exact client's current integration and export documentation. A provider API, a CLI and a browser app need not expose the same capabilities.

A browser connector to a remote service is not the same installation as a local stdio server. Choose the transport and permissions your intended host actually supports. These are documentation-confirmed routes, not a test of your account.

Knowledge Management & Note-Taking

The Obsidian route is the worked example here. If you use Notion or OneNote, first test how source links, annotations and exports will move between your chosen tools. Keep an editable export and check what remains accessible without the service. The absence of a setup guide in this book is not evidence that an integration does not exist.

Academic Writing & Paper Drafting

Follow the Zettlr guide for the book's drafting route. Before committing a project to any editor, export a representative document with citations, equations, tables and revision marks into the format your coauthors or publisher require. An editor being able to export a file does not establish that every feature survives.

What's next

Your library can stand on its own. To let an AI partner work with it, choose a supported host in the Zotero MCP guide. For a graphical course setup, follow the Cherry Studio guide.

External references

cite this page

Lin, X. (2026). Zotero Setup Guide. Research Memex. https://research-memex.org/docs/implementation/foundational-setup/zotero-setup-guide

@misc{docs-implementation-foundational-setup-zotero-setup-guide-2026,
  author = {Xule Lin},
  title = {Zotero Setup Guide},
  year = {2026},
  howpublished = {\url{https://research-memex.org/docs/implementation/foundational-setup/zotero-setup-guide}},
  note = {ORCID: 0000-0001-7885-4194}
}

one renderingthe source remains