mcpField
F
fetch-paper

fetch-paper

github.com/shaishavmaisuria生产力57107 次安装5 天前更新
代码仓库

关于 fetch-paper

用于获取论文的技能,可将单个 DOI 或 arXiv ID 解析为合法开放获取副本,如 PDF、arXiv HTML 页面或落地页。也可临时下载论文供阅读,不会将其保存到仓库。

主要功能

  1. 01解析 DOI 和 arXiv 标识符
  2. 02查找合法开放获取副本
  3. 03提供 PDF、HTML 或落地页链接
  4. 04可选临时下载以供阅读
  5. 05缓存解析结果

适用场景

  1. 01通过 DOI 查找开放获取副本
  2. 02获取其他研究技能找到的论文
  3. 03确认论文是否开放获取

安装

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

$npx skills add https://github.com/shaishavmaisuria/research-paper-lifecycle-skills --skill fetch-paper

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

包含的文件

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

references/
copyright-and-politeness.md
oa-sources.md
scripts/
resolve_oa.py

详细介绍

获取论文

将一个 DOI 或 arXiv ID 解析为合法的开放获取副本(PDF URL、arXiv HTML 呈现版本、落地页),并可选择下载,以便临时阅读。这是 find-papers、literature-review、study-exemplars 和 draft-related-work 所依赖的获取层。

适用场景

  • 用户有 DOI、doi.org URL、arXiv ID 或 arxiv.org URL,并想获取论文。
  • 其他技能需要获取其找到的论文全文(文献综述、范例研究)。
  • 用户询问“这篇论文是否有开放获取版本?”
  • 不适用于按主题、标题或会议搜索——请先运行 find-papers 获取标识符。

输入

  • 每次获取仅使用一个标识符:DOI(10.1145/3589132.3625571、 https://doi.org/...)或 arXiv ID(2403.12345、arXiv:2403.12345v2、 cs/0309136 或任意 arxiv.org URL)。arXiv 颁发的 DOI(10.48550/arXiv.*) 会自动转换。
  • UNPAYWALL_EMAIL(或 CONTACT_EMAIL)环境变量——真实邮箱地址;Unpaywall 会以 HTTP 422 拒绝占位符。若未设置,脚本会提示输入。

流程

  1. 解析标识符。 运行:

    python3 scripts/resolve_oa.py <DOI-or-arXiv-ID> --json
    

    脚本会处理所有确定性步骤:标识符规范化、查询 Unpaywall 的 best_oa_location、生成 arXiv PDF/HTML URL、为 10.1145/* DOI 提供 2026 年之后的 ACM DL 开放获取回退方案、速率限制、429 退避,以及在 .cache/fetch-paper/ 下缓存响应。切勿手动编写这些 API 调用。

  2. 解读结果(退出码:0 = 找到开放获取版本,3 = 没有合法开放获取副本, 2 = 输入/配置有误,1 = 网络故障):

    • 如果有 html_url,优先使用它(arXiv HTML)——最容易直接阅读。
    • 否则使用 pdf_url。请参阅 references/oa-sources.md,了解 oa_status、version 和 license 的含义。
    • version: submittedVersion 表示这是预印本——在用户引用论文或引用页码前, 提醒其出版版本可能有所不同。
  3. 临时获取全文。 可直接阅读 URL,也可以:

    python3 scripts/resolve_oa.py <ID> --download
    

    这会将 PDF 保存到新建的临时目录中(绝不保存到代码库)。读取文件, 提取任务所需内容,然后删除文件。dl.acm.org 会阻止脚本下载——请提供 URL, 让用户在浏览器中打开。

  4. 若退出码为 3(没有合法开放获取副本): 转达脚本给出的建议——作者主页/机构知识库(通过 find-papers 搜索)、 按标题在 arXiv 上搜索、使用用户的图书馆访问权限,或给作者发邮件。绝不要建议 Sci-Hub、LibGen 或任何影子图书馆,也绝不要尝试绕过付费墙。完整规则见:references/copyright-and-politeness.md。

  5. 处理,不留存。 分析中引用的原文至多只能是简短摘录。 绝不要将论文文本、摘要或 PDF 写入代码库或任何已提交文件。 元数据(DOI、标题、BibTeX 字段)始终可以使用。

输出

  • 解析报告(人类可读,或使用 --json 输出 JSON):is_oa、 oa_status、license、version、pdf_url、html_url、landing_url、 source,以及备注。
  • 使用 --download 时:在临时目录中生成临时 PDF,并将路径输出到 stderr。
  • 任何内容都不会写入代码库。

安全限制

  • 每次调用只处理一个标识符——绝不要循环运行此脚本,对 DOI 列表进行批量抓取(ACM ToU 和 arXiv 政策均禁止此行为)。在一次会话中处理少量论文时,请逐篇运行,并遵守内置速率限制。
  • 仅使用合法来源;仅临时处理;不得存储或再分发。
  • 若出版版和预印本都存在,请引用已出版版本的 DOI——将其加入参考书目之前,务必使用 verify-citations 核实每条引用。
  • 绝不要代替用户向任何系统提交内容。

参考资料

评论

支持 Markdown