Skip to Content
MCP ServersCommunityModel Context Protocol server for Zotero

Model Context Protocol server for Zotero

View original on GitHub 

This project is a python-based server that implements the Model Context Protocol (MCP)  for Zotero .

Features

This MCP server provides the following tools:

  • zotero_search_items: Search for items in your Zotero library using a text query
  • zotero_item_metadata: Get detailed information about a specific Zotero item
  • zotero_item_fulltext: Get the full text of a specific Zotero item

These can be discovered and accessed through the MCP Inspector  or any other MCP client .

Each tool returns formatted text containing relevant information from your Zotero items.

Installation

To use this with Claude Desktop, add the following to the mcpServers configuration:

"zotero": { "command": "uvx", "args": ["zotero-mcp"], "env": { "ZOTERO_LOCAL": "true" } }

The following environment variables are supported:

  • ZOTERO_LOCAL=true: Use the local Zotero API (default: false)
  • ZOTERO_LIBRARY_ID: Your Zotero library ID (not required for the local API)
  • ZOTERO_LIBRARY_TYPE: The type of library (user or group, default: user)
  • ZOTERO_API_KEY: Your Zotero API key (not required for the local API)

You can find your library ID and create an API key in your Zotero account settings: https://www.zotero.org/settings/keys 

The local Zotero API  can be used with Zotero 7 running on the same machine.

n.b. An upcoming Zotero release is needed to support the fulltext API locally: https://github.com/zotero/zotero/pull/5004 

Development

  1. Clone this repository
  2. Install dependencies with uv  by running: uv sync
  3. Create a .env file in the project root with the environment variables above

Start the MCP Inspector  for local development:

npx @modelcontextprotocol/inspector uv run zotero-mcp

Running Tests

To run the test suite:

uv run pytest

Relevant Documentation

Last updated on