Skip to main content
Glama

Paper Fetch Skill

Fetch papers as agent-ready markdown — DOI/URL/title in, structured full text out. CLI · MCP · Skill.

Paper Fetch Skill —— 已知论文的 AI 阅读层。 你有 DOI、URL 或标题;它返回结构化元数据 + 干净 Markdown 全文 + 图表资源,直接喂给 Codex / Claude Code / Gemini CLI / 任意 MCP host。 不绕付费墙,只在你本就有访问权限的地方,把 AI 从「只能读摘要」升级到「读全文」。

如果觉得有帮助,欢迎 star⭐ 支持!

🙁 AI agent 读论文的痛点

  1. 你有权限获取全文,但 AI 没有权限,AI 只能读到摘要。

  2. PDF 无法正确解析文字、图片,agent 理解效果不如 markdown。

  3. 文章 html 有很多无关的网页信息,给 agent 造成语义负担。

  4. 文章 html 中的图片 agent 读不到。

😍 这个项目做什么

✅这个项目把这些问题收敛到一个工具层:

  1. 当你有全文获取权限时,让 AI 也能获取全文,而不仅是摘要。

  2. 输入 n 篇已知论文,抓取 AI 更容易理解的 markdown 版本,为后续知识库构建做好干净的数据基础。

✅项目提供三个主要入口:

  1. paper-fetch:命令行工具,适合手动大规模快速抓取文献。

  2. paper-fetch-mcp:stdio MCP server,适合接入 Codex、Claude Code、Gemini CLI 等支持 MCP 的 host。

  3. skills/paper-fetch-skill/:静态 agent skill,告诉 agent 什么时候应该调用论文抓取工具。

核心能力:

  • 支持 DOI、URL 和标题查询。

  • 输出结构化论文元数据、正文 Markdown、引用信息和本地缓存资源。

  • 支持常见 provider 路由,包括 Crossref、arXiv、Elsevier、Springer、Wiley、Science、PNAS、AMS、ACS、IEEE、MDPI 和 Copernicus。

  • 在无法取得全文时返回带 warning 的 abstract-only 或 metadata-only 结果。

项目边界:

  • 不做主题检索、文献推荐或综述生成。

  • 不绕过付费墙或访问授权;可用性取决于 provider、凭据和本机运行环境。

  • Wiley、Science、PNAS、AMS、ACS、MDPI 的浏览器路径统一使用 CloakBrowser;IEEE 路线不需要额外 API key,但全文可用性取决于 IEEE Xplore 对当前环境的合法访问上下文。

  • Provider onboarding 的 AI/coordinator 自动化入口见 onboarding/README.md,其中的 runner 仍不能代替 access approval、challenge 决策或最终语义审查判断;最终签字由用户确认后通过项目脚本机械写入。

效果展示

agent 安装 skill 后,可以识别 paper-fetch-skill 的适用边界,并在抓取前确认是否保存全文和图表资源。

agent 识别 paper-fetch-skill 能力范围

以下示例来自 figures/ 中的真实开放抓取产物。

Nature 示例

Nature 论文抓取结果

Science Advances 示例

Science Advances 论文抓取结果

快速安装

离线安装(推荐)

离线 release asset 包含 4 个 Linux ABI 自解压 .sh 安装器、4 个 macOS ABI tarball 和 1 个 Windows x86_64 安装器。macOS tarball 使用同一构建脚本在 macos-latest 上按 runner 架构和 CPython 3.11、3.12、3.13、3.14 生成,并由 macOS CI 验证安装、headful preset 和 CloakBrowser 浏览器启动 smoke。

paper-fetch-skill-offline-linux-x86_64-cp311.sh
paper-fetch-skill-offline-linux-x86_64-cp312.sh
paper-fetch-skill-offline-linux-x86_64-cp313.sh
paper-fetch-skill-offline-linux-x86_64-cp314.sh
paper-fetch-skill-offline-macos-<arch>-cp311.tar.gz
paper-fetch-skill-offline-macos-<arch>-cp312.tar.gz
paper-fetch-skill-offline-macos-<arch>-cp313.tar.gz
paper-fetch-skill-offline-macos-<arch>-cp314.tar.gz
paper-fetch-skill-windows-x86_64-setup.exe

I. Windows x86_64:

1. 下载安装包

在 Releases 中下载

paper-fetch-skill-windows-x86_64-setup.exe

2. 双击安装或者在本地终端运行安装程序

.\paper-fetch-skill-windows-x86_64-setup.exe

安装器默认安装到 %LOCALAPPDATA%\PaperFetchSkill,不要求管理员权限。会自动安装 paper-fetch CLI 工具、注册 MCP 并安装 Skill。若用户级 PATH / Skill / MCP 集成或 smoke check 在本机失败,runtime 仍会保留在安装目录,详细警告见 %LOCALAPPDATA%\PaperFetchSkill\install-helper.log

3. 验证安装

安装后新开一个 PowerShell

paper-fetch --help

如果有输出usage: cli.py [-h] -(后略)则安装成功

4. 开启 Wiley / Science / PNAS / AMS / ACS / MDPI 浏览器路径

安装器会注册 CloakBrowser 默认 headless 环境,并在 offline.env 默认启用普通 Chrome browser UA,降低 AGU/Wiley 页面进入 Cloudflare challenge 的概率。受限环境可在 offline.env 中设置 CLOAKBROWSER_BINARY_PATH 指向预装浏览器;如果 GUI/WSLg 环境下仍被 challenge,再把 CLOAKBROWSER_HEADLESS=false,安装 Linux .sh 时使用 --preset=wslg,或在 macOS 离线 bundle 中使用 --preset=headful。 Windows 安装器还会设置 MATHML_TO_LATEX_NODE_BIN 指向包内 Playwright Node,避免 Codex Desktop 的 WindowsApps/MSIX 内部 node.exe 被公式转换 fallback 误用。

5. 开启 Elsevier 获取权限

Elsevier 官方 XML/API 和 PDF fallback 需要从 https://dev.elsevier.com/ 申请 key,并写入安装目录下的 offline.env

notepad "$env:LOCALAPPDATA\PaperFetchSkill\offline.env"

6. 刷新 agent skill

修改 Codex / Claude Code / Gemini CLI skill、MCP 配置或 offline.env 后需要重启对应 host;已经启动的 MCP 服务不会自动继承新环境变量。

7. 常见问题

Windows 安装器和离线安装细节见 docs/deployment.md

II. Linux

1. 下载安装包

检查python版本

python3 --version

在 Releases 中选择与目标机 Python 版本的包下载。

paper-fetch-skill-offline-linux-x86_64-cp311.sh
paper-fetch-skill-offline-linux-x86_64-cp312.sh
paper-fetch-skill-offline-linux-x86_64-cp313.sh
paper-fetch-skill-offline-linux-x86_64-cp314.sh

Linux .sh 是自解压安装器,内部 payload 是预安装 runtime 包,不再是源码快照。默认安装到 ~/.local/share/paper-fetch-skill,也可以用 --install-dir <path> 指定固定目录。

Ubuntu 24.04 系统默认 Python 版本 3.12,Ubuntu 26.04 为 3.14。

直接执行安装器:

chmod +x paper-fetch-skill-offline-linux-x86_64-cp312.sh
./paper-fetch-skill-offline-linux-x86_64-cp312.sh --preset=headless --no-user-config
source ~/.local/share/paper-fetch-skill/activate-offline.sh

WSLg 或桌面显示环境可改用:

./paper-fetch-skill-offline-linux-x86_64-cp312.sh --preset=wslg --no-user-config

如需固定到自定义目录:

./paper-fetch-skill-offline-linux-x86_64-cp312.sh --install-dir "$HOME/tools/paper-fetch-skill" --preset=headless --no-user-config
source "$HOME/tools/paper-fetch-skill/activate-offline.sh"

Linux / macOS 离线安装会优先把 MATHML_TO_LATEX_NODE_BIN 指向包内 Playwright Node,避免依赖系统 PATH 上的 node;生成的 activate-offline.sh 可在 bash 或 zsh 中 source

macOS 离线 release asset 按 CPython ABI 提供 tarball;下载与目标机架构和 Python 版本匹配的 paper-fetch-skill-offline-macos-*-cp*.tar.gz 后解压运行。macOS 可见浏览器调试使用:

tar -xzf paper-fetch-skill-offline-macos-arm64-cp312.tar.gz
cd paper-fetch-skill-offline-macos-arm64-cp312
./install-offline.sh --preset=headful --no-user-config
source ~/.local/share/paper-fetch-skill/activate-offline.sh

III. 更新和卸载

更新

Windows 下载新版 paper-fetch-skill-windows-x86_64-setup.exe 后直接运行。安装器会先备份 %LOCALAPPDATA%\PaperFetchSkill\offline.env,清理旧安装 payload,再安装新版运行时并写回用户配置,只刷新受管理的运行时配置、PATH、Skill 和 MCP 注册。

Linux 下载与目标机 Python 版本匹配的新版 .sh 后直接运行。默认安装目录固定为 ~/.local/share/paper-fetch-skill,升级时会清理旧 runtime payload、移除旧源码/构建残留,并保留安装目录内的 offline.env。若希望复用外部 env 文件且不修改它,使用 --reuse-env-file

./paper-fetch-skill-offline-linux-x86_64-cp312.sh --preset=headless --no-user-config
./paper-fetch-skill-offline-linux-x86_64-cp312.sh --preset=headless --no-user-config --reuse-env-file /path/to/shared/offline.env
source ~/.local/share/paper-fetch-skill/activate-offline.sh

--reuse-env-file 会让 shell / Skill / MCP 指向新版 runtime,但不会修改被复用的 offline.env。更新后重启 Codex / Claude Code / Gemini CLI。

卸载

Windows 在“设置 > 应用 > 已安装的应用”中卸载 Paper Fetch Skill,或运行:

& "$env:LOCALAPPDATA\PaperFetchSkill\unins000.exe"

如需保留 offline.env 中的 API key,卸载前先备份该文件。

Linux 默认安装目录运行:

~/.local/share/paper-fetch-skill/install-offline.sh --uninstall

该命令只清理用户级 PATH / Skill / MCP 集成,不删除固定安装目录、bin/runtime/offline.envdownloads/;确认不再需要后运行 ~/.local/share/paper-fetch-skill/install-offline.sh --purge 删除安装目录。

在线安装(不推荐,开发使用)

在仓库根目录执行:

./install.sh

默认会创建仓库内 .venv,安装 Python 包,并准备 CloakBrowser 依赖和公式后端等运行组件。

如果只想安装 Python 包和基础配置:

./install.sh --lite

arXiv 路径细节见 docs/providers.md

如果只想装进当前 Python 环境:

python3 -m pip install .

安装后可用命令:

paper-fetch --query "10.1186/1471-2105-11-421"
paper-fetch-mcp

CLI 行为速查

paper-fetch 的输出与本地 artifact 参数分工如下:

  • --format markdown|json|both 指定 stdout、--output--output-dir 默认主输出文件的序列化格式,默认是 markdown

  • --query-file <path> 启用批量抓取,每行一个 DOI、URL 或标题;空行和以 # 开头的注释行会被忽略。批量模式不向 stdout 输出正文,而是把每篇主输出写到输出目录,并生成 JSONL 汇总。

  • --output <path> 把这份格式化结果写到指定文件;显式 --output - 表示打印到终端。

  • --output-dir <dir> 是默认主输出、Markdown、PDF fallback 来源文件和本地资产的保存目录;CLI 会在抓取前自动创建该目录,未显式传 --output 时,主输出会写到 <doi>.md<doi>.json<doi>.both.json,不再把正文打印到终端。

  • --batch-concurrency <1..8> 控制批量并发,默认 1--batch-results <path> 可覆盖默认的 <output-dir>/batch-results.jsonl

  • --artifact-mode markdown-assets|all|none 控制中间产物保留,CLI 默认是 markdown-assets:保存 Markdown、按 --asset-profile 保存资产,不保留 provider 原始 HTML/XML、fetch-envelope/cache JSON 或 HTTP textual cache;如果正文来自 PDF fallback,仍会保存 PDF 源文件便于溯源。

  • --artifact-mode all 保留旧行为:provider HTML/PDF、辅助 artifact、HTTP textual cache 等调试 artifact 都可落盘。

  • --artifact-mode none 不保存 provider artifact 或资产;显式 --output <path>--save-markdown,以及未显式 --output 时由 --output-dir 承接的主输出仍可写文件。--no-download 保留兼容,但已弃用,等价于 --artifact-mode none

  • --asset-profile none|body|all 控制本地内容资产下载范围,CLI 默认是 bodynone 不下载本地资产但保留 Markdown 中可解析的远程图片链接,body 保存正文图片/图表/公式图片,all 额外保存补充材料。

完整命令组合、主输出与 artifact 的区别、错误输出和 exit code 见 docs/cli.md

例如:

paper-fetch --query "https://www.nature.com/articles/s41559-026-03039-9" \
  --output-dir ./papers

这会把 Markdown 写到 ./papers/<doi>.md,不打印正文到终端,并按默认 --asset-profile body 保存正文图片等资产;默认不会保存 provider 原始 HTML/XML 或 JSON/cache sidecar。需要完整调试 artifact 时显式使用 --artifact-mode all。如果需要强制打印到终端,显式传 --output -

批量抓取时先准备 query 文件:

# 每行一个 DOI、URL 或标题
10.1186/1471-2105-11-421
https://www.nature.com/articles/s41559-026-03039-9

然后运行:

paper-fetch --query-file ./queries.txt \
  --output-dir ./papers \
  --batch-concurrency 4

这会把每篇 Markdown 和正文资产写到 ./papers,并生成 ./papers/batch-results.jsonl。单篇失败会记录到 JSONL 并继续处理后续条目。

如果只想控制格式化结果的文件路径,显式使用 --output

paper-fetch --query "10.1186/1471-2105-11-421" \
  --format markdown \
  --output ./papers/article.md \
  --output-dir ./papers

显式 --output <path> 只控制主输出文件路径,不会自动创建该文件的父目录。

安装脚本结束时会提示 Elsevier 官方 API 配置入口。抓取 Elsevier 全文前,需要从 https://dev.elsevier.com/ 申请 key,并在配置文件中填写 ELSEVIER_API_KEY

配置文件

默认配置文件位置:

~/.config/paper-fetch/.env

需要 API key、自定义下载目录或 User-Agent 时,可以先创建配置文件:

mkdir -p ~/.config/paper-fetch
cp .env.example ~/.config/paper-fetch/.env

其中 Elsevier 官方 XML/API 和 PDF fallback 至少需要从 https://dev.elsevier.com/ 申请并配置:

ELSEVIER_API_KEY="..."

也可以通过环境变量显式指定:

export PAPER_FETCH_ENV_FILE=/path/to/.env

完整环境变量说明见 docs/providers.md

接入 Codex

安装 skill 并注册 MCP server:

./scripts/install-codex-skill.sh --register-mcp

带配置文件注册:

./scripts/install-codex-skill.sh --register-mcp --env-file ~/.config/paper-fetch/.env

只安装到当前项目:

./scripts/install-codex-skill.sh --project --register-mcp

安装后重启 Codex,让它重新扫描 skills 和 MCP 配置。

接入 Claude Code

./scripts/install-claude-skill.sh --register-mcp

常用参数包括:

./scripts/install-claude-skill.sh --project --register-mcp
./scripts/install-claude-skill.sh --register-mcp --env-file ~/.config/paper-fetch/.env

接入 Gemini CLI

安装 skill 并注册 MCP server:

./scripts/install-gemini-skill.sh --register-mcp

带配置文件注册:

./scripts/install-gemini-skill.sh --register-mcp --env-file ~/.config/paper-fetch/.env

只安装到当前项目:

./scripts/install-gemini-skill.sh --project --register-mcp

如果本机没有 gemini CLI,脚本会安装 skill 并跳过自动 MCP 注册;安装 Gemini CLI 后可重跑同一命令。

手动注册 MCP

任何支持 stdio MCP 的 host 都可以直接运行:

paper-fetch-mcp

或:

python3 -m paper_fetch.mcp.server

Gemini CLI 可手动注册同一个 stdio server:

gemini mcp add -s user paper-fetch python3 -m paper_fetch.mcp.server

WSL 下给 Codex 挂 MCP 时,推荐使用仓库包装脚本:

./scripts/run-codex-paper-fetch-mcp.sh

常用抓取参数

MCP 默认模式、artifact_modeprefer_cacheno_downloadsave_markdown 的完整语义见 docs/providers.md。MCP artifact_mode 默认是 markdown-assetsstrategy.asset_profile 支持 nonebodyall,MCP/Python API 未显式设置时默认由 provider 决定。

更新

更新仓库后重新安装包和 agent 集成:

python3 -m pip install .
./scripts/install-codex-skill.sh --register-mcp

Claude Code 用户对应执行:

./scripts/install-claude-skill.sh --register-mcp

Gemini CLI 用户对应执行:

./scripts/install-gemini-skill.sh --register-mcp

文档

免责声明

本项目通过公开可访问的开放获取接口、publisher 路由和用户配置的凭据获取研究论文内容。

  • 获取的文献仅供个人学术研究和学习使用,不得用于商业用途。

  • 请遵守所在国家/地区著作权法律法规及所在机构的知识产权政策。

  • 本项目不绕过付费墙或访问授权;可用性取决于 provider、凭据和本机运行环境。

  • 本项目不存储、分发或传播任何文献内容,仅协助用户定位、抓取或转换用户有权访问的论文内容。

  • 使用者应对自身的文献获取和使用行为承担全部责任。

社区

https://linux.do/

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
2dResponse time
1dRelease cycle
16Releases (12mo)
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dictation354/paper-fetch-skill'

If you have feedback or need assistance with the MCP directory API, please join our Discord server