mcpField
H
HasData Google Scholar

HasData Google Scholar

远程服务
docs.hasdata.com搜索与检索132 周前更新

关于 HasData Google Scholar

HasData Google Scholar 是托管式 MCP 服务,为研究人员和学术工作流提供 Google Scholar 搜索、引用信息及文献导出数据。它还支持追踪被引文献和论文版本,并以结构化 JSON 返回结果。

主要功能

  1. 01按关键词、年份和 Scholar 运算符搜索
  2. 02查看引用数及引用论文
  3. 03获取五种格式的文献引文
  4. 04导出 BibTeX、EndNote 等链接
  5. 05查询论文版本及法律判例

适用场景

  1. 01按年份筛选某主题的论文
  2. 02追踪论文的被引情况
  3. 03生成 APA 或 BibTeX 引文
  4. 04查询学术论文的法律判例

MCP 相关

该托管远程服务向 MCP 客户端提供只读 Google Scholar 搜索与引文工具,并提供参数选项资源。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.hasdata.com/mcp?apis=google_scholar
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://mcp.hasdata.com/mcp?apis=google_scholar需要授权
安装包
npm@hasdata/google-scholar-mcp1.0.2
pypihasdata-google-scholar-mcp1.0.2

工具

2
参数类型必填说明
petsnumber否宠物数量。
neLatnumber否地图边界框东北角的纬度。提供全部四个边界框坐标后,将在框内搜索房源,而不是按位置搜索。
neLngnumber否地图边界框东北角的经度。
swLatnumber否地图边界框西南角的纬度。
swLngnumber否地图边界框西南角的经度。
adultsnumber否成人数量。
checkInstring是房源的入住日期。
infantsnumber否婴幼儿数量。
checkOutstring否房源的退房日期。
childrennumber否子女数量。
locationstring否用于搜索房源的地点。除非提供完整地图边界框(neLat、neLng、swLat、swLng),否则必填。
nextPageTokenstring否用于获取下一页结果的令牌。

详细介绍

Google Scholar MCP 服务

一个托管式模型上下文协议(MCP)服务,为 Claude、Cursor、Windsurf 及其他任何 MCP 客户端提供两个只读的 Google Scholar 工具。使用 Scholar 自带的运算符、年份范围和被引次数查询来检索文献,然后以结构化 JSON 的形式获取论文的五种格式引文及其 BibTeX 和 EndNote 导出链接,无需自行托管任何内容。

它读取未登录访客也能查看的 Google Scholar 公开页面。

每月提供 1,000 个免费额度,无需信用卡,按每次调用 10 个额度计算,可进行 100 次 Scholar 调用。

https://mcp.hasdata.com/mcp?apis=google_scholar

Glama 评分 工具契约 MCP 工具

目录

所需条件

一个 MCP 客户端,以及从 控制面板 获取的 HasData API 密钥。创建密钥免费且无需信用卡,免费套餐按每次调用 10 个额度计算,每月约可支持 100 次调用。这是一个远程服务,因此最简单的接入方式是使用 URL 和 x-api-key 标头,无需运行容器。仅支持 stdio 的客户端可通过一个轻量启动器连接该服务;启动器已发布到 npm,包名为 @hasdata/google-scholar-mcp,也发布到 PyPI,包名为 hasdata-google-scholar-mcp,如下所示。

快速开始

所有客户端使用的服务器 URL 都相同。我们会在 Claude Code 和 Claude Desktop 中亲自演示。其他代码块则遵循各客户端为远程服务规定的格式。

字段值
URLhttps://mcp.hasdata.com/mcp?apis=google_scholar
传输方式HTTP,流式
认证标头x-api-key: HASDATA_API_KEY

支持 OAuth 的客户端可以将同一 URL 添加为连接器,然后登录,无需将密钥放入配置文件。

Claude Code
claude mcp add --transport http google-scholar "https://mcp.hasdata.com/mcp?apis=google_scholar" \
  --header "x-api-key: HASDATA_API_KEY"
Claude Desktop

依次选择 Settings、Connectors、Add custom connector,然后粘贴 https://mcp.hasdata.com/mcp?apis=google_scholar 并登录。

对于配置文件方式,Claude Desktop 仅加载本地(stdio)服务,因此需要通过 stdio 启动器连接远程服务。@hasdata/google-scholar-mcp 软件包就是这个启动器,它会从环境变量中读取密钥。将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "google-scholar": {
      "command": "npx",
      "args": ["-y", "@hasdata/google-scholar-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

如果使用 Python 而非 Node,请将启动器替换为 PyPI 软件包,uvx 无需手动安装即可运行该软件包:

{
  "mcpServers": {
    "google-scholar": {
      "command": "uvx",
      "args": ["hasdata-google-scholar-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}
Cursor

为所有项目使用 ~/.cursor/mcp.json,或为单个项目使用 .cursor/mcp.json:

{
  "mcpServers": {
    "google-scholar": {
      "url": "https://mcp.hasdata.com/mcp?apis=google_scholar",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Windsurf

使用 ~/.codeium/windsurf/mcp_config.json。Windsurf 将该字段命名为 serverUrl,而非 url:

{
  "mcpServers": {
    "google-scholar": {
      "serverUrl": "https://mcp.hasdata.com/mcp?apis=google_scholar",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
VS Code

在工作区中使用 .vscode/mcp.json:

{
  "servers": {
    "google-scholar": {
      "type": "http",
      "url": "https://mcp.hasdata.com/mcp?apis=google_scholar",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

提示词示例

以下提示词各调用一个工具;如果第二个工具需要第一个工具返回的 ID,则会依次调用两个工具。

  • 查找 2023 年以来发表的 Transformer 架构论文,并按引用次数排序。
  • 有哪些论文引用了这篇论文?引用数逐年如何增长?
  • 给我这篇论文的 BibTeX。
  • 仅查找该主题的综述文章,并排除没有完整记录的引用。
  • 显示这篇论文所有已索引的版本,并指出哪些版本有 PDF。
  • 查找这位作者近期关于该主题的研究。

提及某篇论文的提示词需要两次调用:先搜索以获取其 resultId,再查询引用。询问有哪些论文引用了某篇论文的提示词也需要两次调用,因为第二次调用会复用第一次返回的 citedBy.citesId。

工具

工具返回内容
hasdata_google_scholar_case_law_getScholarCaseLawOpinion一份法院意见,包含所属法院、汇编引文、案号、辩论和裁决日期,以及该意见引用的所有案件及其各自的 caseId。每次调用消耗 10 个 credits
hasdata_google_scholar_cite_getScholarCitationFormats格式化的引文片段(MLA、APA、Chicago、Harvard、Vancouver)和文献管理器导出链接(BibTeX、EndNote、RefMan、RefWorks)。每次调用消耗 10 个 credits
hasdata_google_scholar_scholar_getScholarSearchResults每条自然搜索结果都包含标题、链接、摘要、出版信息(带个人资料链接的作者)、被引次数和链接、相关文章链接,以及版本总数等信息……每次调用消耗 10 个 credits

共有三个工具,每次成功调用消耗 10 个 credits。

获取 Scholar 搜索结果

hasdata_google_scholar_scholar_getScholarSearchResults

一页 Scholar 搜索结果。

参数类型必填说明
qstring是查询内容。此处支持 Scholar 运算符,例如 author: 和 source:
asYlo / asYhinumber发表年份的起止范围
startnumber结果偏移量,0 表示第一个结果
numnumber每页结果数
scisbdnumber1 按日期排列摘要,2 按日期排列所有内容。省略此项则按相关性排序
citesstring使用 citedBy.citesId 查找引用此文的文章
clusterstring使用 versions.clusterId 查找某篇文章所有已编入索引的版本
asSdtstring搜索类型:0,5 表示文章,4 表示判例法,0 或 7 表示专利
asRrnumber1 仅返回评论文章
asVisnumber1 排除引用,0 包含引用
hlstring界面语言,共 159 种
lrarray将结果限制为这些内容语言
safestringactive 或 off
filternumber1 保留 Google 的相似结果和省略结果筛选器,0 则移除

返回包含 totalResults、queryDisplayed 和 Scholar 报告的时间的 searchInformation、organicResults 数组以及 pagination。

每条结果包含 position、resultId、title、link、snippet、publicationInfo 对象、resources 数组、citedBy、versions、relatedPagesLink 和 citeHasdataLink。

值得了解的是 publicationInfo.authors。除了原始的 summary 行,它还会列出 Scholar 中有个人资料的作者,每位作者都有 name、个人资料 link 和 authorId,可据此关注某位作者,而不必解析署名行。

citedBy 和 versions 中的两个 ID 可让此工具与自身组合使用。citedBy.citesId 可传入 cites,以遍历引文图谱;versions.clusterId 可传入 cluster,查看同一论文所有已编入索引的副本。

{
  "position": 1,
  "resultId": "A7L9JolPKkoJ",
  "title": "A historical survey of advances in transformer architectures",
  "link": "https://www.mdpi.com/2076-3417/14/10/4316",
  "snippet": "… of the Vision Transformer (ViT) opening a new realm of architectures which build … transformer architecture, it becomes pertinent to examine in detail the architecture of the transformer …",
  "publicationInfo": {
    "summary": "AR Sajun, I Zualkernan, D Sankalpa - Applied Sciences, 2024 - mdpi.com",
    "authors": [
      { "name": "AR Sajun", "authorId": "k6zWX4EAAAAJ", "link": "https://scholar.google.com/citations?user=k6zWX4EAAAAJ&hl=en" }
    ]
  },
  "resources": [{ "fileFormat": "Html", "title": "mdpi.com", "link": "https://www.mdpi.com/2076-3417/14/10/4316" }],
  "citedBy": { "total": 97, "citesId": "5344171358311789059" },
  "versions": { "total": 7, "clusterId": "5344171358311789059" }
}
获取 Scholar 引用格式

hasdata_google_scholar_cite_getScholarCitationFormats

一篇论文的引用格式区块。

参数类型必填说明
qstring是搜索结果中的 resultId,而不是搜索查询
hlstring界面语言

返回 citations,其中包含 MLA、APA、Chicago、Harvard 和 Vancouver 格式的字符串;还会返回 links,其中包含 BibTeX、EndNote、RefMan 和 RefWorks 的导出 URL。

{
  "citations": [
    {
      "title": "APA",
      "snippet": "Sajun, A. R., Zualkernan, I., & Sankalpa, D. (2024). A historical survey of advances in transformer architectures. Applied Sciences, 14(10), 4316."
    }
  ],
  "links": [
    { "name": "BibTeX", "link": "https://scholar.googleusercontent.com/scholar.bib?q=info:A7L9JolPKkoJ:scholar.google.com/&output=citation..." }
  ]
}
获取判例法意见

hasdata_google_scholar_case_law_getScholarCaseLawOpinion

一份法院意见及其引用的判例。

参数类型必填说明
caseIdstring是判例法搜索结果中的 caseId,而不是搜索查询
hlstring界面语言

此 ID 来自搜索工具,而非 URL。将 asSdt 设置为判例法法院范围,例如 4,之后每条自然搜索结果都会在 caseHasdataLink 旁包含 caseId。

返回 caseResults,其中包含 title、name、courtName、cert,以及印刷版意见的 firstPage 和 lastPage。dates 将庭审日期和裁决日期分别列出,shortCitations 包含判例汇编引文,caseNumbers 包含案卷号。citedCases 列出此意见引用的所有意见,每条都带有自己的 caseId,因此只需再调用一次即可构建引文图谱,无需解析文本。

{
  "caseResults": {
    "caseId": "5876335373788447272",
    "title": "Sony Corp. of America v. Universal City Studios, Inc., 464 US 417 - Supreme Court 1984",
    "courtName": "Supreme Court of United States.",
    "firstPage": 418,
    "lastPage": 500,
    "dates": [{ "position": 1, "type": "Argued", "date": "January 18, 1983" }],
    "shortCitations": [{ "position": 1, "name": "464 U.S. 417 (1984)" }],
    "citedCases": [
      {
        "position": 1,
        "caseId": "1376545051729958882",
        "caseLink": "https://scholar.google.com/scholar_case?case=1376545051729958882&hl=en&as_sdt=6,43"
      }
    ]
  }
}

提示词和资源

该服务公开了 4 个资源,每个资源对应一个可接受值为固定列表的参数。读取资源比从失败的调用中摸索取值词汇更省事,而且不消耗积分。每个 URI 的格式为 hasdata://google_scholar/<parameter>。

参数值数量选择内容
hl159搜索时要使用的语言对应的双字母语言代码。
lr43“lr”参数指定返回结果中网站的语言。此参数会根据网页内容的语言筛选结果。
asSdt302搜索类型/筛选条件。选择下方的一个值,可搜索特定法院的判例;也可使用 0,5 搜索文章(默认值)/使用 7 纳入专利。Google Scholar 接受的任何逗号分隔法院代码组合,也可作为列表之外的自由文本使用。
safe2成人内容过滤选项。

无需 API 密钥即可获取此列表,因此客户端可以在用户注册前读取它。

错误和失败路径

请为以下情况做好准备,不要假设一切都会顺利。

在引用工具中,q 是论文 ID,而不是查询。 它接收搜索结果中的 resultId,例如 A7L9JolPKkoJ。传入标题或 DOI 不会得到有用结果,而共用参数名正是人们容易弄错的原因。

citesId 和 clusterId 可以是同一个值,但不能互换使用。 上述论文的这两个值相同。一个传入 cites,用于查找引用该论文的论文;另一个传入 cluster,用于查找该论文的副本。把正确的数字传给错误的参数,会返回看似合理、实际却是错误内容的页面。

有些结果会提供 type,有些则不会。 五个结果中有一个包含此字段,用于描述主要资源的格式。需要确认是否存在 PDF 时,请读取 resources[].fileFormat。

BibTeX 链接是包含签名的 Scholar URL,而不是 BibTeX 本身。 links 数组提供了供你获取内容的地址,这些地址带有会过期的 scisig 令牌,因此应尽快获取,而不是留待以后使用。

totalResults 是 Scholar 的估算值,而且非常粗略。 上述查询报告了 2,080,000。应将其视为数量级,而不是计数。

Scholar 统计的是引用次数,而非质量,并且会索引预印本、论文和仅包含引用信息的记录。 需要包含完整元数据的记录时,asVis: 1 会排除仅含引用信息的条目。

翻到较深的页数时,结果会变少。 Scholar 会限制结果集的深度,并且在估算值所暗示的范围之前很久就开始重复或屏蔽结果,因此应使用 asYlo、asYhi 或 asSdt 缩小范围,而不是不断增大 start。

包含数据的结果也会带有 requestMetadata.id,在寻求支持时值得提供。

定价、免费套餐和限制

每次成功调用 Scholar 工具需 10 个积分。响应大小不会改变价格,因此提高 num 是扩大搜索范围的低成本方式。

免费套餐每月提供 1,000 个积分,无需绑定银行卡,按基础费率可调用 Scholar 100 次。积分会随计费周期续订,因此低调用量的 Agent 可以无限期使用免费套餐。

付费套餐起价为 每月 $59,包含 200,000 个积分,可调用 20,000 次。使用量越大,单价越低:入门套餐每 1,000 次调用 $2.95,Basic 套餐为 $1.19,Growth 系列套餐为 $0.83。最新价格请查看定价页面。

你的套餐还会决定并发限制。免费套餐允许同时发送 1 个请求,Startup 为 5 个,Basic 为 15 个,Growth 系列套餐则为 50 至 500 个。对于无人值守的任务,遇到 429 错误时请采用退避策略进行重试,因为遍历引用图谱的 Agent 会比你更早触及上限。

返回非 200 状态码的请求不会计费。成功调用但没有找到结果,仍然会计为一次调用。

工具选择

从提示提供的信息入手。主题、作者或年份范围适合使用搜索工具。已有的 resultId 则直接交给引用工具。

然后考虑下一步需要哪个 ID。文献综述只需调用一次搜索,并设置较大的 num。引用关系图需要先调用搜索,再对每篇要追踪的论文各调用一次 cites。对预印本和已发表版本进行去重,则需要对每篇论文调用一次 cluster。这些操作都能复用首次响应中给出的 ID,因此通常没必要再调用一次搜索。

翻页前先调大 num。费用按调用次数计算,而不是按结果数计算,因此一次宽范围的翻页胜过三次窄范围的翻页。

对比

Google Scholar 没有公开 API,因此值得比较的是开放的文献 API。

OpenAlex 或 Semantic Scholar此服务
使用条件开放,基本使用无需密钥需要 API 密钥
覆盖范围规模大、经过整理,以 DOI 为中心Google Scholar 索引的内容,包括学位论文和预印本
引用次数各自计算,基于自身的引用关系图Google Scholar 显示的引用次数
引用格式需要自行根据元数据生成MLA、APA、Chicago、Harvard、Vancouver 格式,由 Google Scholar 生成
全文链接DOI 和开放获取位置Google Scholar 显示的资源链接,包括 PDF
结构化元数据丰富且有类型按页面展示的内容提供

决定选择哪种服务的关键在于你需要谁的引用次数。对于基于类型明确、稳定元数据的文献计量分析,OpenAlex 和 Semantic Scholar 是更好的工具,而且免费。如果你关注的特定问题是 Google Scholar 显示的内容——大多数研究人员实际查看的就是这些内容——或者你想要格式化后的引用而不是自行生成引用的字段,就可以使用此服务。

常见问题

是否有官方的 Google Scholar MCP 服务?

Google 没有发布官方服务,Google Scholar 也没有公开 API。此服务由 HasData 维护,并读取公开的 Google Scholar 页面。

什么是 Google Scholar MCP 服务?

MCP 服务会向 AI 客户端提供可调用的工具。此服务会将 Google Scholar 的搜索结果和引用区块转换为 JSON,供 Agent 推理,无需在技术栈中使用浏览器或网页抓取库。

我需要 Google 账号吗?

不需要。你只需要 HasData 密钥。

如何获取论文的 BibTeX?

需要两次调用。先搜索以获取论文的 resultId,然后将该 ID 作为 q 传给引用工具,并从 links 中获取 BibTeX URL。

如何查找引用某篇论文的所有论文?

从搜索结果中获取 citedBy.citesId,并将其作为 cites 参数传回。响应中会列出引用该论文的论文,并像其他搜索结果一样分页。

cites 和 cluster 有什么区别?

cites 会查找引用了你指定论文的论文。cluster 会查找同一篇论文的其他已索引版本,例如与已发表文章对应的预印本。这两个 ID 看起来通常完全相同,因此应根据你的需求选择,而不是根据数字选择。

我可以按作者搜索吗?

可以。在 q 中使用 Google Scholar 自带的运算符,例如 author:"J Dean"。搜索结果还会为拥有 Google Scholar 个人资料的作者提供 authorId,这是更稳定的标识符。

我可以将此服务与其他 HasData API 一起使用吗?

可以。一个密钥即可用于所有服务,且一个端点通过 apis 参数提供所有服务。将客户端指向 ?apis=google_scholar,google_serp,即可在一个连接中使用两组工具;也可以访问 mcp.hasdata.com/mcp 查看完整目录。

HasData 与 Google 有关联吗?

没有。HasData 是独立服务,与 Google 无关,也未获得 Google 的认可或赞助。Google Scholar 是其各自所有者的商标。这些工具仅处理公开可用的数据,你有责任确保按照 Google 的条款和适用于你的法律使用结果。

合规与个人数据

作者姓名、所属机构和 Scholar 个人资料 ID 都是个人数据,尽管它们作为学术记录的一部分公开发布。构建某位研究人员的成果档案,与统计某个主题的引用次数是不同的行为;前者需要重新考虑其用途和保留期限。论文本身仍受各自的许可协议约束,因此提供链接并不意味着可以重新分发 PDF。

HasData 链接

其他 HasData MCP 服务:Google Search、Google Images、Google Maps、Google Trends、Bing、DuckDuckGo、YouTube、TikTok、Instagram、Amazon、Walmart、Shopify、Yelp、Yellow Pages、Zillow、Redfin、Airbnb、Booking.com、Indeed、Glassdoor。

开发

启动器是一个连接到远程服务的轻量级 stdio 桥接程序,因此无需构建。

npm install
HASDATA_API_KEY=your_key_here npm test

test/ 中的测试用于断言工具契约,也就是本仓库在没有提交更改的情况下可能发生变化的部分。它们会检查 ?apis=google_scholar 是否返回预期的三个工具、名称是否未变、每个工具是否仍要求提供自己的 ID 且带有描述、此 README 记载的搜索参数是否仍在架构中,以及正在使用的密钥是否确实有效。

其中两项测试会进行更深入的检查。一项断言实时搜索仍会返回 resultId、citedBy.citesId 和 versions.clusterId,因为这三个 ID 能让工具组合使用,而响应中的其他内容都无法显示它们是否丢失。另一项测试会将 resultId 直接传给引用工具,也就是此 README 记载的两次调用工作流,并检查是否返回五种格式。两项测试每次运行共消耗 20 个积分,这是为了获得一个能因正确原因而失败的金丝雀测试所需的代价。

契约测试套件也会按计划每周运行,因为上游工具列表可能发生变化,而无需有人修改此仓库。

贡献

如果工具表、响应示例或文档所述行为与实际情况不符,欢迎提交 Issue。我们为此专门准备了模板。也欢迎针对这些内容以及启动器中的任何内容提交拉取请求。

许可证

MIT,详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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