关于 ScholarFetch
ScholarFetch 是面向研究者和基于 MCP 的 Agent 的学术研究环境。它将终端 CLI 与 MCP 服务结合,用于搜索学术来源、追踪引用、整理论文并导出研究语料。
主要功能
- 01并行搜索多个学术引擎
- 02解析作者并查找其论文
- 03浏览引用和相关作者
- 04获取摘要及可用全文
- 05在会话阅读列表中保存论文
- 06导出引文、BibTeX 和语料
适用场景
- 01从主题或 DOI 开始探索文献
- 02追踪引用和作者关联
- 03整理专题阅读列表
- 04导出语料供后续综合分析
MCP 相关
提供经典 stdio 服务及支持 stdio、SSE 或 streamable HTTP 的 FastMCP 服务。MCP Agent 可搜索和追踪论文、保存会话阅读列表并导出内容。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://laibniz-scholarfetch-web.hf.space/mcp/claude mcp add --transport http laibniz-scholarfetch https://laibniz-scholarfetch-web.hf.space/mcp/{"mcpServers":{"laibniz-scholarfetch":{"type":"http","url":"https://laibniz-scholarfetch-web.hf.space/mcp/"}}}在 Cursor 中打开{"servers":{"laibniz-scholarfetch":{"type":"http","url":"https://laibniz-scholarfetch-web.hf.space/mcp/"}}}在 VS Code 中打开{"mcpServers":{"laibniz-scholarfetch":{"type":"http","url":"https://laibniz-scholarfetch-web.hf.space/mcp/"}}}{"mcpServers":{"laibniz-scholarfetch":{"serverUrl":"https://laibniz-scholarfetch-web.hf.space/mcp/"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
12| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | |
| query | string | 是 | |
| engines | string | 否 |
详细介绍
ScholarFetch
ScholarFetch 是一个多引擎学术研究环境,适用于:
- 以终端为先的文献探索
- 由 MCP 驱动的 Agent 工作流
- 构建精选阅读清单和可导出的研究语料库
它集成了:
- 面向用户的丰富交互式 CLI
- 经典 MCP 服务(stdio)
- FastMCP 服务(
stdio、sse、streamable-http)
核心思路很简单:从关键词、DOI 或作者入手,浏览论文及其参考文献,查看摘要和全文,保存重要内容,然后导出精简语料库以供综合分析。
ScholarFetch 的功能
- 并行搜索多个学术引擎
- 消解有歧义的作者身份,并扩展作者论文列表
- 将参考文献作为一等研究节点进行浏览
- 获取摘要,以及可用时获取机器可读全文
- 在交互式研究会话中跟踪已保存的论文集
- 导出引文、摘要、BibTeX 或全文语料库
- 向 MCP Agent 提供相同的研究工作流
- 在一个 MCP 会话中维护有状态的已保存论文集
引擎
- Elsevier(Scopus / Abstract / Article retrieval)
- OpenAlex
- Crossref
- arXiv
- Europe PMC
- Springer Nature(元数据 + 开放获取)
- Semantic Scholar(DOI 补充信息路径)
安装
git clone https://github.com/laibniz/scholarfetch.git
cd scholarfetch
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
scholarfetch
控制台脚本:
scholarfetchscholarfetch-mcpscholarfetch-fastmcp
替代方式:
python3 scholarfetch.py
凭据
ScholarFetch 在服务端 / 客户端从环境变量加载提供商凭据。
默认环境文件:
.scholarfetch.env
常用变量:
ELSEVIER_API_KEY=...
ELSEVIER_INSTTOKEN=...
SPRINGER_META_API_KEY=...
SPRINGER_OPENACCESS_API_KEY=...
注意:
ELSEVIER_INSTTOKEN是可选的- 仍受提供商授权范围和速率限制约束
- MCP 工具不接受在工具参数中传入 API 密钥
CLI 研究工作流
ScholarFetch CLI 专为研究浏览而设计。
典型流程:
- 从主题、DOI 或作者入手。
- 查看论文。
- 阅读摘要或全文。
- 扩展参考文献。
- 跳转至相关作者。
- 保存有价值的论文。
- 导出语料库,以供后续工作使用。
示例:
/search graph neural networks
/author Albert Einstein
/papers 1 has:abstract
/article 1
/refs 1
/saved
/export fulltext dummy corpus.txt
CLI 功能
- 支持树状导航的交互式选择器
- 显示当前位置的面包屑导航
- 提供
OPEN、ABSTRACT、TEXT、REFS和AUTHOR操作栏 - 按
Backspace返回上级节点 - 按
Esc返回提示词 - 在论文列表或参考文献列表中按
S保存论文 - 按
X从已保存列表中移除论文 - 现在可在论文中使用
AUTHOR操作来选择:- 单个作者
ALL AUTHORS
- 参考文献列表的操作方式与论文列表相同:
openabstracttextrefsauthor
- 自动提示论文可用性:
- 摘要是否可用
- 全文是否可用
- 为耗时的切换操作提供进度反馈
- 支持中断参考文献预览生成,并保留部分结果
CLI 核心命令
/search <keywords|doi|person name>/author <name>/papers <author name|index> [filters]/doi <doi>/open <index>/abstract <doi|index>/article <doi|index>/refs <doi|index>/ref <index>/saved/export [format style path ...]/import [path]/pick [mode]/config/engines/help
论文筛选条件
与 /papers 搭配使用:
year>=YYYY、year<=YYYY、year=YYYYhas:abstract、has:doi、has:pdf、has:fulltextvenue:<text>、title:<text>、doi:<text>
示例:
/papers 1 year>=2020 has:abstract
/papers 1 has:fulltext
/papers andrea de mauro venue:marketing
导出模式
ScholarFetch 支持从已保存的论文集中导出为四种模式。
bib- 为引文管理器和书目工具导出 BibTeX
citations- 仅导出引文,格式可选
harvard、apa或ieee
- 仅导出引文,格式可选
abstracts- 为每篇已保存的论文导出元数据 + 摘要
fulltext- 导出元数据 + 摘要 + 可用时的全文
- 可选包含参考文献
因此,ScholarFetch 可用作构建语料库的工具,为下游综合分析 Agent 提供语料。
MCP 服务
ScholarFetch 通过 MCP 提供相同的研究模型。
模式:
- 经典 MCP(stdio):
python3 scholarfetch_mcp.py - FastMCP stdio:
python3 scholarfetch_fastmcp.py --transport stdio - FastMCP SSE:
python3 scholarfetch_fastmcp.py --transport sse --host 127.0.0.1 --port 8000 - FastMCP 可流式传输的 HTTP:
python3 scholarfetch_fastmcp.py --transport streamable-http --host 127.0.0.1 --port 8000 --http-path /mcp
验证:
python3 scholarfetch_mcp.py --self-test
python3 scholarfetch_fastmcp.py --self-test
公开演示端点:
- Web 界面:https://huggingface.co/spaces/Laibniz/ScholarFetch_Web
- 公开 MCP 端点:https://laibniz-scholarfetch-web.hf.space/mcp/
- MCP Registry 条目:
io.github.laibniz/scholarfetch
MCP 研究模型
MCP 服务专为 Agent 工作流设计,而不仅仅是处理一次性调用。
Agent 可以:
- 搜索论文
- 确定作者身份
- 扩展到作者的论文
- 阅读摘要/全文
- 扩展参考文献
- 将有潜力的论文保存到命名的内存阅读列表中
- 将阅读列表导出为:
- 引文
- 摘要
- BibTeX
- 全文语料库
这样,Agent 就能在一个 MCP 会话中构建一个聚焦的研究集,然后将导出内容交给另一个综合步骤。
详细的工具模型请参阅 MCP_SERVER.md。
仓库文件
scholarfetch.py:CLI 入口点scholarfetch_cli.py:核心 CLI 和检索逻辑scholarfetch_mcp.py:经典 MCP 服务scholarfetch_fastmcp.py:FastMCP 服务MCP_SERVER.md:MCP 使用指南AGENTS.md:面向 Agent 的工作流指南SKILL.md:结构化研究技能指南SKILLS.md:面向 Agent 的技能文档索引CONTRIBUTING.md:贡献者须知
面向 Agent
如果你在兼容 MCP 的系统中运行 ScholarFetch,请阅读:
这些文档说明了如何将 ScholarFetch 用作文献研究环境,而不是简单的搜索 API。
贡献
请参阅 CONTRIBUTING.md。
安全
请参阅 SECURITY.md。
许可证
MIT 许可证。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。