Zotero MCP: Chat with your Research Library in Claude, ChatGPT, and more

MCP serverSearch

This connects your AI to your Zotero research library. Once added, your AI can search the references you have saved, read them, annotate them, and add new items, whether your library is stored locally or on Zotero's web library.

Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.

Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.

What your AI can do with it

  • Search your Zotero library for saved papers and references
  • Read the items stored in your library
  • Annotate items in your library
  • Add new items to your library
  • Work with your library whether it is local or on Zotero's web library

Getting started

  1. Save this item in Your setup as a reference.
  2. Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
  3. Check this page for availability before trying to install it through Ahel.

From the project's README

As published by 54yyyu/zotero-mcp in README.md.

Zotero MCP connects your Zotero research library with ChatGPT, Claude, and other AI assistants (e.g., Cherry Studio, Chorus, Cursor) via the Model Context Protocol. Search your library, read and annotate papers, add and organize items, and find research by meaning.

AI agents: read docs/for-agents.md first. It covers which route to use, setup, and the commands in one place.

Three ways in

One package, zotero-mcp-server, ships all three. Pick the one that fits where you work.

MCP serverzotero-cli + agent skillZotero Agent
ForChat apps that speak MCP but have no shell: Claude Desktop, ChatGPT, Cherry Studio, ChorusAgents with a shell: Claude Code, Codex, Cursor, Windsurf, Gemini CLI, Amp, OpenCodeChatting inside Zotero, next to the PDF you are reading
Howzotero-mcp setupzotero-mcp install-skillzotero-cli plugin, then install the .xpi in Zotero
WhyWorks in any MCP client98 tokens in context until it is needed, instead of ~13kKnows the item, page and selection you have open; answers link to pages
GuideGetting startedCLI and agent skillZotero Agent plugin

What it does

  • Search by title, author, tag, collection, full text, or meaning (semantic search with local, OpenAI, Gemini, or Ollama embeddings)
  • Read metadata, BibTeX, full text, and page ranges of PDFs, with page images where text extraction garbles math, figures, and tables
  • Annotate: highlights and area boxes placed on the exact words, figure, table, or equation; notes; PDF annotation extraction
  • Write: add papers by DOI, URL, ISBN, BibTeX, or file (with open-access PDFs), manage collections and tags, merge duplicates
  • Local or web: in local mode reads come straight from zotero.sqlite; writes go to the running Zotero 10+ or through the web API
  • Scite citation tallies and retraction alerts (optional)

Quick start

1. Install (Python 3.10+):

uv tool install zotero-mcp-server     # or: pip install zotero-mcp-server

New to the command line? Try the community-built Zotero MCP Setup: a macOS GUI installer, one-click scripts for Mac and Windows, and a step-by-step guide.

2. Enable Zotero's local API: in Zotero 7+, open Settings → Advanced and tick Allow other applications on this computer to communicate with Zotero.

3. Connect your assistant:

zotero-mcp setup      # auto-configures Claude Desktop

or add the server by hand to claude_desktop_config.json:

{
  "mcpServers": {
    "zotero": {
      "command": "zotero-mcp",
      "env": { "ZOTERO_LOCAL": "true" }
    }
  }
}

Teach the agent to drive zotero-cli (the cheaper route, see below):

zotero-mcp install-skill

Or use the MCP server: for Claude Code, add the same mcpServers entry as above to ~/.claude.json.

See Getting started.

zotero-cli plugin     # where the .xpi is, and how to install it

Then in Zotero: Tools > Plugins, the gear, Install Plugin From File. Details: Zotero Agent plugin.

4. Writes (optional): on Zotero 10+, run zotero-mcp authorize-local once and choose Always Allow. On older Zotero, add ZOTERO_API_KEY and ZOTERO_LIBRARY_ID to write through the web API.

Then ask things like "Find papers in my library on attention mechanisms", "Summarize the key findings of this paper", or "Highlight the main claims of this PDF".

Optional extras

The base install covers search, reading, annotations, and writes. Heavier features are extras:

ExtraWhat it addsInstall command
semanticSemantic search via ChromaDB, sentence-transformers, OpenAI/Gemini embeddingspip install "zotero-mcp-server[semantic]"
pdfPDF outlines, page layout and page images (PyMuPDF), EPUB annotationspip install "zotero-mcp-server[pdf]"
sciteScite citation tallies and retraction alerts (no account needed)pip install "zotero-mcp-server[scite]"
allEverything abovepip install "zotero-mcp-server[all]"

Update any time with zotero-mcp update.

MCP server or agent skill?

If your agent has a shell (Claude Code, Cursor, Codex, Windsurf, Gemini CLI, Amp, OpenCode …), one command teaches it to drive zotero-cli:

zotero-mcp install-skill

An MCP server sends every tool's schema on every request, before you type anything. The skill costs 98 tokens until the agent decides it is relevant:

RouteIn contextPaid
MCP server, default profile (38 tools)13,448every request
Agent skill, frontmatter only98always
Agent skill, body loaded1,368when it fires

Use the MCP server when your client speaks MCP but has no shell (Claude Desktop, ChatGPT); use the skill when it has a shell. Both share one config. Details: CLI and agent skill.

Zotero Agent: chat inside Zotero

A plugin that adds a chat panel to Zotero itself, driven by your own Claude Code, Codex or pi. It knows which item and page you have open and works your library through zotero-cli. Answers cite papers with real zotero:// links, so a click opens the PDF at that page. It ships in the wheel: run zotero-cli plugin for the file and the install steps, or paste the one-paragraph prompt in the docs to your agent and let it do the setup. Details: Zotero Agent plugin.

Documentation

GuideWhat's in it
Getting startedConnecting Claude Desktop and Claude Code, ChatGPT, Cherry Studio, Chorus, Autohand, and other MCP clients
ConfigurationEnvironment variables, local writes, web and hybrid modes, the SQLite read backend, global search, text extraction, command-line options
Semantic searchEmbedding models, building and updating the index
ToolsEvery MCP tool, tool groups (ZOTERO_MCP_TOOLSETS), related items, PDF annotation extraction
CLI and agent skillzotero-cli command reference, --json output, install-skill
Zotero Agent pluginThe chat panel inside Zotero: install, first run, agents and sign-in, privacy
DockerContainer images and runtime modes
TroubleshootingCommon problems and fixes
For AI agentsOne guide for an agent setting up or using Zotero MCP

Website: stevenyuyy.com/zotero-mcp · Changelog

Contributing

Issues and pull requests are welcome. Run the tests with uv run pytest tests/. A live integration test plan, meant to be run by Claude against a real library, is in docs/integration-test-plan.md. Changes to the plugin in plugin/ (AGPL-3.0) are accepted on the condition that the maintainer may also release them under other terms, including commercial ones.

Thanks to everyone who has contributed code, fixes, and ideas to Zotero MCP.

Support

Zotero MCP is free and open source.

If it saves you or your lab time, sponsoring helps cover the unglamorous parts: Windows and WSL2 edge cases, Zotero schema changes, group-library support, and the embedding/search infrastructure.

Labs and institutions: the $50 and $200 tiers are meant to be expensable, and include priority triage on the issues affecting your workflow.

License

The MCP server and zotero-cli are MIT (LICENSE). The Zotero Agent plugin in plugin/ is AGPL-3.0-or-later (plugin/LICENSE), the license Zotero itself uses.

Signals

GitHub stars
5k
Forks
416
Last commit
Oct 2026
Advanced
Delivery
zotero-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-54yyyu-zotero-mcp
Source
github.com/54yyyu/zotero-mcp