Skip to main content

A clean, one-to-one MCP server for the Zotero API — no AI bloat, just the API

Project description

zotero-api-mcp

A clean, one-to-one MCP server for the Zotero API, just the API.

Features

  • 22 MCP tools covering the full Zotero API surface
  • Local API support (ZOTERO_LOCAL=true) — no API key needed
  • Web API support with interactive setup wizard
  • Full CRUD: create items by DOI, arXiv, ISBN; update metadata; delete to trash
  • Collections: create, add/remove items, search
  • Notes & Annotations: read, create
  • Attachments: add files or URLs, read metadata
  • Library management: stats, trash, groups, tags
  • Secure by default: API key stored with SecretStr, XML parsing via defusedxml
  • Configuration: .env file support with ZOTERO_ prefix, pydantic-settings

Quick Start

# Run directly (auto-installs)
uvx zotero-api-mcp serve

# Or install globally
uv tool install zotero-api-mcp
zotero-api-mcp serve

Local Mode (no API key)

Set the environment variable and run:

ZOTERO_LOCAL=true uvx zotero-api-mcp serve

Requires Zotero running with "Allow other applications to access Zotero" enabled in Preferences → Advanced → General.

Web API Mode

zotero-api-mcp setup

You'll need a Zotero API key from https://www.zotero.org/settings/keys and your library ID.

MCP Configuration

VS Code / Cline / Claude Desktop

{
  "servers": {
    "zotero-api": {
      "type": "stdio",
      "command": "uvx",
      "args": ["zotero-api-mcp", "serve"],
      "env": {
        "ZOTERO_LOCAL": "true"
      }
    }
  }
}

Tools

Search & Discovery (9 tools)

  • zotero_search_items — Search by query, type, tag, or collection
  • zotero_get_item — Full details for a specific item
  • zotero_get_item_children — Notes and attachments for an item
  • zotero_search_collections — List/search collections
  • zotero_get_collection_items — Items in a collection
  • zotero_search_tags — List/search tags
  • zotero_get_trash — Items in trash
  • zotero_get_library_stats — Library statistics
  • zotero_get_groups — Group libraries

Item Management (5 tools)

  • zotero_add_by_doi — Add paper by DOI (CrossRef metadata)
  • zotero_add_by_arxiv — Add paper by arXiv ID
  • zotero_add_by_isbn — Add book by ISBN (OpenLibrary metadata)
  • zotero_update_item — Update title, abstract, date, extra
  • zotero_delete_items — Move items to trash

Collections (3 tools)

  • zotero_create_collection — Create a new collection
  • zotero_add_to_collection — Add items to a collection
  • zotero_remove_from_collection — Remove items from a collection

Notes (2 tools)

  • zotero_add_note — Add a note to an item
  • zotero_read_note — Read a note's content

Annotations (1 tool)

  • zotero_read_annotations — Read PDF annotations for an item

Attachments (2 tools)

  • zotero_add_attachment — Attach a file or URL to an item
  • zotero_read_attachment — Get attachment metadata

Comparison with other Zotero MCP servers

Feature zotero-api-mcp zotero-mcp (kujenga) zotero-mcp-lite (xmruuu) zotero-mcp-server (54yyyu)
Tools 22 3 9 ~30
Philosophy 1:1 API mapping Minimal Read-focused AI-heavy
CRUD (create/update/delete)
DOI/arXiv/ISBN import
Collection management
Attachment management
Local API (no key)
Semantic search / AI
Dependencies 6 4 9 97

Development

See CONTRIBUTING.md for full setup and guidelines.

# Install dependencies (requires uv)
uv sync --group dev

# Run tests
just test         # Quick: current Python
just test-all     # Full: Python 3.12–3.14 via tox

# Version management
just version      # Show current version
just bump-patch   # 0.0.1 → 0.0.2, creates git tag + commit

License

MIT — see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zotero_api_mcp-0.0.1.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zotero_api_mcp-0.0.1-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file zotero_api_mcp-0.0.1.tar.gz.

File metadata

  • Download URL: zotero_api_mcp-0.0.1.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zotero_api_mcp-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b44a5772a7c9153dccfa76cf25b9d1740d3978aab9c6cecb8e420ca8d6f13547
MD5 aa58f7f408029731a9d123c6277364ce
BLAKE2b-256 72dd7c7ea3cafc103086bc8350b57b29473af2902b1e769d38eb3d1c2fc36747

See more details on using hashes here.

File details

Details for the file zotero_api_mcp-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: zotero_api_mcp-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zotero_api_mcp-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2c3ff9ee5f578686d0ea138d6dffe2316873a03c05dee46236a67b0f7f0dcdd3
MD5 58744c9882884516307325c2a4de4bfe
BLAKE2b-256 a427e4f7d4b12210f4cc661688ea67f04fb35411c8f2b3a2d721f6b6df635820

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page