mcpField
P
pyzotero

pyzotero

github.com/leonchaox生产力99072 次安装15 周前更新
代码仓库

关于 pyzotero

pyzotero 是用于 Zotero API v3 的 Python 封装,供开发者以编程方式管理个人和群组资料库。它支持读取和编辑文献、附件与标签,并导出引文;本地模式则提供只读访问。

主要功能

  1. 01读取条目、分类、标签和群组
  2. 02创建、更新和删除资料库条目
  3. 03上传和获取附件
  4. 04导出 BibTeX 等格式的引文
  5. 05无需 API 密钥读取本地资料库

适用场景

  1. 01检索和筛选 Zotero 资料库中的文献
  2. 02更新引文元数据或创建新文献
  3. 03上传附件并管理资料库标签
  4. 04导出文献以生成参考书目

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/leonchaox/qinyan-academic-skills --skill pyzotero

安装后在 Claude Code 中输入/pyzotero确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
authentication.md
cli.md
collections.md
error-handling.md
exports.md
files-attachments.md
full-text.md
pagination.md
read-api.md
saved-searches.md
search-params.md
tags.md
write-api.md

详细介绍

Pyzotero

Pyzotero 是 Zotero API v3 的 Python 封装。使用它可以通过编程方式管理 Zotero 文库:读取条目和分类、创建和更新参考文献、上传附件、管理标签,以及导出引文。

身份验证设置

必需的凭据 — 从 https://www.zotero.org/settings/keys 获取:

  • 用户 ID:显示为 "Your userID for use in API calls"
  • API 密钥:在 https://www.zotero.org/settings/keys/new 创建
  • 文库 ID:对于群组文库,这是群组 URL 中 /groups/ 后面的整数

将凭据存储在环境变量或 .env 文件中:

ZOTERO_LIBRARY_ID=your_user_id
ZOTERO_API_KEY=your_api_key
ZOTERO_LIBRARY_TYPE=user  # or "group"

完整设置详情请参阅 references/authentication.md。

安装

uv add pyzotero
# or with CLI support:
uv add "pyzotero[cli]"

快速开始

from pyzotero import Zotero

zot = Zotero(library_id='123456', library_type='user', api_key='ABC1234XYZ')

# Retrieve top-level items (returns 100 by default)
items = zot.top(limit=10)
for item in items:
    print(item['data']['title'], item['data']['itemType'])

# Search by keyword
results = zot.items(q='machine learning', limit=20)

# Retrieve all items (use everything() for complete results)
all_items = zot.everything(zot.items())

核心概念

  • 一个 Zotero 实例绑定到单个文库(用户或群组)。所有方法都对该文库进行操作。
  • 条目数据位于 item['data'] 中。访问 item['data']['title']、item['data']['creators'] 等字段。
  • Pyzotero 默认返回 100 个条目(API 默认值为 25)。使用 zot.everything(zot.items()) 获取所有条目。
  • 写入方法成功时返回 True,否则会引发 ZoteroError。

参考文件

文件内容
references/authentication.md凭据、文库类型、本地模式
references/read-api.md获取条目、分类、标签、群组
references/search-params.md筛选、排序、搜索参数
references/write-api.md创建、更新、删除条目
references/collections.md分类 CRUD 操作
references/tags.md标签获取与管理
references/files-attachments.md文件获取与附件上传
references/exports.mdBibTeX、CSL-JSON、参考文献导出
references/pagination.mdfollow()、everything()、生成器
references/full-text.md全文内容索引与获取
references/saved-searches.md已保存搜索管理
references/cli.md命令行界面用法
references/error-handling.md错误与异常处理

常见模式

获取并修改条目
item = zot.item('ITEMKEY')
item['data']['title'] = 'New Title'
zot.update_item(item)
根据模板创建条目
template = zot.item_template('journalArticle')
template['title'] = 'My Paper'
template['creators'][0] = {'creatorType': 'author', 'firstName': 'Jane', 'lastName': 'Doe'}
zot.create_items([template])
导出为 BibTeX
zot.add_parameters(format='bibtex')
bibtex = zot.top(limit=50)
# bibtex is a bibtexparser BibDatabase object
print(bibtex.entries)
本地模式(只读,无需 API 密钥)
zot = Zotero(library_id='123456', library_type='user', local=True)
items = zot.items()

评论

支持 Markdown