mcpField
S
scholar-citations

scholar-citations

github.com/dsebastien生产力17117 次安装28 周前更新
代码仓库

关于 scholar-citations

scholar-citations 是供研究者通过 OpenAlex 探索论文引用关系的命令行技能。它可获取参考文献、引用该论文的研究或两者,并按年份和引用数筛选。

主要功能

  1. 01查找论文的参考文献和引用文献
  2. 02接受 OpenAlex、DOI、arXiv 和 PMID 标识符
  3. 03按年份和引用数筛选结果
  4. 04返回结构化论文信息和摘要

适用场景

  1. 01追溯论文所依据的先前研究
  2. 02查找引用某项研究的近期论文
  3. 03为评审整理引用关系背景

安装

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

$npx skills add https://github.com/dsebastien/ai-skill-scholar --skill scholar-citations

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

附带文件scripts/scholar_citations.py

详细介绍

Scholar Citations

通过 OpenAlex 遍历研究论文的引用图。包含两个方向:

  • 参考文献 — 本文引用了哪些论文(其思想渊源)
  • 引用 — 哪些论文引用了本文(其思想后续发展)

一次子进程调用即可返回结构化论文列表,其中包含标题、摘要、引用次数和外部 ID。

用法

# References — what this paper cites
python3 scripts/scholar_citations.py references 2501.11120 --limit 100

# Citations — what cites this paper
python3 scripts/scholar_citations.py citations 2501.11120 --limit 100

# Both at once
python3 scripts/scholar_citations.py both 2501.11120 --limit 50

# Filter to recent, high-impact descendants
python3 scripts/scholar_citations.py citations 1706.03762 \
    --min-year 2024 --min-citations 10 --limit 100

# Accepts many ID formats
python3 scripts/scholar_citations.py citations W4395065622
python3 scripts/scholar_citations.py citations "10.48550/arxiv.2404.14082"
python3 scripts/scholar_citations.py citations "doi:10.48550/arxiv.2404.14082"
python3 scripts/scholar_citations.py citations "https://openalex.org/W4395065622"

子命令:

  • references <id> — 目标论文引用的论文
  • citations <id> — 引用目标论文的论文
  • both <id> — 在同一载荷中返回两个方向的结果

标志:

  • --limit N — 每个方向的结果上限(默认值为 100)
  • --min-year YYYY — 排除更早的条目
  • --min-citations N — 排除影响力较低的条目(适合筛选重要的后续研究)

适用场景

  • 追溯思想源流 — 给定一篇论文,查找其所依托的关键研究(references + --min-citations 50)
  • 查找后续研究 — 查看哪些研究以重要论文为基础(citations + --min-year 2024)
  • 差距分析 — 对多篇锚点论文的参考文献和引用取交集,找出尚未探索的领域
  • 审稿背景调查 — 审阅论文前了解其引用关系

数据完整性说明

对于索引完善的论文(期刊文章、会议论文集论文、较早的 arxiv 投稿),OpenAlex 的参考文献列表通常完整;但对于非常新的预印本,列表往往较为稀疏。如果 references 返回空结果,通常是 OpenAlex 的数据覆盖问题,而非脚本错误。对于仅发布在 arxiv 上的论文,可改用 arxiv-analyze 并指定 --tier tex,解析论文自身的参考文献列表。

工作流

1. 确定锚点论文

支持 OpenAlex W-id、DOI、arxiv id(会自动转换为 arxiv 的 DOI)、PMID(格式为 pmid:<n>),或任意 OpenAlex/DOI URL。脚本会自动规范化输入。

2. 选择方向
  • 想了解一篇论文是如何形成的?→ references
  • 想追踪影响力或查找新研究?→ citations
  • 想构建完整的关系图?→ both
3. 严格筛选

参考文献和引用列表可能包含 100–1000 条。请充分使用 --min-citations 和 --min-year;1000 条低信号条目不如 20 条高信号条目有用。

4. 提交分析

对于每篇感兴趣的论文:将 arxiv_id 交给 arxiv-analyze,或直接使用 open_access_pdf URL。

速率限制

OpenAlex 的限制较宽松:匿名访问为 10 req/sec,加入礼貌访问池后可获得更高限额(设置 OPENALEX_EMAIL)。脚本会自动将请求速率限制在 5 req/sec。

一次带有 --limit 100 的 references 或 citations 调用通常会发出 2–3 次 API 请求(一次用于获取根论文,一到两次用于批量解析相关论文)。

Token 效率

  • 100 条参考文献/引用 ≈ 15K–30K tokens(摘要占主要部分)
  • 探索图谱、重广度轻深度时,可先通过 jq 'del(.*.abstract)' 过滤,再输入上下文

强制规则

  • 不要无限扩展图谱。 100 × 100 篇二级参考文献就是 10k 篇论文。如需遍历 n 跳,请分阶段明确执行,并先征得用户确认。
  • 遵守速率限制。 脚本的自动限速对正常运行至关重要。
  • 稀疏数据也是数据。 如果 references 或 citations 为空,就如实报告为空;不要捏造内容。

要求

  • Python 3.11+(仅使用标准库)
  • 可访问互联网并连接 api.openalex.org
  • 可选:设置 OPENALEX_EMAIL 以访问礼貌访问池

评论

支持 Markdown