zotero-mcp: an MCP server for your Zotero library

zotero-mcp

A lightweight Python MCP server that opens your Zotero library to an AI assistant: search, metadata and full PDF text

  • 162 ★ on the repository
  • Last commit
  • MIT
MCP server

Extended access

Why this level

  • The agent reads your library and full texts of papers, and they go to the model
  • The web API key opens the library, so keep it as a secret
All reasons and checks

kujenga/zotero-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/kujenga-zotero-mcp

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The agent reads your library and full texts of papers, and they go to the model
  • The web API key opens the library, so keep it as a secret

This is third-party code. Review the repository files before installing.

What it does

The server gives an assistant three tools for reading a Zotero library. zotero_search_items searches items by a text query. zotero_item_metadata returns every populated field of an item: publication details, identifiers, dates and library data. zotero_item_fulltext returns the full text, that is, the PDF contents. The assistant calls them in a chain: first it finds sources, then requests metadata or text for the ones it needs. Each response arrives as formatted text. The author deliberately kept to a small but useful set of operations. The server connects to a library in two ways. The local API runs through the Zotero desktop app on the same computer and is quicker. The Zotero web API works with a key and a library ID, personal or group. The server runs through uvx or in a Docker container.

Who it is for. Researchers and students with a large Zotero library who want to ask an assistant questions about their own papers and books.

Good fit when

  • You need to find works on a topic in your library and get their metadata for a bibliography
  • You need a summary of the full text of a specific paper stored in your Zotero
  • You want to check whether the library holds a source with a given DOI or author
  • You are writing a review and want the assistant to pull key points from several PDFs

Not a fit when

  • You need to add or edit items: the server only reads, and no write tools are listed
  • Sources live outside Zotero in ordinary folders: a file server or PDF search suits those
  • Zotero is not running and you have no web API key: without one of the two you cannot connect

Example request

Find articles about sparse attention in my Zotero library and summarize the conclusions from the full text of the newest.

MCP

Transport
stdio
Authentication
key is optional

Environment variables

ZOTERO_LOCAL
The value true switches on the local Zotero API.
ZOTERO_API_KEY secret
Zotero web API key, not needed in local mode.
ZOTERO_LIBRARY_ID
Library ID (your user ID for a personal library).

Limitations

The server only reads. For local mode, enable the permission for other applications on this computer to talk to Zotero under the Advanced tab in Zotero settings, and Zotero must be running. Web mode needs an API key and a library ID.

Full text is available only for files Zotero has indexed. In Docker, reaching the local API needs separate network setup. The last commit is from August 2026, and the project is small, limited to three tools.

How to disable. Remove the zotero entry from the client config. Revoke the API key on zotero.org/settings/keys if you like.

FAQ

Which tools does zotero-mcp have?

Three, all read-only: `zotero_search_items` for text search, `zotero_item_metadata` for every field of an item and `zotero_item_fulltext` for PDF contents.

How do I connect it to Claude Desktop?

Add an `mcpServers` entry with `"command": "uvx"` and `"args": ["zotero-mcp@latest"]`, and set `ZOTERO_LOCAL`, `ZOTERO_API_KEY` and `ZOTERO_LIBRARY_ID` in `env`. If you have no uvx, `pipx run` works.

Does it work with group libraries?

Yes, the `ZOTERO_LIBRARY_TYPE` variable accepts `user` and `group`, with `user` as the default. Put the group library ID in `ZOTERO_LIBRARY_ID`.

Do I need a Zotero API key?

Not for the local API: enable "Allow other applications on this computer to communicate with Zotero" in Zotero settings and set `ZOTERO_LOCAL=true`. The web API needs `ZOTERO_API_KEY` and `ZOTERO_LIBRARY_ID`, taken from zotero.org/settings/keys.

Can I run the server in Docker?

Yes, the image ghcr.io/kujenga/zotero-mcp:main runs through `docker run --rm -i` with `ZOTERO_API_KEY` and `ZOTERO_LIBRARY_ID`. Reaching the local Zotero API from a container needs separate network configuration.

Discussion

No questions or reviews yet.

Official

The official Kibela MCP server searches, reads and edits notes, folders and comments of your wiki straight from an assistant chat

MCP serverExtended access16Repository stars

An MCP server for a BookStack wiki: read and search by default, writes enabled separately, rights taken from the token.

MCP serverExtended access55Repository stars

Seven skills and scripts for the chain Zotero, full text through MinerU, analytical notes in Obsidian and literature search

SkillExtended access731Repository stars

Obsidian MCP Server

obsidian-mcp-server

An MCP server for an Obsidian vault: read, search and precisely edit notes, sections, frontmatter and tags

MCP serverExtended access705Repository stars

An MCP server reading Moodle courses, deadlines, quizzes and files via the official API, with no browser or extra packages.

MCP serverExtended access206Repository stars

An MCP server for an Obsidian vault via the Local REST API plugin: search, read, append and patch notes

MCP serverExtended access4.5KRepository stars

README in short

The README lists three tools and two connection modes: the Zotero app's local API and the web API with a key. It then covers environment variables, config examples for uvx and Docker, and a development section.

README badge

Report a problem