scholar-search-mcp
让AI助手直接搜索论文、追踪引用图谱、下载LaTeX源码的学术研究MCP工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让AI助手直接搜索论文、追踪引用图谱、下载LaTeX源码的学术研究MCP工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
凌晨两点,你正在为明天的组会准备材料,需要快速了解某个研究方向近三年的进展。传统的做法是打开 Semantic Scholar、输入关键词、一个个点开论文、复制摘要——重复、机械、效率低下。而如果你让 Claude 或 Cursor 中的 AI 助手直接帮你完成这一切呢?
Scholar Search MCP 正是为此而生。它是一个基于 Model Context Protocol(MCP)的学术论文搜索服务器,将 Semantic Scholar 和 arXiv 两大论文数据库整合为一个统一工具,让 AI 助手(如 Claude Code、Cursor)能够直接帮你搜索论文、查看引用关系、下载 LaTeX 源码,甚至构建作者关系图谱。它不是又一个需要你手动操作的网站,而是一个可以被 AI 程序调用的「学术研究 API 大礼包」。## 项目背景与核心价值
当前主流的论文数据库(如 Semantic Scholar、arXiv、Google Scholar)各有优劣:Semantic Scholar 提供丰富的元数据(引用数、高影响力论文标记、作者 h-index),但不支持直接下载源码;arXiv 有海量预印本和 LaTeX 源码,但搜索体验较为基础。更重要的是,这些工具都是为人类设计的——AI 助手无法直接调用它们的网页界面。
Scholar Search MCP 解决了这个问题。它将两个数据源统一封装为 9 个标准化 MCP 工具函数,AI 助手只需调用工具名称即可完成复杂的学术研究任务,无需理解底层 API 的细节。
一个具体的例子:当你需要写一篇综述论文时,可以让 AI 助手依次执行:
search_papers 搜索关键词,获取相关论文列表(Semantic Scholar + arXiv 并行搜索、自动去重)get_paper_citations 获取某篇关键论文的引用列表get_author_papers 查看特定作者的所有论文download_arxiv_source 下载 arXiv 论文的 LaTeX 源码,直接分析其方法实现整个过程 AI 助手自动完成,你只需描述研究目标。这将文献调研的时间从「小时级」压缩到「分钟级」。## 核心功能详解
这是最核心的工具函数。当你输入一个查询时,search_papers 会同时向 Semantic Scholar 和 arXiv 发请求,两个数据源的搜索结果按标题归一化去重后合并返回。这意味着你无需在多个平台重复搜索,一条查询搞定两个数据库。
去重逻辑基于标题的归一化处理(大小写不敏感、空白符压缩),保证了即使同一篇论文在两个平台有细微标题差异也不会被重复列出。合并时优先保留 Semantic Scholar 的结果(因为其元数据更丰富,包含引用数、高影响力标记等)。
获取单篇论文的详细信息,包括标题、摘要、作者列表、年份、发表venue、引用数、参考文献数、高影响力引用数等。特别实用的是 get_paper_citations 和 get_paper_references——前者找出「哪些论文引用了这篇」,后者找出「这篇引用了哪些」。两者结合就能构建出一篇论文的完整引用图谱,对于追踪研究脉络极为高效。
通过作者 ID 查询其个人主页、所属机构、h-index、论文总数等字段,还能批量获取该作者的所有论文列表。这在追踪某个研究团队的工作时特别有用——比如你想了解斯坦福 NLP 实验室近期在做什么,只需找到负责人的作者 ID即可。
给定一篇论文,返回语义相似的高相关论文推荐。这是基于 Semantic Scholar 内部的协同过滤/语义相似度算法实现的,类似于「你可能也喜欢」的功能,对于发现新工作、扩大研究视野很有帮助。
batch_get_papers:一次最多获取 500 篇论文的详情,适合大规模文献调研download_arxiv_source:下载 arXiv 论文的 LaTeX 源码压缩包(tar.gz),自动解压到指定目录,并做了路径遍历安全防护——这是代码安全方面值得称赞的细节SEMANTIC_SCHOLAR_API_KEY:可选,提供后可突破公共速率限制(无 key 每秒 1 请求,有 key 每秒 10 请求)SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR / SCHOLAR_SEARCH_ENABLE_ARXIV:分别开关两个数据源SCHOLAR_SEARCH_CACHE_TTL_SECONDS:缓存有效期,默认 24 小时,避免重复查询浪费 API 配额SCHOLAR_ARXIV_SOURCE_DIR:arXiv 源码下载目录## 技术架构与代码分析Scholar Search MCP 采用异步 MCP Server架构,核心依赖极简:mcp(MCP 协议实现)、httpx(异步 HTTP 客户端)、diskcache(本地缓存)。整个项目没有引入重型 ML 依赖,是真正轻量的「AI 工具的工具」。
核心代码约 800 行(server.py),结构清晰:
scholar_search_mcp/
├── __init__.py # 版本号 + 导出 main
├── __main__.py # 入口点
└── server.py # 全部逻辑(约800行)
download_arxiv_source 函数中使用 _safe_extract_tar_gz 提取压缩包时,代码显式检查了 dest_path.relative_to(dest)——如果提取后的文件路径逃脱了目标目录(通过 ../../etc/passwd 等方式),Python 会抛出 ValueError,整个操作中止。这在 Python 3.11.4+ 或 3.12+ 还额外启用了 filter="data" 机制,进一步减少解压风险。这是代码中非常值得关注的安全实践。
作者做了大量工作确保 Semantic Scholar 和 arXiv 返回的数据格式兼容:
paperId、title、abstract、authors、year 等)None 填充,合并时按优先级填充source 和 sources 字段记录数据来源,保证可溯源| 维度 | 评价 |
|---|---|
| 类型注解 | 完整,所有函数签名均有类型标注 |
| 错误处理 | 异步异常捕获、HTTP 状态码处理、XML 解析容错 |
| 缓存策略 | diskcache 持久化缓存,避免重复 API 调用 |
| 测试覆盖 | 未提供测试文件,但核心逻辑有注释说明预期行为 |
| 文档质量 | README 结构清晰,安装步骤详细,环境变量说明完整 |
代码质量评分:85/100。主要扣分项为缺少自动化测试和部分边缘情况的单元验证,但整体代码可读性极佳,异步并发设计合理,注释充分。## 部署与使用
项目通过 pyproject.toml 打包,支持两种安装方式:
# 方式1:pip 安装(推荐)
pip install scholar-search-mcp
# 方式2:源码安装
git clone https://github.com/Silung/scholar-search-mcp
cd scholar-search-mcp
pip install -e .
安装后配置 Claude Desktop 或 Cursor 的 MCP 设置,填入服务器命令即可。arXiv 搜索无需 API key,完全免费使用;Semantic Scholar 搜索无需 key 也能用(速率受限),有 key 体验更佳。
| 变量 | 默认值 | 说明 |
|---|---|---|
SEMANTIC_SCHOLAR_API_KEY | 空 | 突破速率限制(可选) |
SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR | true | 开关 Semantic Scholar |
SCHOLAR_SEARCH_ENABLE_ARXIV | true | 开关 arXiv |
SCHOLAR_SEARCH_CACHE_TTL_SECONDS | 86400 | 缓存有效期(秒) |
SCHOLAR_SEARCH_CACHE_DIR | 系统临时目录 | 缓存存储路径 |
SCHOLAR_ARXIV_SOURCE_DIR | 临时目录 | arXiv 源码下载目录 |
search_papers 获取候选列表,再用 get_paper_citations 追踪高影响力工作get_paper_recommendations 发现核心论文,再逐层展开引用图download_arxiv_source 获取 LaTeX 源码,直接分析算法实现细节Scholar Search MCP 代表了 MCP 生态在垂直领域工具方向的典型实践。自 Anthropic 推出 MCP 协议以来,社区已陆续构建了文件系统、数据库、Git 版本控制等多种 MCP 服务器,而学术论文搜索是其中一个高频刚需的场景。
核心价值在于将人类的研究工作流转化为 AI 可编程的原子操作。过去 AI 助手无法访问实时学术数据,现在通过 MCP 的工具调用机制,AI 可以自主执行多步骤研究任务。这种「AI 驱动的研究自动化」正是 AI Agent 落地的关键一步。
本分析基于 GitHub 仓库 v0.1.3 版本,代码分析基于 server.py(约 800 行 Python 代码)。
项目作者头像: 
图注:Scholar Search MCP 通过 MCP 协议将两个主流学术数据库(Semantic Scholar + arXiv)封装为 AI 助手可调用的标准化工具集,实现从论文检索到源码获取的完整研究工作流自动化。