关于 zotero-paper-reader
zotero-paper-reader 是从 Zotero 文献库查找论文、获取 PDF、转换为 Markdown 并阅读指定章节的技能。它适用于本地和网络文献库,并通过 Zotero MCP 工具搜索条目及获取附件信息。
主要功能
- 01按标题、作者或关键词搜索 Zotero
- 02获取 PDF 附件信息
- 03查找本地 PDF 或下载文件
- 04将 PDF 转换为 Markdown
- 05阅读和分析论文指定章节
适用场景
- 01在 Zotero 文献库中查找论文
- 02阅读以 PDF 保存的论文
- 03将 Zotero 论文转换为 Markdown
- 04在长篇论文中查找相关章节
MCP 相关
使用 Zotero MCP 工具搜索文献库条目并获取附件信息。随后通过附带脚本获取 PDF,并使用 mistral-pdf-to-markdown 技能进行转换。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ fuzhiyu/ researchprojecttemplate --skill zotero-paper-reader安装后在 Claude Code 中输入/zotero-paper-reader确认已加载。
附带文件scripts/get_zotero_pdf.py
详细介绍
Zotero 论文阅读器
概述
直接从 Zotero 文献库中阅读和分析学术论文。此技能涵盖从搜索 Zotero 到将 PDF 转换为可读 Markdown 格式的完整工作流。
适用场景
当用户请求以下操作时,使用此技能:
- “从 Zotero 中阅读这篇论文”
- “查找并阅读[论文标题]”
- “访问[作者姓名]的论文”
- “获取关于[主题]的论文”
- “将 Zotero 中的[论文]转换为 Markdown”
工作流
步骤 1:搜索 Zotero 文献库
使用 Zotero MCP 工具搜索论文:
# Search by title, author, or keywords
mcp__zotero__zotero_search_items(query="paper title or author", limit=5)
如果找到多篇论文,请向用户展示搜索结果。从选中的论文中获取 item_key。
步骤 2:获取 PDF 附件
检索 PDF 附件信息:
# Get child items (attachments) for the paper
mcp__zotero__zotero_get_item_children(item_key="ITEM_KEY")
查找 type: application/pdf 的附件,并记下其 Key(附件密钥)和 Filename。
步骤 3:获取 PDF 文件(本地或下载)
使用捆绑脚本获取 PDF——脚本会自动先尝试本地存储,必要时再下载:
uv run python .claude/skills/zotero-paper-reader/scripts/get_zotero_pdf.py ATTACHMENT_KEY
脚本工作流:
- 首先搜索 Zotero 本地存储(
~/Zotero/storage/ATTACHMENT_KEY/) - 如果在本地找到,则返回该路径
- 如果在本地找不到,则使用 API 从 Zotero 网页文献库下载
- 从 Zotero 元数据中获取原始文件名,并下载到
/tmp/[original_filename]
安全提示: Python 脚本直接从 Notes/.env 读取 Zotero API 密钥和文献库配置,不会将其暴露给 LLM。必需的环境变量:ZOTERO_API_KEY、ZOTERO_LIBRARY_TYPE、ZOTERO_LIBRARY_ID。
步骤 4:转换为 Markdown
使用 mistral-pdf-to-markdown 技能转换 PDF:
uv run python .claude/skills/mistral-pdf-to-markdown/scripts/convert_pdf_to_markdown.py \
"PATH_TO_PDF" \
"Notes/PaperInMarkdown/CLEAN_FILENAME.md"
文件名约定: 根据论文元数据创建简洁的文件名:
- 格式:
Author_Year_Title.md - 示例:
Du_et_al_2023_Are_Intermediary_Constraints_Priced.md - 将空格替换为下划线,并删除特殊字符
步骤 5:阅读和分析
阅读转换后的 Markdown 文件:
# For large papers, read in sections
Read(file_path="Notes/PaperInMarkdown/FILENAME.md", offset=1, limit=500)
由于学术论文通常篇幅较长(>25k 个 token),请有策略地阅读:
- 从摘要和引言开始(前 300–500 行)
- 如有需要,使用 Grep 搜索特定章节
- 根据用户的兴趣阅读相应章节
向用户提供:
- 论文元数据(标题、作者、出版年份)
- 摘要的简要总结
- 主要发现或感兴趣的章节
- 询问用户是否希望阅读特定章节或搜索特定内容
使用示例
用户请求:“从我的 Zotero 文献库中阅读论文《Are Intermediary Constraints Priced》”
工作流:
- 搜索:
mcp__zotero__zotero_search_items(query="Are Intermediary Constraints Priced") - 获取附件:
mcp__zotero__zotero_get_item_children(item_key="KPRQ2DLZ") - 获取 PDF:
uv run python .claude/skills/zotero-paper-reader/scripts/get_zotero_pdf.py 2HSELEHX- 如果文件可用,则返回本地路径;否则下载并返回临时路径
- 转换:
uv run python .claude/skills/mistral-pdf-to-markdown/scripts/convert_pdf_to_markdown.py [PDF_PATH] Notes/PaperInMarkdown/Du_et_al_2023_Are_Intermediary_Constraints_Priced.md - 阅读:
Read(file_path="Notes/PaperInMarkdown/Du_et_al_2023_Are_Intermediary_Constraints_Priced.md", limit=500) - 总结论文,并询问用户是否希望深入了解特定章节
备注
- 此技能适用于本地和网页 Zotero 文献库
- 网页文献库需要在
Notes/.env中配置ZOTERO_API_KEY、ZOTERO_LIBRARY_TYPE和ZOTERO_LIBRARY_ID - 本地文献库需要在 Zotero 首选项中启用 Zotero 本地 API
- PDF 转换需要在
Notes/.env中配置 Mistral API 密钥 - 转换后的 Markdown 文件会在
images/子文件夹中包含提取的图像 - 对于篇幅较长的论文(>40k 个 token),应分章节阅读,以避免上下文限制
资源
scripts/
get_zotero_pdf.py- 统一脚本,先尝试本地存储,必要时再通过网页 API 下载