loading…
Search for a command to run...
loading…
MCP server that turns DOI, URL, or paper titles into structured Markdown full-text with metadata and assets, enabling AI agents to read beyond abstracts.
MCP server that turns DOI, URL, or paper titles into structured Markdown full-text with metadata and assets, enabling AI agents to read beyond abstracts.
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 / 任意 MCP host。 不绕付费墙,只在你本就有访问权限的地方,把 AI 从「只能读摘要」升级到「读全文」。
如果觉得有帮助,欢迎 star⭐ 支持!
✅这个项目把这些问题收敛到一个工具层:
✅项目提供三个主要入口:
paper-fetch:命令行工具,适合手动大规模快速抓取文献。paper-fetch-mcp:stdio MCP server,适合接入 Codex、Claude Code 等支持 MCP 的 host。skills/paper-fetch-skill/:静态 agent skill,告诉 agent 什么时候应该调用论文抓取工具。核心能力:
项目边界:
agent 安装 skill 后,可以识别 paper-fetch-skill 的适用边界,并在抓取前确认是否保存全文和图表资源。

以下示例来自 figures/ 中的真实开放抓取产物。
10.1038/s41586-026-10265-5
10.1126/sciadv.adp3964
离线 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
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 / Annual Reviews / ACS / IOP / AIP / MDPI 浏览器路径
安装器会注册 CloakBrowser 默认 headless 环境,并在 offline.env 默认启用普通 Chrome browser UA,降低 AGU/Wiley 页面进入 Cloudflare challenge 的概率。受限环境可在 offline.env 中设置 CLOAKBROWSER_BINARY_PATH 指向预装浏览器;如果桌面显示环境下仍被 challenge,再把 CLOAKBROWSER_HEADLESS=false,或安装 Linux / 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 skill、MCP 配置或 offline.env 后需要重启对应 host;已经启动的 MCP 服务不会自动继承新环境变量。
7. 常见问题
Windows 安装器和离线安装细节见 docs/deployment.md。
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
桌面显示环境可改用:
./paper-fetch-skill-offline-linux-x86_64-cp312.sh --preset=headful --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
更新
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。
卸载
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.env 或 downloads/;确认不再需要后运行 ~/.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
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 默认是 body:none 不下载本地资产但保留 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。
安装 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 配置。
./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
任何支持 stdio MCP 的 host 都可以直接运行:
paper-fetch-mcp
或:
python3 -m paper_fetch.mcp.server
Codex CLI 可手动注册同一个 stdio server:
codex mcp add paper-fetch -- python3 -X utf8 -m paper_fetch.mcp.server
MCP 默认模式、artifact_mode、prefer_cache、no_download 和 save_markdown 的完整语义见 docs/providers.md。MCP artifact_mode 默认是 markdown-assets;strategy.asset_profile 支持 none、body、all,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
本项目通过公开可访问的开放获取接口、publisher 路由和用户配置的凭据获取研究论文内容。
Выполни в терминале:
claude mcp add paper-fetch-mcp -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.