P

zotero-mcp

...
Created 1/26/2025bykujenga

Categories

mcpmcp-serverzotero

Language:

Python

Stars:

6

Forks:

1

Model Context Protocol server for Zotero

This project is a python server that implements the Model Context Protocol (MCP) for Zotero, giving you access to your Zotero library within AI assistants. It is intended to implement a small but maximally useful set of interactions with Zotero for use with MCP clients.

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 metadata information about a specific Zotero item
  • zotero_item_fulltext: Get the full text of a specific Zotero item (i.e. PDF contents)

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

Each tool returns formatted text containing relevant information from your Zotero items, and AI assistants such as Claude can use them sequentially, searching for items then retrieving their metadata or text content.

Installation

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

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

The ZOTERO_LOCAL setting points the plugin to the local Zotero API and requires Zotero 7 (or the beta version, see note below) running on the same machine as the client.

To use the Zotero Web API, you'll need to create an API key and find your Library ID (usually your User ID) in your Zotero account settings here:

The following environment variables provide configuration options:

  • ZOTERO_LOCAL=true: Use the local Zotero API (default: false, see note below)

              - `ZOTERO_API_KEY`: Your Zotero API key (not required for the local API)
    
  • ZOTERO_LIBRARY_ID: Your Zotero library ID (your user ID for user libraries, not required for the local API)

  • ZOTERO_LIBRARY_TYPE: The type of library (user or group, default: user)

[!IMPORTANT] For access to the fulltext API locally, an upcoming Zotero release is required. In the meantime you'll need to install a Zotero Beta Build for that functionality to work (as of 2025-03-07). See https://github.com/zotero/zotero/pull/5004 for more information.

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: 3/8/2025

Publisher info

kujenga's avatar

Aaron Taylor

Building AI for tax pros @additiveai - 3x founder, formerly @salesforce via @diffeo and @metasearch

@additiveai
San Francisco, CA
48
followers
25
following
107
repos

More MCP servers built with Python

mcp-logo-gen

By sshtunnelvision137
ledger-mcp-server

MCP Server for my ledger

By mprokopov1
clickhouse_mcp_server

A MCP server for ClickHouse

By ThomAub1