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, headerZotero-Allowed-Request: true). Fast, no key needed, only available while Zotero desktop is running. - Writes → Web API (
https://api.zotero.org, headerZotero-API-Key: <key>) viapyzotero. Always. - MCP write tools fail.
zotero_create_note/zotero_batch_update_tagshit the local API and 400/501 — usepyzoterofrom the shared client instead. - API key never appears in commits, notes, or vault files. Use env vars or
config.json(gitignored). Seereferences/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).