← Back to directory
Z

Zotero MCP

Community
Connect your Zotero research library to Claude, ChatGPT, and other AI assistants for search, reading, annotation, and adding.
GitHub source repository ↗
★ 4.8k Stars Category · Other Very popular Source revision 3cb3e2e34fab
69FMRS · C
Reliability
11/20
Security and permissions
13/20
Maintenance
15/20
Documentation
16/20
Setup experience
14/20

Zotero MCP is a feature-rich server that seamlessly integrates your Zotero library with AI assistants. It offers core capabilities like search, semantic search, annotation extraction, and item management, with optional extensions for scite citation intelligence and advanced PDF handling. Setup is straightforward via CLI or manual config, and the documentation is comprehensive. The main risks involve API key handling and external service dependencies, which users should manage carefully. Overall, it is highly suitable for researchers and students.

Read the FMRS scoring method →

Zotero MCP connects your Zotero research library with AI assistants via the Model Context Protocol. It supports both local and web access, offering AI-powered semantic search (optional extra), paper search, summaries, citation analysis, PDF annotation extraction, and write operations like adding papers by DOI or URL, managing collections, and merging duplicates. Requires Zotero 7+ with local API enabled or a Zotero Web API key for write operations. Optional tool groups (e.g., scite, duplicates) can be enabled via environment variables.

Tools

zotero_semantic_search
AI-powered similarity search using embedding models for conceptual matches.
zotero_update_search_database
Manually update the semantic search database.
zotero_get_search_database_status
Check the status and configuration of the semantic search database.
zotero_search_items
Search your library by keywords.
zotero_advanced_search
Perform complex searches with multiple criteria.
zotero_get_collections
List all collections.
zotero_get_collection_items
Get items in a collection.
zotero_get_tags
List all tags.
zotero_get_recent
Get recently added items.
zotero_search_by_tag
Search your library using custom tag filters.
zotero_get_item_metadata
Get detailed metadata for an item (supports markdown, json, bibtex formats).
zotero_get_item_fulltext
Get full text content for an item.
zotero_get_item_children
Get attachments and notes for an item or multiple items.
zotero_get_annotations
Get annotations, including direct PDF extraction; supports json format for structured output.
zotero_synthesize_annotations
Build a per-paper annotation/note digest.
zotero_get_notes
Retrieve notes; pass query to search note and annotation text.
zotero_create_annotation
Create a highlight or area annotation.
zotero_manage_note
Create, update, or delete a note.
zotero_get_page_layout
Detect figure/table regions on a PDF page for precise area annotation placement.
zotero_add_by_doi
Add a paper by DOI with automatic metadata and open-access PDF attachment.
zotero_add_by_url
Add a paper by URL (arXiv, DOI links, generic webpages).
zotero_add_by_isbn
Add a book by ISBN.
zotero_add_by_bibtex
Add one or more items from BibTeX.
zotero_add_by_csl_json
Add one or more items from CSL JSON.
zotero_add_from_file
Import a local PDF or EPUB file with automatic DOI extraction.
zotero_attach_file
Attach a local file or PDF URL to an existing item.
zotero_create_collection
Create a new collection.
zotero_search_collections
Search collections by name to find their keys.
zotero_manage_collections
Add or remove items from collections.
zotero_update_item
Update metadata for an existing item (title, tags, abstract, date, etc.).
zotero_find_duplicates
Find duplicate items by title and/or DOI.
zotero_merge_duplicates
Merge duplicate items with dry-run preview.
zotero_get_pdf_outline
Extract the table of contents / outline from a PDF attachment.
zotero_search_by_citation_key
Look up items by BetterBibTeX citation key.
zotero_get_item_related
Get all related items for a specific Zotero item.
zotero_add_item_relation
Add a related item relationship (bidirectional link).
zotero_remove_item_relation
Remove a related item relationship.

Setup

  1. Install Python 3.10+ and Zotero 7+.
  2. Install zotero-mcp-server via uv, pip, or pipx (base install includes core tools; optional extras like [semantic], [pdf], [scite] are available).
  3. Run zotero-mcp setup for auto-configuration (supports Claude Desktop), or manually add the JSON config to your MCP client as shown in the docs.
  4. Ensure the local API is enabled in Zotero settings (Settings > Advanced).
  5. Restart your MCP client and verify the connection.
claude_desktop_config.json
{
  "mcpServers": {
    "zotero": {
      "command": "zotero-mcp",
      "env": {
        "ZOTERO_LOCAL": "true",
        "ZOTERO_API_KEY": "YOUR_API_KEY",
        "ZOTERO_LIBRARY_ID": "YOUR_LIBRARY_ID"
      }
    }
  }
}

Fit and risk

Best for

  • Researchers, students, and academics who want to integrate their Zotero library with AI assistants.
  • Users who need quick retrieval, summarization, and annotation of papers.
  • Those looking for semantic search to discover related research.
  • Users who want to automate library management tasks like bulk adding and deduplication.

Not for

  • Users who don't need AI integration and just want a terminal interface (use zotero-cli).
  • Users who don't use Zotero.
  • Users who require fully offline operation without local Zotero installation (web API mode still needs internet).

Required permissions

  • Reads local Zotero database files (default path).
  • Writes to Zotero via Web API in hybrid mode (add, update, delete items).
  • Accesses Zotero attachment files (e.g., PDFs) to extract full text and annotations.
  • When semantic search is enabled, calls embedding model APIs (e.g., OpenAI, Gemini) and stores index data.
  • When scite tools are enabled, calls scite.ai public API.

Risks and side effects

  • AI assistants may misinterpret or misread library data; verify important information manually.
  • Web API mode requires a Zotero API key; if compromised, unauthorized access to your library is possible.
  • Semantic search indexes may contain sensitive content; protect stored embeddings.
  • Enabled optional tool groups (e.g., scite) trigger external network requests.

Troubleshooting

  1. No results found: Ensure Zotero is running and the local API is enabled (Settings > Advanced).
  2. Connection issues: Check API key and library ID configuration if using web API.
  3. Full text unavailable: Make sure you are using Zotero 7+.
  4. Semantic search errors: Run `zotero-mcp update-db --force-rebuild` to rebuild the index, or delete `~/.config/zotero-mcp/chroma_db/` and rebuild.
  5. Tools not available: Check ZOTERO_MCP_TOOLSETS setting to ensure the required tool groups are enabled.
  6. CLI command not found: Use absolute path or run `zotero-mcp setup-info` to find the path.

Use cases

Search your library, get summaries, and analyze papers through AI assistants.
Use semantic search to find conceptually similar papers.
Extract PDF annotations and notes for literature reviews.
Add papers quickly via DOI, URL, or local files.
Find and merge duplicates, manage collections and tags.
Optionally enable scite citation tallies and retraction alerts.

Supported clients

Claude DesktopFull support
Claude CodeFull support
ChatGPTFull support
Cherry StudioFull support