Skip to main content

Local Zotero MCP

An MCP server that gives an LLM read-only access to your local Zotero library via the desktop app's Local API. It talks to Zotero over http://127.0.0.1:23119, so nothing leaves your machine and no API keys are required.

Requirements

  • Zotero desktop app, running, with Settings > Advanced > "Allow other applications on this computer to communicate with Zotero" enabled.
  • uv installed.

Quickstart

No cloning or installing required — uvx fetches the published package from PyPI and runs it. Add this to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "zotero": {
      "command": "uvx",
      "args": ["--from", "local-zotero-mcp", "zotero-mcp"]
    }
  }
}

Restart Claude Desktop and the Zotero tools should be available. uvx caches the environment after the first run, so subsequent launches are fast; add --refresh to args if you want to force-pull the latest version.

Tools

Tool Description
search_items Search the library by title/creator/year or full text
get_item Get full data for an item, optionally with citation/bibliography
get_item_children List an item's notes and attachments
list_collections List collections
get_collection_items List items in a collection
list_tags List tags
get_bibliography Generate a formatted bibliography for one or more items
list_saved_searches List saved searches
execute_saved_search Run a saved search and return matching items
get_attachment_file_path Get the local file path of an attachment

This server is read-only: it does not create, edit, or delete anything in your library.

Local development

Clone the repo and install it locally:

uv sync

Run it directly from the checkout:

uv run zotero-mcp

Point Claude Desktop at your local checkout instead of GitHub with:

{
  "mcpServers": {
    "zotero": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/Local-Zotero-MCP", "zotero-mcp"]
    }
  }
}

Run the tests:

uv run pytest

Tests mock the Zotero HTTP responses, so a running Zotero instance isn't required. To smoke-test against your own Zotero library:

uv run mcp dev zotero_mcp/server.py

Metadata

Release files for local-zotero-mcp 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for local-zotero-mcp 0.1.2
File Size Uploaded
local_zotero_mcp-0.1.2.tar.gz 6.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for local-zotero-mcp 0.1.2
File Interpreter ABI Platform
local_zotero_mcp-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 12.7 kB

Release files / local_zotero_mcp-0.1.2.tar.gz

Download URL local_zotero_mcp-0.1.2.tar.gz
Size 6.1 kB
Tags Source
SHA-256 checksum
How to use checksums
aa7dc72d4aade03ea6b2cd8f3787a460924f6d76836b4f5119d28879796e42ac
BLAKE2b-256 checksum
How to use checksums
d5ef597f6f09c450feb557adfbc7bad2aee9e602b9bd44372be6826c4b59a221
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / local_zotero_mcp-0.1.2-py3-none-any.whl

Download URL local_zotero_mcp-0.1.2-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4070837327662c764e898dca5fe3568b1054c1c4875b559b118f41ec612071db
BLAKE2b-256 checksum
How to use checksums
bce9342f1621a54188a7141a1698c103d50c6929ab1a5a61aebfb73b03d3a073
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page