mcpField
S
Scholar MCP

Scholar MCP

本地服务
github.com/Liyux3搜索与检索5今天更新

关于 Scholar MCP

Scholar MCP 是面向 Agent 的学术研究服务,将联邦论文搜索与引文探索、论文阅读和本地持久化文库结合起来。其工具把论文发现与收藏、笔记、PDF 和文库导出串联起来。

主要功能

  1. 01联邦学术论文搜索
  2. 02引文遍历与论文图谱
  3. 03读取论文文本、表格和图
  4. 04持久化 SQLite 论文库
  5. 05PDF 下载与文库连接器

适用场景

  1. 01根据研究问题查找论文
  2. 02追踪引文和相关研究
  3. 03在本地保存论文、笔记和 PDF
  4. 04将文集导出到 Obsidian 或 Zotero

MCP 相关

通过 stdio 或 Streamable HTTP 向 MCP 客户端提供类型化研究工具和状态资源。核心与研究配置涵盖检索、论文查看、引文图谱和文库操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"liyux3-scholar": {
"command": "uvx",
"args": [
"scholar-mcp"
],
"env": {
"SCHOLAR_DATA_DIR": "<SCHOLAR_DATA_DIR>",
"SCHOLAR_MCP_EXTENSIONS": "<SCHOLAR_MCP_EXTENSIONS>",
"S2_API_KEY": "<S2_API_KEY>",
"OPENALEX_API_KEY": "<OPENALEX_API_KEY>",
"CORE_API_KEY": "<CORE_API_KEY>",
"SCOPUS_API_KEY": "<SCOPUS_API_KEY>",
"DASHSCOPE_API_KEY": "<DASHSCOPE_API_KEY>",
"DASHSCOPE_HTTP_BASE_URL": "<DASHSCOPE_HTTP_BASE_URL>",
"SCHOLAR_RERANK_MODEL": "<SCHOLAR_RERANK_MODEL>",
"SCHOLAR_RERANK_URL": "<SCHOLAR_RERANK_URL>",
"SCHOLAR_RERANK_API_KEY": "<SCHOLAR_RERANK_API_KEY>",
"EXA_API_KEY": "<EXA_API_KEY>",
"ZOTERO_API_KEY": "<ZOTERO_API_KEY>",
"ZOTERO_LIBRARY_ID": "<ZOTERO_LIBRARY_ID>",
"NOTION_API_KEY": "<NOTION_API_KEY>",
"NOTION_DATA_SOURCE_ID": "<NOTION_DATA_SOURCE_ID>"
}
}
}
}
启动命令uvx scholar-mcp
需要配置的环境变量
SCHOLAR_DATA_DIR
SCHOLAR_MCP_EXTENSIONS
S2_API_KEY密钥
OPENALEX_API_KEY密钥
CORE_API_KEY密钥
SCOPUS_API_KEY密钥
DASHSCOPE_API_KEY密钥
DASHSCOPE_HTTP_BASE_URLAlibaba workspace API host or /api/v1 base URL.
SCHOLAR_RERANK_MODELAlibaba or custom reranker model name.
SCHOLAR_RERANK_URLFull custom rerank endpoint; overrides Alibaba routing.
SCHOLAR_RERANK_API_KEY密钥
EXA_API_KEY密钥
ZOTERO_API_KEY密钥
ZOTERO_LIBRARY_ID
NOTION_API_KEY密钥
NOTION_DATA_SOURCE_ID

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypischolar-mcp0.8.5

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
sortenum否最终排序的强制顺序。通常使用 relevance;citations 和 date 会替代重排器的排序结果。relevance | citations | date
yearstring否按年份或年份范围筛选(例如,"2023"、"2020-2024")
debugboolean否包含每个来源的延迟、来源信息和内部排名诊断信息。
limitinteger否返回结果的最大数量(1-100,默认 10)
querystring是描述要查找的内容。标题、独特短语和自然语言问题均可使用。
venuestring否按发表场所筛选(例如,"NeurIPS"、"Nature")
intentenum否用于重排和扩展查询的软相关性侧重点。通常使用 balanced;其他选项包括 foundational、recent、survey、method 和 dataset。balanced | foundational | recent | survey | method | dataset
paper_typesstring否逗号分隔的类型(例如,"JournalArticle,Conference,Review,Book,Dataset")。默认:所有类型。
min_citationsinteger否最低引用次数筛选(默认 0)
fields_of_studystring否逗号分隔的研究领域(例如,"Computer Science,Mathematics")
open_access_onlyboolean否仅返回可免费获取 PDF 的论文

详细介绍

Scholar MCP

在 VS Code 中安装 添加到 Cursor 添加到 Kiro MCP 注册表

寻找论文。追踪证据。构建领域。

PyPI Python 3.10+ Apache 2.0 兼容 MCP

Scholar MCP 可根据自然语言问题查找论文、追踪引用和相关研究,并打开原文。您可以将选定的论文和笔记保存在本地文献库中,让研究成果在不同会话间延续。

快速演示

Scholar MCP 快速演示

一次连贯的 Agent 工作流:search_papers → build_paper_graph → paper_info + read_paper → paper_library → 文献库连接器。

工作原理

Scholar MCP 检索流程 Scholar MCP 运行时架构

Agent 通过 stdio 或 Streamable HTTP 调用类型化 MCP 工具。Scholar 返回简洁文本和结构化数据,同时由持久化的 SQLite 文献库支持 FTS5 搜索、PDF 附件、JSONL 快照,以及 Obsidian、Zotero 和 Notion 连接器。

快速开始

Claude Code:

claude mcp add scholar -- uvx --python 3.12 \
  --find-links https://github.com/Liyux3/scholar-mcp/releases/download/v0.8.5/wheel-index.html \
  --from 'scholar-mcp[rerank]==0.8.5' scholar-mcp

Claude Desktop 或任何 stdio MCP 客户端:

{
  "mcpServers": {
    "scholar": {
      "command": "uvx",
      "args": [
        "--python", "3.12",
        "--find-links", "https://github.com/Liyux3/scholar-mcp/releases/download/v0.8.5/wheel-index.html",
        "--from", "scholar-mcp[rerank]==0.8.5", "scholar-mcp"
      ]
    }
  }
}

直接运行的服务提供精简核心配置。请安装 uv;它会自动准备 Python 3.12 和 CPU 重排器。可选的源密钥可解锁更广的覆盖范围和更高的吞吐量。macOS 桌面应用包内含 Python 和依赖项;便携式启动器也能在未安装 uv 的机器上运行。

仓库还附带一个研究插件,包含引文图谱、本地论文库和 Deep Research 技能:

# Codex
codex plugin marketplace add Liyux3/scholar-mcp
codex plugin add scholar-mcp@scholar-mcp

# Claude Code
claude plugin marketplace add Liyux3/scholar-mcp
claude plugin install scholar-mcp@scholar-mcp

同一插件目录遵循 Agent Plugins 标准,可用于 Cursor、Pi 及兼容的运行环境。OpenCode 可以将 uvx scholar-mcp 作为本地 MCP 启动;Pi 可以使用 pi-mcp-adapter。

发布制品还包括 PyPI 包、多架构 GHCR 镜像和 macOS MCPB 包。请参阅完整的分发矩阵。

工具

配置工具职责
核心search_papers多源检索、筛选、重排和引文发现
核心paper_info通过一次选择性调用获取论文详情、引文和参考文献
核心recommend_papers通过语义关联和引文关联查找相关研究
核心search_authors作者档案、所属机构、论文数量和 h 指数
核心read_paper阅读论文正文、表格和选定图表;默认读取第 1-10 页
核心download_paper保存 PDF 并将其编入文集索引
研究build_paper_graph有界引文图谱,包含 PageRank、桥接关系、节点、边和 Mermaid
研究paper_library文集、全文搜索、笔记、标签、PDF 和 Markdown 知识库导出

scholar://status 会报告数据源的可用性和实际使用的重排器,不会占用工具界面。工具响应保留简洁的 YAML 文本,同时也提供结构化 MCP 数据。

捆绑的 Deep Research 技能可将搜索、论文检查、图谱遍历和选定的文库写入操作整合为一份动态领域图谱。

检索

渠道数据源查询形式和作用
语义OpenAlex semantic、arxiv.gg、可选的 Exa完整的自然语言问题
全文Semantic Scholar 摘要片段搜索从开放获取论文中匹配段落
广泛元数据OpenAlex、Semantic Scholar、Crossref、可选的 Scopus身份信息、覆盖范围、引文和筛选条件
预印本与会议arXiv、OpenReview最新研究和会议记录
生物医学PubMed、Europe PMC医学、生物学和全文仓库
领域与仓库DBLP、INSPIRE-HEP、DOAJ、CORE、OpenAIRE、HAL计算机科学、物理学、开放期刊和仓库
网络回退Google ScholarHTTP 搜索,支持可选的自动会话恢复

关键词 API 会收到经过测算的、针对特定数据源的查询预算。语义端点会保留原始问题。每个数据源都会独立为同一个规范化证据池提供内容。 结果会根据 DOI、arXiv、Semantic Scholar、OpenAlex、PubMed 和 OpenReview 标识进行规范化。重复记录会补充互补元数据和独立来源证据,而不是重复显示多次。

配置后,DashScope qwen3-rerank 会作为主要重排器。安装 rerank extra,以启用 FlashRank 本地回退:uvx --from 'scholar-mcp[rerank]' scholar-mcp。容器和 MCPB 包含此 extra;本地模型会在首次使用时下载,并保存在应用数据目录中。搜索会先对初始匹配结果排序,再从最相关的论文中追踪关联,最后对合并后的结果重新排序。元数据补全与来源检索并行进行;对于大型候选池,会分批评分,并遵守模型服务的文档数和令牌限制。

使用自己的重排器

对于 Alibaba 工作区或其他区域,请将 DASHSCOPE_HTTP_BASE_URL 设置为控制台中的 API Host(带 https://),或其 /api/v1 基址。使用该区域的 DASHSCOPE_API_KEY。例如:

DASHSCOPE_HTTP_BASE_URL=https://<workspace-id>.cn-beijing.maas.aliyuncs.com/api/v1
SCHOLAR_RERANK_MODEL=qwen3-rerank

默认值仍为 qwen3-rerank。SCHOLAR_RERANK_MODEL 还可选择 qwen3.7-text-rerank、gte-rerank-v2 或 qwen3-vl-rerank 的文本输入,具体取决于工作区是否提供这些模型。Scholar 会使用相应的 Alibaba 请求和响应格式。未设置基址的现有安装仍使用北京共享端点。Alibaba 建议使用工作区专用端点,并表示共享域名在 2026 年 9 月 30 日之后将不再获得新功能。API 密钥和模型可用性因区域而异。

对于其他提供商或可自托管模型,请将 SCHOLAR_RERANK_URL 设置为完整的重排端点,将 SCHOLAR_RERANK_MODEL 设置为其模型名称,并按需设置 SCHOLAR_RERANK_API_KEY。此显式端点的优先级高于 Alibaba 配置,且仅使用其自身凭据。兼容的端点使用 Cohere 风格的契约:

Request:  query, documents, top_n, model
Response: results: [{index, relevance_score}]

此外,也支持 Alibaba 原生 /api/v1/services/rerank/text-rerank/text-rerank 端点,该端点使用 input/parameters 请求和 output.results 响应。两种格式共用相同的分批处理、分数验证和本地回退机制。无需安装提供商 SDK。

分数必须是有限值且位于 [0, 1] 范围内,并且每个查询与文档的分数都必须可跨批次比较。原始 logits 需要在服务后端进行特定于模型的归一化。更换模型可能会改变引文和时效性排序所占的权重。自定义端点会取代 DashScope,且只回退到本地模型。将 SCHOLAR_RERANK_BATCH_SIZE 设置为每个请求可处理的文档数(默认值为 500)。较大的候选池会分批评分,不会在达到此上限时丢弃。使用 scholar://status 或 debug=true 查看实际使用的提供商/模型及任何回退原因;搜索成功本身并不能证明云端重排器已成功运行。

常规响应以论文为主,并会在可用性影响搜索时附上简短警告。debug=true 会添加 _meta,其中包含来源覆盖情况、实际使用的重排器、各来源的结果数、延迟、来源信息和详细错误。并行搜索的基础时限为 30 秒,可通过 SCHOLAR_SOURCE_BUDGET_S 配置。Google Scholar 分页最多可将时限延长至 120 秒,以保留已完成的多页结果。

Google Scholar 会话恢复 安装 Chrome、Edge 或 Chromium 以及 ffmpeg 后,在快速入门配置中选择 `scholar-mcp[google,rerank]==0.8.5`,即可启用自动验证恢复。短暂启动的浏览器会建立会话,之后的搜索和分页由普通 HTTP 处理。它使用全新的浏览器配置文件,绝不会使用你的个人浏览器配置文件;音频识别使用在线服务,而非本地模型。自动模式会先尝试无头模式;在 macOS 上,如果验证挑战未通过,可以重试使用原生浏览器引擎,启动时不显示窗口,页面也保持隐藏。对于相应路由,它会重用上次成功使用的静默模式。页面就绪后,恢复流程便会继续,不会固定等待数秒。

会话会私密存储在 <data>/sessions/ 下,并与配置的代理绑定。冷启动搜索最多可能等待 150 秒,以供有时限的恢复工作进程完成后续搜索。热会话使用正常的时间预算。设置 SCHOLAR_GOOGLE_RECOVERY=off 可禁用恢复,设置为 headless 可强制严格使用无头模式,或设置为 headed 以明确允许显示验证窗口。SCHOLAR_GOOGLE_BROWSER 用于指定标准安装位置之外的浏览器可执行文件。服务启动时不会下载浏览器。如果分页中断,已完成的页面仍可使用,响应也会报告部分覆盖情况。恢复失败后会进入退避状态,同时保留上次验证成功的会话。

检索质量测量

LitSearch 质量对比

在冻结的匹配 LitSearch 测试中,与 Exa research-paper search 相比,Scholar 的 前五项查询命中率高出 10 个百分点,前二十项高出 6 个百分点。

系统Hit@5Hit@10Hit@20MRR
Scholar0.620.680.700.442
Exa research paper0.520.580.640.435
BM25 title + abstract0.460.460.560.335

Scholar 找到了 Exa 未命中的 9 个前五项结果;Exa 找到了 Scholar 未命中的 4 个。

基准测试方案

Hit@k 衡量前 k 个结果中至少包含一篇真实标注论文的查询所占比例。Recall@k 则衡量每个查询找回的相关论文占全部相关论文的比例。MRR 是首个匹配项倒数排名的平均值,未命中时记为零。冻结的摘要沿用旧版字段名 R@k 表示这些查询命中率。

此对比使用相同的前 50 个 LitSearch inline-ACL 查询、真实标注标题、标题匹配器和前 20 项截断范围。Exa 使用类别 research paper 运行。Scholar 使用标准检索流程,并通过 Qwen 进行重排。BM25 遵循 LitSearch 官方的 title+abstract 实现:转为小写并分词、移除英语停用词、进行 Porter 词干提取,并在包含 64K 篇论文的语料库上使用 BM25Okapi。Scholar/Exa 测试于 2026 年 5 月 12 日收集;BM25 于 2026 年 8 月 25 日复现。冻结的摘要位于 docs/benchmarks/litsearch-inline-acl-50.json,另有 BM25 原始结果及其哈希清单。

引用图谱与论文库

真实论文库图谱

此图由本地实时收藏集生成,可展示研究领域的基础论文、桥接论文,以及推动领域发展的论文。稳定的标识符和并行引用遍历能在图谱不断扩展时保持其连通性。

论文库使用一个持久化 SQLite 权威数据源,通过 WAL 事务和 FTS5 搜索。现有 JSONL 收藏集会自动迁移,并继续作为兼容性快照提供。稳定标识符、笔记、标签、PDF 路径、连接器 ID 和同步修订版本都会关联到同一条规范记录。

默认数据布局:

~/.scholar-mcp/
├── papers/    persistent PDFs
├── kb/
│   ├── library.sqlite3    authority + FTS5 + sync state
│   └── *.jsonl            compatibility snapshots
└── vault/                 Markdown projections and wikilinks
文献库连接器
# No login: write directly into an Obsidian vault
scholar-mcp library export obsidian --collection rag --path /path/to/vault

# Dry-run by default; add --apply for external writes
scholar-mcp library sync zotero --collection rag
scholar-mcp library publish notion --collection rag

Obsidian 是实时 Markdown 投影。Zotero 管理书目条目、文集、标签和笔记。Notion 接收单向的待读列表视图。外部连接器会在 SQLite 中保存其 ID、版本和内容哈希,因此不会重复发布未更改的论文。

论文访问

read_paper 使用临时 PDF,默认读取第 1 至 10 页,通常足以读到 AI 会议论文的结论。它会返回带页码的 Markdown、在表格几何信息可靠时返回结构化表格,并为图表和视觉表格回退方案提供说明文字选择器。传入 visual="Figure 3" 或其他返回的选择器,即可连同文本一起获取一张聚焦的页面裁剪图。传入 pages="11-20" 可继续读取参考文献或附录。提取完成后会删除 PDF。download_paper 会将内容流式写入暂存文件,以原子方式发布经过验证的 PDF,复用有效的本地副本,并将其元数据编入所选文集。

通用解析链涵盖:

  1. 原生开放获取记录和 arXiv、Europe PMC 等规范档案
  2. 已注册的存储库解析器:CORE、OpenAIRE、HAL、Zenodo 和 DOAJ
  3. bioRxiv、medRxiv、SSRN、ChemRxiv 等预印本服务
  4. Unpaywall 和可选的机构代理

scholar-mcp sources 会打印根据注册表生成的能力矩阵。添加 --check 可测试已配置的搜索提供方;添加 --check --source arxiv --query "retrieval augmented generation" 可检查单个提供方。arXiv 的 Atom API 不可用时,会回退到其自身的 HTTPS 搜索。Zenodo 参与 PDF 解析,但不会纳入默认发现,因为其范围广泛的出版记录带来的候选噪声多于检索价值。

图书馆代理访问

对于付费墙论文,download_paper 可以通过大学图书馆的 EZproxy 登录获取论文。它会在 Unpaywall 之后、可选的 Sci-Hub 步骤之前运行,且只用于你请求的单篇论文。Scholar 不会索要或存储密码,而是复用你登录后从自己的浏览器导出的会话 Cookie。

  1. 将 LIBRARY_PROXY_PREFIX 设置为图书馆代理登录前缀,即论文地址之前的部分,例如 https://proxy.library.example.edu/login?url=。可从任何代理链接或图书馆的书签脚本中复制;这里不假设任何特定机构。
  2. 在 Edge 或 Chrome 中登录图书馆代理,并打开任意代理页面。
  3. 使用支持 cookies.txt 扩展程序的方式,以 Netscape cookies.txt 格式导出代理域名的 Cookie(例如 Get cookies.txt LOCALLY;Edge 可以安装 Chrome 网上应用店中的扩展程序)。将文件保存在私密位置,并将 LIBRARY_PROXY_COOKIES 设置为该文件的路径。
  4. 重启 MCP 客户端,使其读取新的环境变量。

图书馆会话的有效期较短,由图书馆控制,因此导出的文件会在数小时后或图书馆结束会话时失效。当代理返回登录页面时,下载消息会提示会话已过期;请重新登录并导出新文件。该文件是有效的会话凭据,请勿将其放入 Git 或共享文件夹。系统只会读取属于代理域名的 Cookie;文件中的其他 Cookie 都会被忽略。下载失败时,消息会附带一个代理链接,你可以在已登录的浏览器中打开该链接。

如果终端使用 HTTP 代理,请确保图书馆请求与已登录的浏览器使用相同的网络路由。如需直接访问图书馆,请将其代理主机名和子域名添加到 NO_PROXY。

配置

所有凭据均为可选项,并保留在 MCP 进程环境中。

变量用途
SCHOLAR_DATA_DIR共享数据根目录;默认值为 ~/.scholar-mcp
SCHOLAR_KB_DIRSQLite 文献库和 JSONL 快照目录
SCHOLAR_OBSIDIAN_VAULTObsidian 投影根目录;无需身份验证
S2_API_KEY / S2_API_KEYSSemantic Scholar 搜索、摘要片段、图谱和速率限制
OPENALEX_API_KEY / OPENALEX_API_KEYSOpenAlex 搜索、语义搜索和图谱调用
OPENALEX_EMAILOpenAlex 礼遇池和 Unpaywall
DASHSCOPE_API_KEYQwen 重排序器
DASHSCOPE_HTTP_BASE_URLAlibaba 工作区 API Host 或 /api/v1 基础地址;默认为北京共享端点
SCHOLAR_RERANK_MODELAlibaba 模型(默认值为 qwen3-rerank),或自定义端点提供的模型
SCHOLAR_RERANK_URL、SCHOLAR_RERANK_API_KEY完整的自定义重排序端点及其独立凭据;优先于 Alibaba 路由
SCHOLAR_RERANK_TIMEOUT远程重排序请求超时时间,包括 Alibaba;默认值为 120 秒
SCHOLAR_RERANK_BATCH_SIZE自定义重排序器每次请求可处理的文档数;默认值为 500
SCHOLAR_GOOGLE_PROXY专用 Google Scholar 代理;其他来源沿用现有路由
SCOPUS_API_KEY可选的 Scopus 元数据来源
CORE_API_KEY可选的 CORE 存储库来源
EXA_API_KEY可选的 Exa 研究论文来源
SCHOLAR_SOURCE_BUDGET_S每轮来源扇出预算;默认值为 30 秒
SCHOLAR_DOWNLOAD_DIR持久化 PDF 目录;默认值为 <data>/papers
LIBRARY_PROXY_PREFIX、LIBRARY_PROXY_COOKIES可选的图书馆代理登录前缀,以及从已登录浏览器导出的 cookies.txt;不假设任何特定机构。参见图书馆代理访问
LIBRARY_PROXY_BASE、LIBRARY_PROXY_COOKIE同一设置的旧格式:代理 URL 和原始 Cookie 标头。Cookie 文件回退路径:<data>/library_cookie.txt
SCHOLAR_MCP_EXTENSIONS使用 research 启用图谱和论文库工具
ZOTERO_API_KEY、ZOTERO_LIBRARY_IDZotero Web API 或经授权的本地 API 连接器
ZOTERO_LIBRARY_TYPE、ZOTERO_API_BASE可选的 Zotero 文献库类型和端点覆盖值
NOTION_API_KEY、NOTION_DATA_SOURCE_IDNotion 单向发布器

返回给模型的错误会隐藏请求 URL 和凭据。 OpenReview 公开投稿可在无需账号或密码的情况下搜索。

开发

git clone https://github.com/Liyux3/scholar-mcp.git
cd scholar-mcp
uv sync --extra dev
uv run pytest

默认运行单元测试。使用 uv run pytest -m integration 单独运行实时 API 测试。

连接器和功能贡献请遵循 CONTRIBUTING.md。请通过 SECURITY.md 中的私密流程报告安全问题;引文元数据见 CITATION.cff。

本地和 Docker 客户端默认使用 stdio。设置 SCHOLAR_MCP_TRANSPORT=http 可启用 Streamable HTTP;默认端点为 /mcp。

许可证

Apache License 2.0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。