google-scholar-mcp 是一个由 HasData 维护的托管式 Model Context Protocol(MCP)服务器,为 Claude、Cursor、Windsurf 以及其他 MCP 客户端提供对 Google Scholar 的只读访问。Google Scholar 本身没有公开 API,该服务通过读取未登录访客可见的公开 Scholar 页面,将检索结果和引用区块转换为智能体可推理的结构化 JSON,使用方无需在技术栈中内置浏览器或抓取库。
用途方面,它主要面向需要以编程方式检索学术文献、追踪引用关系或获取标准引用格式的场景。它提供三个工具:Scholar 搜索结果、Scholar 引用格式、判例意见。每个成功调用消耗 10 个额度,响应大小不影响价格,因此增大 num 是扩展单次搜索的更经济方式。
主要能力方面,搜索工具返回一页 Scholar 结果,包含 searchInformation(totalResults、queryDisplayed 以及 Scholar 报告的时间)、organicResults 数组和 pagination。每条结果带有 position、resultId、title、link、snippet、publicationInfo 对象、resources 数组、citedBy、versions、relatedPagesLink 和 citeHasdataLink。publicationInfo.authors 除原始署名行外,还会列出 Scholar 拥有个人资料的作者,各带 name、profile 链接和 authorId,便于按作者追踪而非解析署名行。citedBy 和 versions 中的两个 id 使工具可以自我组合:citedBy.citesId 可回传给 cites 参数以遍历引用图,versions.clusterId 可传入 cluster 参数以查看同一论文的所有索引副本。引用工具返回 citations(MLA、APA、Chicago、Harvard 和 Vancouver 五种格式的字符串)以及 links(BibTeX、EndNote、RefMan 和 RefWorks 的导出 URL)。判例工具返回一份法院意见及其引用的判例:需将 asSdt 设为判例法院范围(例如 4),搜索结果便会带有 caseId 与 caseHasdataLink;返回内容包含 caseResults 的 title、name、courtName、cert、印刷意见的 firstPage 和 lastPage,dates 中分开列出 argued 与 decided 日期,shortCitations 给出判例汇编引用,caseNumbers 给出案卷编号,citedCases 列出该意见引用的每个判例及其 caseId。
使用方式方面,需要准备一个 MCP 客户端和一个来自 HasData 仪表板的 API 密钥(免费创建,无需信用卡)。这是远程服务器,最简单的方式是配置 URL 和 x-api-key 请求头,无需运行容器。支持 OAuth 的客户端可将 URL 作为连接器添加并登录,无需把密钥写入配置文件。对于仅支持 stdio 的客户端,可通过 npm 包 @hasdata/google-scholar-mcp 或 PyPI 包 hasdata-google-scholar-mcp 的轻量启动器连接;该启动器是一个薄 stdio 桥接层,从环境变量读取密钥,无需构建。服务器 URL 对所有客户端相同。文档给出了 Claude Desktop、Cursor、Windsurf、VS Code 等客户端各自的配置格式示例。服务器还暴露 4 个资源,每个对应一个接受值为固定列表的参数,URI 形式为 hasdata://google_scholar/<参数>;读取资源比通过被拒绝的调用学习词表更便宜,且不消耗额度,该列表无需 API 密钥即可获取。
适用场景方面,包括按引用数排序检索特定主题论文、追踪某篇论文的被引情况及其逐年增长、获取论文 BibTeX、筛选仅综述文章、查看论文的全部索引版本及哪些有 PDF、查找某作者在某主题上的近期工作等。一个提及某篇论文的提示通常需要两次调用:一次搜索获得其 resultId,一次引用查询;关于谁引用了某论文的提示也需要两次,因为第二次调用复用第一次的 citedBy.citesId。
限制方面,需注意:引用工具中的 q 是论文 id(来自搜索结果的 resultId,例如 A7L9JolPKkoJ)而非查询词,传入标题或 DOI 不会返回有用结果。citesId 和 clusterId 可能值相同但不可互换,一个用于 cites 查找引用该论文的论文,另一个用于 cluster 查找该论文的副本。type 只在部分结果上出现;需要判断是否存在 PDF 时应读取 resources[].fileFormat。BibTeX 链接是带签名的 Scholar URL 而非 BibTeX 本身,links 数组给出要抓取的地址,且带有会过期的 scisig 令牌,应及时抓取而非长期保存。totalResults 是 Scholar 的粗略估计,只能当作数量级参考。Scholar 统计的是引用次数而非质量,且会索引预印本、学位论文和仅有引用的记录;asVis: 1 可去除仅有引用的条目。深翻页会变薄,Scholar 对结果集深度有限制,在估计值所示之前就会开始重复或阻止,应通过 asYlo、asYhi 或 asSdt 收窄而非不断增大 start。携带数据的响应还带有用于支持引用的 requestMetadata.id。免费层每月 1,000 额度、无需信用卡,按基础费率约合 100 次 Scholar 调用,随计费周期续订。付费计划起价每月 59 美元、含 200,000 额度(约 20,000 次调用),单价随用量下降。并发方面,免费层允许 1 个并发请求,Startup 5、Basic 15、Growth 层 50 至 500;在无人值守场景中应对 429 进行退避重试。非 200 返回的请求不计费,成功的调用即使没有找到任何结果仍计费。HasData 与 Google 无关联,Google Scholar 是其各自所有者的商标;工具仅使用公开数据,使用者需自行确保符合 Google 条款和适用法律。作者姓名、单位和 Scholar 个人资料 id 属于个人数据;论文本身仍受各自许可约束,链接不等于可重新分发 PDF 的许可。