[开源] Paper Search CLI:基于 Paper-Search MCP 重构成 CLI + Skill 的多来源论文检索工具

饺子 2026-05-16 14:15 1

[开源] Paper Search CLI:面向 Agent 的 Skill + CLI 学术文献工具


本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:



  • 我的帖子已经打上 开源推广 标签:

  • 我的开源项目完整开源,无未开源部分:

  • 我的开源项目已链接认可 LINUX DO 社区:

  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:

  • 以上选择我承诺是永久有效的,接受社区和佬友监督:


以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出




Paper Search CLI


一个面向 AI Agent、终端用户和脚本的 Skill + CLI 学术文献工具。




为什么做这个


之前一直在用 paper-search-mcp 论文检索 MCP。功能本身很完整,在没有接触到cc-switch之前,在多个Ai中切换过程后的MCP都需要单独配置,维护起来比较麻烦。

前几天刷到站内佬友的建议(https://linux.do/t/topic/2076559), 未来的主流可能会逐渐转变为CLI + Skill,所以我将原来佬友的项目,加上参考原始作者的来源项目,重新Vibe成了Cli + Skill:


文献检索功能来源主要参考这个项目:



核心特性




  • 多来源学术检索 + 期刊指标:覆盖 Crossref、OpenAlex、PubMed、PMC、Europe PMC、arXiv、bioRxiv、medRxiv、Semantic Scholar、CORE、OpenAIRE、DBLP、ACM Digital Library 元数据、USENIX 元数据、OpenReview、Web of Science、Google Scholar、IACR ePrint、Sci-Hub、IEEE Xplore、ScienceDirect、Springer Nature / SpringerLink、Wiley、Scopus、Unpaywall,并支持 EasyScholar 期刊指标。




  • 四个主要工作流:文献元数据检索、期刊指标检索、PDF 获取和下载、正文片段检索分开处理。




  • 单一命令入口:安装后通过 paper-search 调用,适合终端、脚本和 agent。




  • 漏斗式回退下载链download_with_fallback 会优先尝试原生下载、PDF URL、PMC / Europe PMC / CORE / OpenAIRE、Unpaywall DOI 解析,最后使用 Sci-Hub 兜底;只有显式传入 useSciHub=false 才会关闭 Sci-Hub 兜底。




  • 适合 agent 调用doctorsmokeskillsconfigtools 负责健康检查、Skill 同步、配置可见性和工具 schema;searchjournal-metricsdownloadrun 负责实际学术任务。




Paper Search CLI 目前重构并拆成下面四个能力






































功能 主要入口 适合场景 返回内容
文献元数据检索 paper-search search 找论文、扩展关键词、做综述初筛、验证 DOI/PMID/PMCID/arXiv ID 题名、作者、年份、期刊、DOI、PMID、URL、摘要和来源元数据
期刊指标检索 paper-search journal-metrics 查影响因子、JCR/SSCI、中科院分区、JCI、ESI、预警 期刊级指标,不是论文搜索
PDF 获取和下载 paper-search download 已确认论文身份后获取 PDF 原生来源、开放获取来源、权限来源和 Sci-Hub fallback 的下载结果
正文片段检索 search_semantic_snippets 查方法、参数、模型、统计写法等正文线索 Semantic Scholar Open Access snippet

技术路线


这个项目走的是 CLI + Skill 路线。


Skill 负责告诉 agent:什么时候该用 paper-search、该选哪个平台、什么时候查 DOI、什么时候查正文片段、什么时候下载 PDF。


CLI 负责真正执行:文献元数据检索、去重、期刊指标检索、PDF 获取和下载、健康检查、输出 JSON。


项目的调用框架如下:


flowchart LR
A["用户问题 / agent 任务"] --> B["paper-search Skill"]
B --> C["Capability Profile"]
C --> D["metadata_search 文献元数据检索"]
C --> E["journal_metrics 期刊指标检索"]
C --> F["download PDF获取和下载"]
C --> G["search_semantic_snippets 正文片段检索"]
C --> H["Management Layer 管理命令"]
D --> I["Crossref / OpenAlex / PubMed / arXiv / Semantic Scholar 等"]
E --> J["EasyScholar"]
F --> K["原生来源 / OA 来源 / 权限来源 / Sci-Hub final fallback"]
G --> L["Semantic Scholar OA snippets"]
H --> M["doctor / smoke / skills / config / tools"]
I --> N["统一 JSON 输出"]
J --> N
K --> N
L --> N
M --> N
N --> O["agent / 脚本 / 终端继续处理"]

支持平台





















































类型 平台 适合场景
综合检索 Crossref、OpenAlex、Semantic Scholar、Google Scholar 广覆盖发现、DOI 元数据、引用线索、文献初筛
期刊指标 EasyScholar 影响因子、JCR/SSCI 分区、中科院分区、JCI、ESI、预警
医学/生命科学 PubMed、PubMed Central、Europe PMC 临床、生物医学、公卫、生物医学元数据和开放全文
预印本/会议稿 arXiv、bioRxiv、medRxiv、OpenReview、IACR ePrint 跨学科预印本、生命科学/医学预印本、AI/ML 投稿和密码学 ePrint
计算机/工程 DBLP、ACM Digital Library 元数据、IEEE Xplore、USENIX CS 文献目录、工程数据库、系统/安全会议论文
开放全文/仓储 CORE、OpenAIRE、Unpaywall 跨学科仓储发现和开放获取 PDF 回退路径
引文库/出版商 Web of Science、Scopus、ScienceDirect、Springer Nature/SpringerLink、Wiley 机构权限型元数据、引文数据库、出版商记录和下载
DOI 定向获取 Sci-Hub DOI 定向获取,并作为 PDF 下载漏斗的最后自动兜底;除非传入 useSciHub=false

下面把完整能力矩阵按类型拆成小表,判断各平台的功能和是否需要配API key。


综合检索





















































平台 搜索 下载 全文 被引统计 API Key 特色功能
Crossref 默认搜索平台,广泛元数据覆盖
OpenAlex ^-^ 条件支持 广泛免费元数据;记录含开放链接时可用于回退下载
Semantic Scholar ^-^ 正文片段 ^-^ 可选* AI 语义检索 + OA 正文片段
Google Scholar 广泛学术发现,基于页面解析

期刊指标


























平台 搜索 下载 全文 被引统计 API Key 特色功能
EasyScholar ^-^ 论文关键词搜索 ^-^ 必需 影响因子、JCR/SSCI 分区、中科院分区、JCI、ESI、预警等

医学/生命科学












































平台 搜索 下载 全文 被引统计 API Key 特色功能
PubMed ^-^ 可选 NCBI E-utilities 生物医学文献
PubMed Central 生物医学开放全文和 PMC PDF
Europe PMC 生物医学元数据和开放全文链接

计算机/工程





















































平台 搜索 下载 全文 被引统计 API Key 特色功能
DBLP 官方 DBLP search API,计算机文献目录
ACM Digital Library 元数据 通过 Crossref 的 ACM DOI 前缀检索元数据;不抓取 ACM 页面
USENIX 元数据 基于 DBLP 的 USENIX 会议元数据;不抓取 USENIX 搜索页
IEEE Xplore ^-^ 必需 官方 IEEE Xplore Metadata API,需要 IEEE_API_KEY

开放全文/仓储












































平台 搜索 下载 全文 被引统计 API Key 特色功能
CORE ^-^ 条件支持 ^-^ 条件支持 ^-^ 可选 记录含 PDF 或全文链接时可下载
OpenAIRE ^-^ 条件支持 ^-^ 可选 记录含开放链接时可用于回退下载
Unpaywall ^-^ 条件支持 ^-^ 条件支持 ^-^ 邮箱 仅支持 DOI 查询;需要 email;发现 OA PDF 时可下载

预印本/会议稿






























































平台 搜索 下载 全文 被引统计 API Key 特色功能
arXiv 物理、计算机、数学等预印本
bioRxiv 生物学预印本
medRxiv 医学预印本
OpenReview 公开 OpenReview notes search,适合 AI/ML 投稿、评审和预印本
IACR ePrint 密码学论文

引文库/出版商






























































平台 搜索 下载 全文 被引统计 API Key 特色功能
Web of Science ^-^ 必需 引文数据库、日期排序、年份范围
ScienceDirect ^-^ 必需 Elsevier 元数据和摘要
Springer Nature / SpringerLink ^-^ 条件支持 ^-^ 必需 springerlinkspringer 的别名;开放获取记录可下载
Wiley ^-^ 关键词搜索 ^-^ 必需 TDM API,仅支持 DOI 下载 PDF
Scopus ^-^ 必需 摘要和引文数据库

DOI 定向获取


























平台 搜索 下载 全文 被引统计 API Key 特色功能
Sci-Hub DOI/URL 定向 PDF fallback;不是文献元数据检索来源

常用命令


CLI 的输出设计是 agent-friendly,优先面向 AI、agent 和脚本解析。默认输出结构化 JSON,完整平台和命令可以看 GitHub 上面。


安装:


npm install -g paper-search-cli
paper-search setup

搜索论文:可以同时多个来源进行检索


paper-search search "machine learning applications" --platform all --max-results 5 --pretty

检索期刊指标:


用于查询期刊影响因子、JCR / SSCI 分区、中科院分区、JCI、ESI、预警和等级字段,需要配置 EASYSCHOLAR_KEY


paper-search journal-metrics "Nature" "BMJ" --pretty


PDF 下载:


OA期刊、出版商直连/API、机构访问、CloakBrowser出版商捕获,Sci-Hub兜底。


# arXiv 这类有原生 PDF 的来源
paper-search download 2301.12345 --platform arxiv --save-path ./downloads --pretty

# DOI 论文可走统一 PDF discovery fallback
paper-search run download_with_fallback \
--json-args '{"source":"crossref","paperId":"10.xxxx/xxxxx","doi":"10.xxxx/xxxxx","title":"Paper title","savePath":"./downloads"}' \
--pretty

正文片段检索:


用于查论文正文里可能出现的方法描述、参数、模型名、软件名、统计写法等,需要配置SEMANTIC_SCHOLAR_API_KEY


paper-search run search_semantic_snippets \
--arg query="statistical model validation methods" \
--arg limit=5 \
--arg fieldsOfStudy=Computer Science \
--pretty

查看工具列表:


paper-search tools --pretty

查看健康报告和 Capability Profile:


paper-search doctor --pretty
paper-search doctor --format text

查看配置状态和本地自检:


paper-search config list --pretty
paper-search smoke --mock --pretty

同步随包发布的 Skill:


paper-search skills status --pretty
paper-search skills update --targets agents --pretty

API key 说明


不配置 key 也能用像 Crossref、OpenAlex、arXiv、PubMed、DBLP、ACM、USENIX、OpenReview 这些来源的信息,但是还是建议先配置后体验更佳:




































配置 作用
SEMANTIC_SCHOLAR_API_KEY 正文片段检索、提升 Semantic Scholar 稳定性
CORE_API_KEY CORE 开放仓储检索,减少匿名限流
UNPAYWALL_EMAIL DOI 开放获取 PDF 解析
CROSSREF_MAILTO Crossref polite pool
EASYSCHOLAR_KEY EasyScholar 期刊指标检索
IEEE_API_KEY IEEE Xplore 元数据检索

申请入口:














































































配置 入口 说明
EASYSCHOLAR_KEY EasyScholar Open API 期刊指标检索需要它。
SEMANTIC_SCHOLAR_API_KEY Semantic Scholar API 正文片段检索需要它,好用,用edu邮箱注册申请都可以通过。
CORE_API_KEY CORE API 建议配置,匿名访问容易限流。
UNPAYWALL_EMAIL Unpaywall API 不需要 API key,只需要邮箱;setup 可自动生成随机邮箱,也可手动填写自己的邮箱。
CROSSREF_MAILTO Crossref REST API 不需要 API key,只需要邮箱;setup 可自动生成随机邮箱,也可手动填写自己的邮箱。
PUBMED_API_KEY NCBI API Keys 高频使用 PubMed 时再配,一般不需要。
WOS_API_KEY Clarivate Developer Portal 需要 Web of Science API 权限。
IEEE_API_KEY IEEE Xplore Metadata API IEEE Xplore 元数据检索需要它;通常需要 IEEE API 权限。
ELSEVIER_API_KEY Elsevier Developer Portal Scopus / ScienceDirect 需要有权限。
SPRINGER_API_KEY Springer Nature Developers Springer 检索和开放获取接口使用。
SPRINGER_OPENACCESS_API_KEY Springer Nature Developers Springer OpenAccess 接口使用,和出版商权限型 API 分开。
WILEY_TDM_TOKEN Wiley Text and Data Mining Wiley TDM 下载需要对应权限。
OPENAIRE_API_KEY OpenAIRE APIs 通常可选,公开检索一般不需要。

配置指定平台运行:


paper-search setup xx

配置全部平台运行:


paper-search setup --all

Agent Skill


Skill 用来告诉 agent如何调用 paper-search,安装时候会弹出配置Skill的路径:


skills/paper-search/SKILL.md

后续安装或同步 Skill可以用下面的命令:


paper-search setup --install-skills agents
paper-search skills status --pretty
paper-search skills update --targets agents --pretty

最后,希望有需要的佬友可以帮我点个star,多多提意见。


后续更新任务:通过 WebVPN/CARSI 下载 学校有权限的PDF。有点麻烦,还在调试。

最新回复 (19)
  • fatelism 05-16 21:48
    1

    感谢佬友,很需要这个工具,先体验一下

  • tpu01yzx 05-16 22:23
    2

    UNPAYWALL_EMAIL DOI 开放获取 PDF 解析 CROSSREF_MAILTO Crossref polite pool





















    UNPAYWALL_EMAIL DOI 开放获取 PDF 解析
    CROSSREF_MAILTO Crossref polite pool
    提个建议,这两个可以随机生成就好,反正不进行验证的

  • 饺子 楼主 05-17 01:36
    3

    已更新,Unpaywall / Crossref 可以回车自动生成随机Gmail后缀的邮箱,也可以配置为自己需要的邮箱。

  • curiosity 05-19 16:48
    4

    佬,codex 道德标兵,不会去 scihub 上下载,这个咋办

  • 饺子 楼主 05-19 19:12
    5

    笑死,真受不了他,我这两天看看有什么办法改下,让他能下载。

  • moss_pro 05-19 22:40
    6

    佬,怎么不把dblp加上,计算机感觉这个比较全

  • 饺子 楼主 05-20 00:12
    7

    因为我是学医的 ^-^,是这个网址吗?我晚点加一下:https://dblp.org/

  • lingfengzhe 05-20 00:16
    8

    佬,请问有机会加上IEEE、ACM、Usenix、SpringerLink、Opnereview等计算机相关的平台吗,万分感谢~

  • 饺子 楼主 05-20 00:17
    9

    好的佬,我这几天看看怎么加上去。

  • lingfengzhe 05-20 00:21
    10

    回复的太速度了,好像ACM已经全面Open access了,似乎可以直接下载pdf论文。其他的平台似乎下载论文还比较困难,不知道佬有什么好办法 ^-^

  • 饺子 楼主 05-20 01:43
    11

    没有OA的pdf下载没有特别好的办法,除非出版商肯提供API给接入,就像Wiley一样。


    按照我的习惯,pdf只是用在精读,这时候也是最后一步了,通过paper-research-cli将文献过滤完,最终有用的文章也就十来篇,这时候登录学校账号去下载对应的pdf到zotero中就行。


    如果是粗略过,看摘要其实也就够了。


    如果是需要涉及到课题设计方法学,或者Introduction,Discussion论文撰写的内容,大部分都可以通过 paper-search run search_semantic_snippets直接去查论文正文里的片段,直接让Agent去帮你把类似文章的对应模块提取出来,供Ai去学习他们的实验设计和撰写方式。


    所以没有必要一定要下载全pdf,下载完也不一定会看,最重要的是让AI筛选海量信息,自己在跟Agent的对话中找到自己的课题灵感,这是AI永远无法替代人的一点。

  • 饺子 楼主 05-20 10:25
    12

    已经添加上述平台,IEEE需要申请API key,剩余几个可以直接用,佬友可以更新测试一下

  • 饺子 楼主 05-20 10:26
    13

    已经添加上这个平台了,佬友也可以测试一下

  • 饺子 楼主 05-20 10:27
    14

    这个默认useSciHub 设为 True,佬友更新下cli还有skill,应该可以自动下载了。

  • moss_pro 05-20 12:16
    15

    好的好的,佬这效率也太高了,谢谢佬

  • curiosity 05-20 17:14
    16

    收到,佬也太肝了,谢谢佬,感谢!

  • lingfengzhe 05-21 20:05
    17

    有些学校会有类似于:proxy url的方式,将网站url换成学校proxy url方式后,就能访问并且下载。之前试过这种自动化方式完成,但感觉略微有点痛苦。可以后续看看,抽个时间自己弄一下,提个PR完善一下~

  • 饺子 楼主 05-24 15:52
    18

    佬,有将“网站url换成学校proxy url”的方案吗?想参考看怎么整合进来,我没有找到特别合适的方案。

  • lingfengzhe 05-24 17:27
    19

    实际上有很多学校用类似于 eproxy(webvpn) 的方案。比如:

    原来的网址: https://dl.acm.org/

    可以用类似于:https://dl.acm.org.<eproxy_url>/<origin_uri> 这种方式转换


    举例,以香港大学的 eproxy 系统为例:

    https://dl.acm.org/journals,可以转换为:https://dl-acm-org.eproxy.lib.hku.hk/journals

* 帖子来源Linux.do
返回