本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
Paper Search CLI
一个面向 agent 和终端使用的多来源论文检索 CLI。
github.com
GitHub - dr-dumpling/paper-search-cli: Agent-friendly CLI for academic paper search based...
Agent-friendly CLI for academic paper search based on Paper Search MCP
为什么做这个
之前一直在用 Paper-Search-mcp-nodejs 论文检索 MCP。功能本身很完整,在没有接触到cc-switch之前,在多个Ai中切换过程后的MCP都需要单独配置,维护起来比较麻烦,前几天刷到站内佬友的建议,未来的主流可能会逐渐转变为CLI + Skill,所以我将原来佬友的项目,加上参考原始作者的来源项目,重新Vibe成了Cli + Skill:
架构思路主要受站内佬友这篇启发:https://linux.do/t/topic/2076559
功能来源主要参考这两个项目:
github.com
GitHub - Dianel555/paper-search-mcp-nodejs: A Node.js implementation of the Model Context...
A Node.js implementation of the Model Context Protocol (MCP) server for searching and downloading academic papers from multiple sources, including **Web of Science**, arXiv, and more.
github.com
GitHub - openags/paper-search-mcp: MCP, CLI, Skills for searching and downloading...
MCP, CLI, Skills for searching and downloading academic papers from multiple sources like arXiv, PubMed, bioRxiv, etc.
核心特性
- 20 个学术来源 / 平台:覆盖 Crossref、OpenAlex、PubMed、PMC、Europe PMC、arXiv、bioRxiv、medRxiv、Semantic Scholar、CORE、OpenAIRE、Web of Science、Google Scholar、IACR ePrint、Sci-Hub、ScienceDirect、Springer Nature、Wiley、Scopus、Unpaywall。
- 单一命令入口:安装后通过
paper-search调用,适合终端、脚本和 agent。 - JSON-first 输出:stdout 默认输出结构化 JSON,stderr 保留给人类可读日志和错误;
--pretty只是缩进格式化,不是传统表格 UI。 - 统一论文数据模型:尽量标准化标题、作者、DOI、来源、日期、摘要、PDF 链接、引用数和平台扩展字段。
- 多源检索与去重:可以用
--sources crossref,openalex,pmc指定来源,也可以用platform=all尝试所有已注册检索来源。 - Semantic Scholar 正文片段检索:
search_semantic_snippets可以检索 Semantic Scholar Open Access snippet 索引中的正文片段,适合查找论文里的细节,对于撰写方法学时很合适。 - 开放获取优先下载链:
download_with_fallback会优先尝试原生下载、PDF URL、PMC / Europe PMC / CORE / OpenAIRE、Unpaywall DOI 解析。 - 适合 agent 调用:
tools、status、search、download、run覆盖简单检索和精确工具调用。
技术路线
这个项目走的是 CLI + Skill 路线。
Skill 负责告诉 agent:什么时候该用 paper-search、该选哪个平台、什么时候查 DOI、什么时候查正文片段、什么时候下载 PDF。
CLI 负责执行:检索、去重、下载、诊断、输出 JSON。
整体链路是如下:
flowchart LR
A["用户问题 / agent 任务"] --> B["paper-search Skill"]
B --> C["paper-search CLI"]
C --> D["来源选择 / 多源调度"]
D --> E["Crossref / OpenAlex / PubMed / arXiv"]
D --> F["Semantic Scholar / snippets"]
D --> G["PMC / Europe PMC / CORE / OpenAIRE"]
D --> H["WoS / Scopus / ScienceDirect / Springer 等 key 平台"]
C --> I["统一论文数据模型"]
I --> J["JSON 输出"]
J --> K["agent / 脚本 / 终端继续处理"]
由设置的参数或 platform=all 决定要调用哪些来源,还没办法实现自动选择,我在考虑后续要不要加入根据任务选择自动选择哪种来源进行检索。
支持平台
平台 搜索 下载 全文 被引统计 API Key 特色功能 Crossref说明:🟡 条件支持 表示只在满足条件时可用,例如记录里含 PDF / 开放获取链接、只能按 DOI 查询,或只能下载开放获取记录。🟡 可选* 对 Semantic Scholar 的含义是:普通检索可选;正文片段检索需要 SEMANTIC_SCHOLAR_API_KEY。
常用命令
CLI 的输出设计是 agent-friendly,优先面向 AI、agent 和脚本解析。默认输出结构化 JSON。
安装:
npm install -g paper-search-cli
paper-search setup
搜索论文:可以同时多个来源进行检索
paper-search search "machine learning applications" --platform all --max-results 5 --pretty
--platform=all 会尝试所有已注册检索来源,但不包含 Wiley 这类只支持 DOI 下载、不能关键词搜索的平台。未配置 key、超时或请求失败的来源会写入 failed_sources / errors,其他来源继续返回。
paper-search search "machine learning applications" \
--sources crossref,openalex,pubmed,pmc,europepmc \
--max-results 5 \
--pretty
--sources 用于手动指定多个来源。手动包含了没配置 key 或请求失败的来源时,CLI 会把失败写进 failed_sources / errors,同时继续返回其他来源的结果。
常用来源单独检索: 这里只列几个常用入口,完整平台和命令可以看 GitHub 上面。
# Crossref:默认元数据来源
paper-search search "machine learning applications" --platform crossref --max-results 5 --pretty
# OpenAlex:开放元数据和引用信息
paper-search search "open science metadata" --platform openalex --max-results 5 --pretty
# PubMed:生物医学文献
paper-search search "clinical trial methodology" --platform pubmed --max-results 5 --pretty
# arXiv:预印本
paper-search search "large language model evaluation" --platform arxiv --max-results 5 --pretty
# Semantic Scholar:查相关论文,返回论文列表、摘要、引用、DOI 等信息
paper-search search "graph neural networks" --platform semantic --max-results 5 --pretty
# Semantic Scholar snippets:查论文正文里的片段
paper-search run search_semantic_snippets \
--arg query="statistical model validation methods" \
--arg limit=5 \
--arg fieldsOfStudy=Computer Science \
--pretty
# PMC / Europe PMC / CORE:开放全文和开放仓储来源
paper-search run search_pmc --arg query="research reproducibility" --arg maxResults=5 --pretty
paper-search run search_europepmc --arg query="data sharing policy" --arg maxResults=5 --pretty
paper-search run search_core --arg query="open access repositories" --arg maxResults=5 --pretty
查看工具列表:
paper-search tools --pretty
查看平台状态:
paper-search status --pretty
诊断 API key:
paper-search diagnostics --pretty
API key 说明
不配置 key 也能用免费来源,像 Crossref、OpenAlex、arXiv、PubMed 这些来源的信息。
如果想体验完整一点,建议先配置:
配置 作用SEMANTIC_SCHOLAR_API_KEY
正文片段检索、提升 Semantic Scholar 稳定性
CORE_API_KEY
CORE 开放仓储检索,减少匿名限流
UNPAYWALL_EMAIL
DOI 开放获取 PDF 解析
CROSSREF_MAILTO
Crossref polite pool
申请入口:
配置 入口 说明SEMANTIC_SCHOLAR_API_KEY
Semantic Scholar API
正文片段检索需要它,好用,用edu邮箱注册申请都可以通过。
CORE_API_KEY
CORE API
建议配置,匿名访问容易限流。
UNPAYWALL_EMAIL
Unpaywall API
不需要申请 key,填自己的邮箱即可。
CROSSREF_MAILTO
Crossref REST API
不需要申请 key,填自己的邮箱即可。
PUBMED_API_KEY
NCBI API Keys
高频使用 PubMed 时再配,一般不需要。
WOS_API_KEY
Clarivate Developer Portal
需要 Web of Science API 权限。
ELSEVIER_API_KEY
Elsevier Developer Portal
Scopus / ScienceDirect 需要有权限。
SPRINGER_API_KEY
Springer Nature Developers
Springer 检索和开放获取接口使用。
WILEY_TDM_TOKEN
Wiley Text and Data Mining
Wiley TDM 下载需要对应权限。
直接运行:
paper-search setup
如果想配置全部平台:
paper-search setup --all
Skill 配置
仓库里也放了一个可选的 agent skill,只是告诉 agent 什么时候该调用 paper-search、应该选哪个平台、如何处理 DOI / PDF / 正文片段检索。真正执行的仍然是 CLI:
skills/paper-search/SKILL.md
最后,希望有需要的佬友可以帮我点个star,我也是第一次做,有问题多多帮我提意见
。
1 个帖子 - 1 位参与者