zotero-skills

Installation
SKILL.md

Zotero Library Management Skill

Dual-API CRUD for a Zotero library: search / read via the local desktop API, write via the Web API. Claude routes the request, picks local-API for reads and Web-API for writes, and verifies the result.

Hard rules

  • Reads → Local API (http://localhost:23119/api, header Zotero-Allowed-Request: true). Fast, no key needed, only available while Zotero desktop is running.
  • Writes → Web API (https://api.zotero.org, header Zotero-API-Key: <key>) via pyzotero. Always.
  • MCP write tools fail. zotero_create_note / zotero_batch_update_tags hit the local API and 400/501 — use pyzotero from the shared client instead.
  • API key never appears in commits, notes, or vault files. Use env vars or config.json (gitignored). See references/api-setup.md.
  • Always import the shared client (from zotero_client import get_client, ZoteroDualClient) instead of constructing API requests by hand. The shared client handles dual-API routing, rate-limit backoff, and credential loading.

When to use

Trigger phrases: "add paper to Zotero", "search Zotero", "update this collection", "tag these items", "find duplicates", "create a note on item X", "Zotero / 文獻 / 引用 / 參考文獻管理".

NOT for: auditing the library for cleanup (use zotero-library-curator first to plan, then come back here for the apply step).

Workflow

Installs
1
GitHub Stars
27
First Seen
Jun 14, 2026
zotero-skills — wenyuchiou/zotero-write