Academic Paper Search

July 31, 2026 · View on GitHub

Academic Paper Search

让 Codex / Claude Code 完成可复现的文献检索、核验与引用导出。

安装标识仍为 nature-academic-search,现有命令与配置无需迁移。

默认并行检索 CrossRef、PubMed、arXiv、OpenAlex 和 Europe PMC;需要时显式调用 Semantic Scholar 搜索或富化,并把 ClinicalTrials.gov 试验注册与论文严格分开。

CI PyPI Python License GitHub stars

真实案例 · 快速开始 · 数据源 · 能力边界

Academic Paper Search 2026-07-31 多源开题检索真实结果

本次真实结果 · 2026-07-31:四个来源成功,PubMed 429 被明确披露;点击查看完整记录与边界。

直接这样问

安装后,在 Codex 或 Claude Code 中输入:

使用 $nature-academic-search 查找 2022 年以来 GLP-1 受体激动剂与抑郁风险的论文。 使用默认五个论文源,去重后核验 DOI / PMID / PMCID,区分正式论文和预印本; 对有强标识符的记录用 Semantic Scholar 补充引用指标,最后导出 RIS。某个来源失败时继续并说明。

查询试验注册时明确指定实体类型:

使用 $nature-academic-search 调用 search_papers,以 entity_type="trial" 查找正在招募的 肺癌新辅助免疫治疗试验;按 NCT ID 去重,不要把试验注册当成已发表论文。

返回结果会证明哪些来源实际执行,而不是只展示一张无法追溯的标题清单:

query: "GLP-1 receptor agonists AND depression risk"
entity_type: publication
sources_queried: [crossref, pubmed, arxiv, openalex, europe_pmc]
sources_succeeded: [crossref, pubmed, arxiv, openalex, europe_pmc]
sources_skipped: []
errors: null
raw_result_count: <去重前数量>
result_count: <唯一记录数量>
results:
  - title: <题名>
    sources: [pubmed, europe_pmc]
    source_records: [<来源记录>]
    citation_counts: {openalex: <来源计数>, semantic_scholar: <来源计数>}
    citation_count_source: openalex

三个可复制的中文场景

开题检索

使用 $nature-academic-search 为“生成式 AI 在医学教育中的应用与风险”做开题检索。
先记录检索日期和纳入范围,再使用默认论文源检索;按 DOI、PMID、PMCID、arXiv
和 OpenAlex ID 去重。把正式论文、预印本和未解决记录分开,逐源报告成功、失败与
限流状态。不要把本次初筛描述成系统综述,也不要根据引用次数判断证据质量。

查看 2026-07-31 实测记录

AI 幻觉引用核验

使用 $nature-academic-search 核验下面的参考文献。先从 DOI / PMID / PMCID / arXiv ID
取回原始元数据,再逐项比较题名、作者、年份和期刊。输出 verified、mismatch、
not_found 或 manual_needed,并解释冲突;不要用搜索结果自动补成一条看似完整的引用。

待核验引用:在这里粘贴引用

查看 DOI 与题名冲突实测

PubMed / MeSH 检索

lookup_mesh 的 ESummary 解析修复目前位于 main。PyPI 0.2.0 与插件固定版本尚未包含该修复;要复现下面的 MeSH 案例,请先从当前源码安装:

git clone https://github.com/wp-a/nature-academic-search.git
cd nature-academic-search
bash install.sh --client both --email researcher@example.com
使用 $nature-academic-search 为“生成式 AI 与医学教育”构建 PubMed 起始检索式。
先分别调用 lookup_mesh 核对 Artificial Intelligence、Generative Artificial Intelligence
和 Education, Medical 的规范主题词与 MeSH ID;再把 MeSH 与题名/摘要自由词分组组合。
输出每个主题词的核验结果、最终检索式和仍需人工调整的边界,不要把关键词直接猜成 MeSH。

查看 NCBI MeSH 实测记录

30 秒开始

Codex 插件

codex plugin marketplace add wp-a/nature-academic-search
codex plugin add nature-academic-search@wp-a-academic-tools

Claude Code 插件

claude plugin marketplace add wp-a/nature-academic-search
claude plugin install nature-academic-search@wp-a-academic-tools

CLI 与自动安装器

uv tool install nature-academic-search
export PUBMED_EMAIL=researcher@example.com
nature-academic-search install --client both --email researcher@example.com
nature-academic-search preflight

也可使用 pipx install nature-academic-search。从仓库安装并保留旧命令兼容:

bash install.sh researcher@example.com

NCBI_API_KEYOPENALEX_API_KEYSEMANTIC_SCHOLAR_API_KEY 均为可选项。没有 Semantic Scholar key 时预检会标记 SKIP,不会回显任何凭据。完整说明见安装文档

数据源如何分工

来源调用方式最适合做什么边界
CrossRef默认论文源DOI、出版商元数据、格式化引用不是完整学科数据库
PubMed默认论文源生物医学索引、PMID、MeSH不保证全文可得
arXiv默认论文源预印本与版本线索不代表同行评审状态
OpenAlex默认论文源跨学科发现、OA 与来源化引用指标指标只代表 OpenAlex 口径
Europe PMC默认论文源PMID/PMCID、生物医学与开放全文线索与 PubMed 有重叠
Semantic Scholar显式搜索或 enrich补充元数据和引用/参考文献指标富化只用强标识符
ClinicalTrials.goventity_type="trial"NCT 注册、状态、干预、申办方和入组信息试验注册不是论文

默认 publication 搜索调用前五源。显式传入旧三源列表时仍只调用 CrossRef、PubMed、arXiv,兼容旧工作流。

它如何工作

检索 → 去重 → 核验 → 导出

  1. 定义范围:记录研究主题、日期、类型、数量、是否接受预印本以及实体类型。
  2. 按库检索:使用各来源适合的查询,不把 PubMed 字段语法复制到其他 API。
  3. 合并去重:优先匹配 DOI、PMID、PMCID、arXiv、OpenAlex、Semantic Scholar 或 NCT ID; 弱题名匹配只在相同实体类型内进行。
  4. 保留溯源:每条记录带 sources / source_records;冲突进入 conflicts
  5. 逐条核验:对照题名、作者、期刊、年份和标识符,标记 verifiedmismatchnot_foundmanual_needed
  6. 分类交付:正式论文、预印本、trial 和未解决记录分开;论文可导出 RIS、BibTeX、NBIB 或 ENW。

任一来源超时或失败时,其他成功结果仍会保留。sources_queriedsources_succeededsources_skippederrors 明确展示完整状态。

为什么是“核验优先”

常见检索输出Academic Paper Search
只给标题和链接保留查询、日期、实体类型、标识符与来源追踪
多库结果重复强标识符优先去重,弱匹配保留冲突
引用次数混成一个数字使用 citation_countscitation_count_source 标明口径
预印本、论文和试验注册混在一起按 publication/preprint/trial 分组且禁止跨实体合并
单库故障导致整次失败返回部分成功结果并披露失败或跳过原因
引用格式靠模型补全解析记录后格式化;NCT 不伪造论文引用

适合的科研任务

  • 选题调研:“找近五年肿瘤免疫治疗耐药机制论文,按正式论文和预印本分组。”
  • MeSH 策略:“核验生成式 AI 与医学教育的 MeSH,再构建 PubMed 检索式。”
  • 引用核验:“检查这些 DOI / PMID / PMCID 是否对应给定题名,逐项报告冲突。”
  • 版本追踪:“判断这些 arXiv 预印本是否已有正式发表版本。”
  • 试验追踪:“查 ClinicalTrials.gov 招募中试验,并另行核验其 linked publications。”
  • 文献导出:“把已核验论文去重后导出 RIS,同时单列未解决引用。”

它适合综述前期检索、证据地图和引用整理,但不会替代正式系统综述所需的订阅数据库、双人筛选、 偏倚评估或学科馆员复核。

MCP 工具

四个工具名保持稳定;客户端可能添加 MCP 命名空间前缀。

Tool用途
search_papers搜索 publication 或 trial,合并记录并返回来源状态
get_paper_by_id解析 DOI、PMID、PMCID、arXiv、OpenAlex、Semantic Scholar URL 或 NCT ID
get_citation格式化已解析论文;trial 返回结构化边界错误
lookup_mesh查询 PubMed MeSH 描述词

CLI

nature-academic-search --help
nature-academic-search serve
nature-academic-search preflight
nature-academic-search citation --pmid 28344011 --format ris
nature-academic-search citation --input refs.txt --format bib --output references/

能力边界

  • 本项目未连接 Google Scholar、Web of Science、Scopus、Embase、CNKI、万方,不会声称覆盖这些来源。
  • 当前以元数据、标识符、引用和检索策略为核心,不承诺自动获得付费全文。
  • 上游 API 会限流、超时或暂时不可用;预检和搜索结果会逐源披露。
  • 不同来源的引用次数口径不同,不会相加成“全网总引用数”。
  • 引用进入正式稿件前仍应由作者核对原文、出版社页面和期刊要求。

开发与维护

python -m pip install -e ".[test]"
python scripts/sync_skill.py --check
python -m ruff check src tests
python -m pytest
python -m pytest mcp-server/tests
python -m build
twine check dist/*

项目支持 Python 3.10–3.13。发布与依赖维护流程见维护手册

参与项目

发现解析、来源冲突或安装问题时,请提交 Issue。 贡献代码前请保留四个 MCP 工具名、实体边界与结果契约,并添加回归测试。

如果这个项目能让你的文献检索更可追溯,欢迎点一个 Star;它会帮助更多中文科研用户找到这套工作流。

License

MIT