📚 纸张提取MCP服务器
  ](https://pypi.org/project/paper-distill-mcp/) 
学术论文搜索、智能策展和多平台交付——基于 模型上下文协议.
兼容所有MCP客户端:Claude Desktop、Claude Code、Cursor、Trae、Codex CLI、Gemini CLI、OpenClaw、VS Code、Zed等。
⚠️ 早期发展阶段。 许多功能仍在验证中,可能包含错误或不稳定。欢迎反馈和错误报告!
______________________________________________________________________
✨ 特性
- 🔍 11源并行搜索 --OpenAlex,语义学者,PubMed,arXiv,带代码的论文,CrossRef,欧洲PMC,bioRxiv,DBLP,CORE,Unpaywall
- 🤖 自适应人工智能交付 --该代理跟踪您不断变化的研究兴趣,并随着时间的推移自动优化搜索关键字和推荐
- 📊 四维加权排名 --相关性×时效性×影响力×新颖性,完全可定制权重
- 👥 双AI盲审 --两名人工智能审稿人独立入围论文;首席审阅者综合最终的推送/溢出/丢弃决定(可选)
- 🧹 铲运机代表团 -将抽象提取卸载到低成本代理或API,以显著减少代币支出
- 🌐 个人论文库网站 --Astro+Vercel自动部署;每次推送后30秒内网站更新
- 📬 多平台交付 --电报/Discord/飞书/微信
- 📦 Zotero集成 --使用一个命令将纸张保存到Zotero
- 📝 黑曜石融合 --自动生成带有Zotero反向链接的纸质便条卡;支持摘要和模板模式
______________________________________________________________________
🚀 快速安装
uvx paper-distill-mcp就是这样。你的AI客户端会自动发现所有工具。基本论文搜索不需要API密钥。
不uv? →curl -LsSf https://astral.sh/uv/install.sh | sh或brew install uv
Other installation methods (pip / Homebrew / Docker / source)
pip:
pip install paper-distill-mcp自制:
brew tap Eclipse-Cj/tap
brew install paper-distill-mcpDocker:
docker run -i --rm ghcr.io/eclipse-cj/paper-distill-mcp来源(开发者):
git clone https://github.com/Eclipse-Cj/paper-distill-mcp.git
cd paper-distill-mcp
python3 -m venv .venv && .venv/bin/pip install --upgrade pip && .venv/bin/pip install -e .______________________________________________________________________
🔗 连接到AI客户端
克劳德桌面版
增添 claude_desktop_config.json (设置→ 开发者→ 编辑配置):
{
"mcpServers": {
"paper-distill": {
"command": "uvx",
"args": ["paper-distill-mcp"]
}
}
}克劳德代码
claude mcp add paper-distill -- uvx paper-distill-mcp或添加到 .mcp.json:
{
"mcpServers": {
"paper-distill": {
"command": "uvx",
"args": ["paper-distill-mcp"]
}
}
}Codex CLI(OpenAI)
增添 ~/.codex/config.toml:
[mcp_servers.paper-distill]
command = "uvx"
args = ["paper-distill-mcp"]Gemini CLI(谷歌)
增添 ~/.gemini/settings.json:
{
"mcpServers": {
"paper-distill": {
"command": "uvx",
"args": ["paper-distill-mcp"]
}
}
}龙虾
mcporter config add paper-distill --command uvx --scope home -- paper-distill-mcp
mcporter list # verify要删除: mcporter config remove paper-distillOpenClaw — install from source
git clone https://github.com/Eclipse-Cj/paper-distill-mcp.git ~/.openclaw/tools/paper-distill-mcp
cd ~/.openclaw/tools/paper-distill-mcp
uv venv .venv && uv pip install .
mcporter config add paper-distill \
--command ~/.openclaw/tools/paper-distill-mcp/.venv/bin/python3 \
--scope home \
-- -m mcp_server.server
mcporter list要删除: rm -rf ~/.openclaw/tools/paper-distill-mcp && mcporter config remove paper-distill其他客户端(Cursor、VS Code、Windsurf、Zed、Trae)
相同的JSON配置,不同的配置文件路径:
| 客户端 | 配置路径 |
|---|---|
| 克劳德桌面 | claude_desktop_config.json |
| Trae | 设置→ MCP → Add |
| 光标 | ~/.cursor/mcp.json |
| VS代码 | .vscode/mcp.json |
| 风帆冲浪 | ~/.codeium/windsurf/mcp_config.json |
| Zed | settings.json |
HTTP传输(远程/托管)
paper-distill-mcp --transport http --port 8765______________________________________________________________________
🎯 入门指南
连接客户后,告诉客服 “初始化纸张提取”。它会打电话的 setup() 并引导您通过:
- 研究课题 --用通俗易懂的语言描述你的兴趣;AI提取关键字
- 交付平台 --设置Telegram/Discord/Feishu/WeCom(可选)
- 纸质图书馆网站 --构建一个自动更新的个人论文库(可选)
- 铲运机代表 -指向低成本代理或API进行抽象提取(推荐)
- 偏好 --论文数量、排名权重、评审模式等。
- 首次搜索 —
pool_refresh()填充纸张池
所有设置都可以通过对话随时更新:
- “下次推8张纸”
- “添加新主题:RAG检索”
- “启用双AI盲审查”
- “增加近距权重”
______________________________________________________________________
⚙️ 配置参考
所有参数均通过以下方式设置 configure() 或 add_topic() --不需要手动编辑文件。
研究课题(add_topic / manage_topics)
| 参数 | 说明 | 默认值 |
|---|---|---|
key | 主题标识符(例如。 "llm-reasoning") | — |
label | 显示名称(例如。 "LLM Reasoning") | — |
keywords | 搜索关键字,推荐3-5个 | -- |
weight | 主题优先级0.0–1.0(更高=更多论文) | 1.0 |
blocked | 暂时禁用而不删除 | false |
纸张计数和审查(configure)
| 参数 | 选项 | 默认值 | 说明 |
|---|---|---|---|
paper_count_value | 任何整数 | 6 | 每次推送的论文数 |
paper_count_mode | "at_most" / "at_least" / "exactly" | "at_most" | 计数模式 |
picks_per_reviewer | 任何整数 | 5 | 每位审阅者的入围名单大小 |
review_mode | "single" / "dual" | "single" | 单AI或双盲评审 |
custom_focus | 自由文本 | "" | 自定义选择标准 |
💡 双盲评审:两名独立的人工智能评审员,每人入围论文;首席审阅者进行最后的推送/溢出/丢弃调用。未通过切割的纸张将保留到下一个循环,而不是丢弃。启用 configure(review_mode="dual").排名权重(configure)
控制纸张评分。四个权重之和应约为1.0。
| 参数 | 度量值 | 默认值 |
|---|---|---|
w_relevance | 关键字和主题匹配 | 0.55 |
w_recency | 这篇论文是最近发表的 | 0.20 |
w_impact | 引用计数(日志标准化) | 0.15 |
w_novelty | 这是否是第一次出现 | 0.10 |
示例:“优先考虑最近的论文”→ configure(w_recency=0.35, w_relevance=0.40)刮刀/摘要提取代表(configure)
摘要提取是令牌最密集的步骤。默认情况下,它在主代理上运行,但可以委托给更便宜的模型来大幅降低成本。
| 参数 | 值 | 说明 |
|---|---|---|
summarizer | "self" | 主代理处理提取(最昂贵) |
代理名称(例如。 "scraper") | 委托给低成本子代理 | |
| API URL | 调用外部LLM API(DeepSeek、Ollama等) |
🔧 强烈推荐:对于30多篇论文,前沿模型成本加起来很快。0.14美元/M代币模型同样可以处理提取。设置为 configure(summarizer="scraper").纸张池和扫描批次(configure)
| 参数 | 说明 | 默认值 |
|---|---|---|
scan_batches | 将纸张池分为N批,在N+1天内进行审查 | 2 (3天) |
pool_refresh() 搜索所有11个API并填充池。然后,该池被分成几批进行每日人工智能审查,避免了一次60多篇论文的转储。
scan_batches=2(默认):第一天复习上半部分,第二天复习下半部分,最后在第三天完成scan_batches=3:每天审查三分之一,第4天完成
检查完所有批处理后,池将耗尽,下一次运行将自动触发新的API搜索。
交付平台(环境变量)
| 平台 | 环境变量 | platform 价值 |
|---|---|---|
| 电报 | TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID | "telegram" |
| 不和谐 | DISCORD_WEBHOOK_URL | "discord" |
| 飞书 | FEISHU_WEBHOOK_URL | "feishu" |
| WeCom | WECOM_WEBHOOK_URL | "wecom" |
⚠️ 重要:在MCP客户端配置中设置环境变量env字段,而不是系统环境变量。否则send_push()无法访问webhook URL,AI可能会生成直接调用webhook的脚本,从而导致编码问题。
配置示例(WeCom+Claude桌面):
{
"mcpServers": {
"paper-distill": {
"command": "uvx",
"args": ["paper-distill-mcp"],
"env": {
"WECOM_WEBHOOK_URL": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY"
}
}
}
}编辑配置后重新启动MCP客户端。
推送消息格式(固定):
1. Paper Title (Year)
Journal Name
- One-sentence summary
- Why it was selected
https://doi.org/...纸质图书馆网站(configure)
个人论文库网站,每次推送都会自动更新。基于Astro+Vercel(免费版)构建。
| 参数 | 说明 |
|---|---|
site_deploy_hook | Vercel部署挂钩URL(触发站点重建) |
site_repo_path | 纸张库存储库的本地路径 |
设置步骤(AI代理将指导您):
- 从以下位置创建repo 纸库模板
- 连接到Vercel并部署
- 在Vercel中创建部署挂钩(设置>Git>部署挂钩)
- 告诉代理钩子URL→ 通过保存
configure(site_deploy_hook=...)
设置后,每 finalize_review() 调用将摘要JSON推送到站点仓库,并触发Vercel重建。该网站将在约30秒内更新。
Zotero集成
只需一个命令即可将纸张保存到Zotero。需要Zotero帐户和API密钥。
获取凭据:
- API密钥首选 zotero.org/settings/keys/new → 勾选“允许库访问”+“允许写访问”→ 保存密钥
- 图书馆ID首选 zotero.org/settings/keys → 您的用户ID显示在顶部
添加到MCP客户端配置:
{
"mcpServers": {
"paper-distill": {
"command": "uvx",
"args": ["paper-distill-mcp"],
"env": {
"ZOTERO_LIBRARY_ID": "your userID",
"ZOTERO_API_KEY": "your API key"
}
}
}
}设置后,回复 collect 1 3 推送后,将论文1和3保存到Zotero,自动分类到每个主题的文件夹中。
所有环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
OPENALEX_EMAIL | 增加OpenAlex API费率限制;也用于Unpaywall | 可选 |
CORE_API_KEY | CORE API密钥(免费注册) | 可选 |
DEEPSEEK_API_KEY | 通过DeepSeek增强搜索 | 可选 |
ZOTERO_LIBRARY_ID + ZOTERO_API_KEY | 将纸张保存到Zotero | 可选 |
SITE_URL | 纸库网站URL | 可选 |
PAPER_DISTILL_DATA_DIR | 数据目录 | 默认: ~/.paper-distill/ |
______________________________________________________________________
🛠️ 工具(共19个)
设置和配置
| 工具 | 说明 |
|---|---|
setup() | 第一个电话 --检测新安装并返回引导初始化指令 |
add_topic(key, label, keywords) | 添加带有搜索关键字的研究主题 |
configure(...) | 更新任何设置:纸张计数、排名权重、审核模式等。 |
搜索与整理
| 工具 | 说明 |
|---|---|
search_papers(query) | 跨11个来源的并行搜索 |
rank_papers(papers) | 四维加权评分 |
filter_duplicates(papers) | 对以前推送的文件进行重复删除 |
日常流水线(纸池模式)
| 工具 | 说明 |
|---|---|
pool_refresh(topic?) | 搜索所有11个API并构建论文池 |
prepare_summarize(custom_focus?) | 生成AI摘要提取提示 |
prepare_review(dual?) | 生成审核提示——AI做出推送/溢出/丢弃决策 |
finalize_review(selections) | 处理人工智能决策、更新池、输出推送消息 |
pool_status() | 池状态:计数、扫描日期、是否耗尽 |
collect(paper_indices) | 将纸张保存到Zotero+生成黑曜石笔记 |
会话和输出
| 工具 | 说明 |
|---|---|
init_session | 检测交付平台并加载研究上下文 |
load_session_context | 加载历史研究上下文 |
generate_digest(papers, date) | 生成输出文件(JSONL、站点、黑曜石) |
send_push(date, papers, platform) | 发送到Telegram/Discord/Feishu/WeCom |
collect_to_zotero(paper_ids) | 通过DOI保存到Zotero |
manage_topics(action, topic) | 列出/禁用/启用/重新加权主题 |
ingest_research_context(text) | 跨会议继承研究背景 |
______________________________________________________________________
🏗️ 建筑
AI client (Claude Code / Codex CLI / Gemini CLI / Cursor / ...)
↓ MCP (stdio or HTTP)
paper-distill-mcp
├── search/ — 11-source academic search (with OA full-text enrichment)
├── curate/ — scoring + deduplication
├── generate/ — output (JSONL, Obsidian, site)
├── bot/ — push formatting (4 platforms)
└── integrations/ — Zotero API服务器内部不调用任何LLM。搜索、排名和重复数据删除是纯数据操作。智能来自你的AI客户端。
______________________________________________________________________
📖 付费论文和开放获取
系统默认搜索所有论文(包括订阅期刊),并通过以下方式最大限度地实现免费全文访问:
- 核心 --世界上最大的OA聚合器(2亿多篇论文),涵盖了来自机构存储库的作者自存档版本
- 未付费墙 --合并结果后,通过DOI自动查找无法律限制的PDF(预印本、绿色OA、作者版本)
对于没有免费版本的论文,系统会返回DOI链接。如果你有机构VPN访问权限,在连接时点击DOI链接通常就足够了——出版商通过IP识别你的机构。
open_access_url 优先级:arXiv>CORE>Unpaywall>OpenAlex>语义学者>带代码的论文______________________________________________________________________
❓ 常见问题解答
审查阶段暂停/30多分钟无响应
症状:由生成的审核提示 prepare_review() 导致AI客户端挂起或超时。
原因:池中候选论文太多(例如80-100篇),导致提示超出客户端的上下文窗口或输出令牌限制。VS Code Copilot和一些IDE插件的上下文容量有限。
解决方案 (选一个):
- 增加
scan_batches(推荐)--将池拆分为更多批:
configure(scan_batches=5)- 减少主题或关键字 --主题更少→ 更少的搜索结果→ 较小的游泳池。
- 切换到更高上下文的客户端 --Claude Code(200k)、Claude Desktop(20k)或游标处理长提示更好。
安装错误: Requires-Python >=3.10
Python 3.10+是必需的。macOS默认附带Python 3.9——安装更新版本 brew install python@3.13 或使用 uv.
Docker镜像无法拉取(中国大陆)
ghcr.io 在中国大陆被封锁。使用pip和中文镜像:
pip install paper-distill-mcp -i https://pypi.tuna.tsinghua.edu.cn/simple______________________________________________________________________
🧑💻 发展
git clone https://github.com/Eclipse-Cj/paper-distill-mcp.git
cd paper-distill-mcp
python3 -m venv .venv && .venv/bin/pip install --upgrade pip && .venv/bin/pip install -e .
python tests/test_mcp_smoke.py # 9 tests, no network required______________________________________________________________________
📄 许可证
该项目已获得许可 AGPL-3.0。参见 许可证 了解详情。
禁止未经授权的商业使用。 如需商业许可查询,请联系作者。
______________________________________________________________________
📬 联系
- 电子邮件:vertex.cj@gmail.com
- GitHub问题: Eclipse Cj/论文摘要mcp/issues
欢迎提交Bug报告和功能请求。该项目正处于积极的早期开发阶段——感谢您的耐心和支持🙏
