用途:pyzotero 是 Zotero API v3 的 Python 客户端,用于程序化管理 Zotero 文献库,包括读取条目与分类、创建和更新参考文献、上传附件、管理标签、导出引文。当前上游版本为 pyzotero 1.13.0(PyPI,2026 年 5 月),文档见 pyzotero.readthedocs.io。
认证:需从 https://www.zotero.org/settings/keys 获取 User ID 与 API Key;群组库的 Library ID 为群组 URL 中 /groups/ 后的整数。凭据可存入环境变量或 .env 文件:ZOTERO_LIBRARY_ID、ZOTERO_API_KEY、ZOTERO_LIBRARY_TYPE(user 或 group)。
安装:uv add pyzotero(Web API 客户端);uv add "pyzotero[cli]"(本地 CLI,Zotero 7);uv add "pyzotero[mcp]"(面向 LLM 客户端的 MCP 服务器,Zotero 7)。
用法:用 Zotero(library_id, library_type, api_key) 创建实例,绑定单个用户或群组库。zot.top(limit=10) 获取顶层条目,zot.items(q='machine learning', limit=20) 按关键词搜索,zot.everything(zot.items()) 获取全部条目。条目数据位于 item['data'],如 item['data']['title']、item['data']['creators']。默认返回 100 条(API 默认 25)。写方法成功返回 True,失败抛出 ZoteroError。
常见模式:zot.item('ITEMKEY') 获取条目后修改 item['data']['title'] 并调用 zot.update_item(item);用 zot.item_template('journalArticle') 创建模板后调用 zot.create_items([template]);导出 BibTeX 时先 zot.add_parameters(format='bibtex') 再调用 zot.top(limit=50),返回 bibtexparser 的 BibDatabase 对象。本地模式(只读、无需 API Key):Zotero(library_id='123456', library_type='user', local=True)。
本地 Zotero 7 的 CLI 或 MCP 服务器可用于搜索本地桌面应用(含 PDF 全文搜索),需启用本地 API 访问,无需 API Key。
限制:实例绑定单一库;本地模式为只读;CLI 与 MCP 需 Zotero 7 并启用本地 API;其余细节暂未提供。