Skip to main content
Glama
HasData

Google Search MCP Server

Google Search MCP Server (SERP)

一个托管的 Model Context Protocol (MCP) 服务器,可为 Claude、Cursor、Windsurf 以及任何其他 MCP 客户端提供 8 个只读的 Google Search 工具。你可以拉取带有 AI Overview 和 People Also Ask 的实时 SERP,运行 Google AI Mode 查询,并读取新闻、购物、产品详情和短视频结果,全部以结构化 JSON 返回,无需创建 Google Cloud 项目,也无需配置任何搜索引擎。

https://mcp.hasdata.com/api/mcp?apis=google_serp

Glama score tool contract MCP Tools License

“SERP”和“Google Search”在这里指同一个产品。此服务器返回经解析后的 Google 搜索引擎结果页面。

目录

Related MCP server: Serper Search MCP Server

你需要什么

一个支持 streamable HTTP 并附带自定义请求头的 MCP 客户端。一个 HasData API 密钥,可从 dashboard 免费创建,无需银行卡,试用额度视具体工具不同大约可覆盖 100 到 200 次调用。除此之外,别无他求。这是一个远程服务器,因此最简单的接入方式就是一个 URL 加一个请求头,无需配置 Google Cloud 项目或 Programmable Search Engine。仅支持 stdio 的客户端可以改用 @hasdata/google-search-mcp(npm)或 hasdata-google-search-mcp(PyPI)启动器。

快速开始

URL

https://mcp.hasdata.com/api/mcp?apis=google_serp

传输方式

HTTP, streamable

认证请求头

x-api-key: HASDATA_API_KEY

服务器 URL 对所有客户端都是一样的。我们在 Claude Code 和 Claude Desktop 中实际操作过。其他几个配置块遵循各客户端自己针对远程服务器的文档格式。

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

claude mcp add --transport http google-search "https://mcp.hasdata.com/api/mcp?apis=google_serp" \
  --header "x-api-key: HASDATA_API_KEY"

Claude Desktop 只能从其配置文件中加载本地(stdio)服务器,因此它通过一个 stdio 启动器来连接远程服务器。@hasdata/google-search-mcp 就是这个启动器,它会从环境中读取密钥。

claude_desktop_config.json

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

想用 Python 而不是 Node.js?把启动器换成 PyPI 包,uvx 会直接运行它,无需手动安装:

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

支持 OAuth 的客户端也可以直接把 URL 添加为自定义连接器,从而跳过启动器。

.cursor/mcp.json

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

~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "google-search": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=google_serp",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
{
  "mcpServers": {
    "google-search": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=google_serp",
      "type": "streamableHttp",
      "headers": { "x-api-key": "HASDATA_API_KEY" },
      "disabled": false
    }
  }
}

.vscode/mcp.json

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

~/.gemini/settings.json

{
  "mcpServers": {
    "google-search": {
      "httpUrl": "https://mcp.hasdata.com/api/mcp?apis=google_serp",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

示例提示词

在 Google 中搜索 best running shoes,给我前十个自然结果以及 AI Overview。

一次调用,消耗 10 个积分。SERP 响应会在自然结果旁边一并返回 AI Overview。

针对同一查询,取出每个 People Also Ask 问题,并提取其 AI Overview 回答与来源。

每个问题占一次调用,消耗 5 个积分。每个 relatedQuestions 条目都带有 aiOverview.pageToken,AI Overview 工具会把这个 token 展开为回答文本块及其引用来源。

提问 Google AI Mode what is the Model Context Protocol,并给我带引用的回答。

一次调用,消耗 10 个积分。AI Mode 会把生成的回答以文本块和参考列表的形式返回。

在 Google Shopping 中搜索 nike air max,再拉取第一条结果的完整商品卡片:每个在售商店、价格区间以及评论分布。

两次调用。Shopping 消耗 10 个积分,每个商品返回一个 token;沉浸式产品工具再花 5 个积分将该 token 展开为商店、变体和评论。

获取关于 artificial intelligence 的最新 Google News,并单独查询 cooking pasta 的短视频结果。

两次调用,每次消耗 10 个积分。

这个工作流依赖两条链。一个 SERP 响应会返回内联的 aiOverview,并在每一个 People Also Ask 问题上给出一个 pageToken,因此提取 Google 的生成式答案要么随搜索免费附带,要么每个问题再花 5 个积分跟进一次。购物结果同样会为每个产品返回一个 token,所以从列表直达完整的跨店商品卡片只需要一次调用。

工具

共有八个工具,全部为只读。下面的示例取自真实调用,其中的结果会随 Google 的变化而不同,因此请将它们视作结构示例。每个工具名称都链接到对应的端点参考文档。

这些示例展示的是 payload,而不是整个响应。一次 tools/call 的结果中有一个文本块,该文本本身是 JSON,其中包含 urlstatustextjson,抓取到的数据位于 url 内的 json 字段下。在原始 JSON-RPC 响应里,路径是 result.content[0].text,解析后的 .json 才是数据。聊天客户端会帮你解开这层包装,而直接对接端点的代码则不会。

Google SERP

hasdata_google_serp_serp_getSearchResults

某个查询的完整结果页。

参数

类型

必填

说明

q

string

搜索查询词,与普通人在搜索框里输入的内容完全一致

gl / hl

string

两位字母的国家代码和语言代码

location / uule

string

搜索的地理位置,可以是名称,也可以是 uule 字符串

num

number

每页约有多少结果。Google 现在会将每页数量限制在约 10 条,并会忽略更高的值,因此 num 超过 10 也不会返回更多

start

number

结果偏移量,用于分页

tbm / tbs

string

搜索类型和高级筛选条件,即 Google 传递的原始参数

deviceType

string

desktopmobiletablet

返回 searchInformationorganicResultsaiOverviewrelatedQuestionsrelatedSearchesperspectivesimmersiveProductspagination,具体包含哪些块取决于 Google 针对该查询展示的模块。自然结果条目包含 positiontitlelinkdisplayedLinksourcesnippetsnippetHighlitedWordsdateimages

AI 概览有两种提供方式。通常 aiOverview 是内联的,包含可以直接读取的 textBlocksreferences。有时候 Google 会把它放在一个 token 后面,此时 aiOverview 携带的是 pageTokenhasdataLink,而不是这些块。每个 relatedQuestions 条目同样属于第二种情形。它包含一个 question 和一个带有相同 pageTokenhasdataLinkaiOverview,由下方的 AI Overview 工具继续展开。因此 People Also Ask 的答案是通过 token 逐个获取的一种 AI Overview。顶层 aiOverview 在大多数查询中是内联返回的,在少数查询中则通过 token 返回,因此两种形式都要考虑。

{
  "organicResults": [
    {
      "position": 1,
      "title": "The 15 Best Running Shoes of 2026",
      "link": "https://www.runnersworld.com/gear/a19663621/best-running-shoes/",
      "source": "Runner's World",
      "snippet": "The Brooks Ghost is our No. 1 shoe when we recommend new trainers…"
    }
  ],
  "aiOverview": {
    "textBlocks": [ { "type": "paragraph", "snippet": "The best running shoes depend on your goal…" } ],
    "references": [ { "index": 0, "title": "7 Best Running Shoes in 2026 - RunRepeat", "link": "https://runrepeat.com/guides/best-running-shoes" } ]
  },
  "relatedQuestions": [
    { "question": "What are the top 5 best running shoes?", "aiOverview": { "pageToken": "eyJpZCI6…", "hasdataLink": "https://api.hasdata.com/scrape/google/ai-overview?pageToken=eyJpZCI6…" } }
  ],
  "pagination": { "next": "…" }
}

Google AI Overview

hasdata_google_serp_ai_overview_getAiOverviewResponse

将一个 AI Overview token 展开为它的答案。

参数

类型

必填

说明

pageToken 对 string

一个来自 SERP 响应的 aiOverview.pageToken,也包括来自 relatedQuestions 的那些。同一个 token 对象还会携带 hasdataLink,它是一个现成的 REST URL,可不使用本工具就获取相同答案

返回 aiOverview 及其 textBlocksreferences。这就是当 SERP 返回的是一个 token 而不是结果块时,用来读取 AI Overview 的方式;也是把每个 People Also Ask 问题转换成带引用答案的方式。

token 的有效期约为 4 分钟。过期的 token 不会返回空结果,而是会以工具错误的方式失败,isError: true,文本为 HasData API error: 400 Bad Request。你可以像捕获错误的 key 一样捕获它,然后重新运行 SERP 以获取新 token。

{
  "aiOverview": {
    "textBlocks": [ { "type": "paragraph", "snippet": "The top five running shoes feature versatile options for daily training and racing…" } ],
    "references": [ { "index": 0, "title": "…", "link": "https://…" } ]
  }
}

Google AI Mode

hasdata_google_serp_ai_mode_getAiModeResponse

向 Google AI Mode 发出的单个查询的答案,也就是对话式搜索结果。

参数

类型

必填

说明

q

string

要向 AI Mode 提出的问题

gl / hl

string

国家和语言代码

location / uule

string

地理位置

continuable

boolean

设为 true 可以让答案支持在后续调用中继续追问

subsequentRequestToken

string

来自上一个 AI Mode 响应的 token,用于延续对话线程

返回 textBlocksreferences,即生成的回答及其引用的来源。

Google SERP Light

hasdata_google_serp_serp_light_getSearchResults

一种更便宜的搜索,返回页面的核心内容。

参数

类型

必填

说明

q

string

要搜索的查询词

gl / hl

string

国家与语言代码

location / uule

string

地理位置

num / start

number

分页大小和起始偏移量

返回 organicResultsaiOverviewrelatedSearchesfiltersappliedLocationsearchInformationpagination。它只消耗完整 SERP 一半的积分,适合你只需要自然搜索结果和 AI Overview、而不需要其他额外板块的情况。

Google News

hasdata_google_serp_news_getGoogleNews

查询某个词或某个新闻板块时返回 Google News 的结果。

参数

类型

必选

说明

q

string

一个查询词;省略后可以阅读某个新闻板块

gl / hl

string

国家和语言代码

topicToken / sectionToken / storyToken / publicationToken

string

使用上一条响应中的 token 深入浏览话题、板块、报道或出版物

返回 newsResultsmenuLinksrelatedTopicsrelatedPublications。每条新闻条目包含 positiontitlelinksource(含 nameicon)、thumbnaildate

Google Shopping

hasdata_google_serp_shopping_getSearchResults

针对一个查询词的购物结果。

参数

类型

必选

说明

q

string

要搜索的产品

gl / hl

string

国家和语言代码

location / uule

string

地理位置

start

number

分页偏移量

tbs

string

高级购物筛选条件,是 Google 的原始参数。

返回 shoppingResultsfiltersrefineSearchFilterssearchInformationpagination。每条结果包含 positiontitleproductIdpriceextractedPriceratingreviewssourcecategorythumbnail 以及 immersiveProductPageToken

immersiveProductPageToken 是下面沉浸式产品工具的输入。它是一种临时 token,所以当你需要产品数据时请趁其有效尽快运用,若某个久远 token 失效,就重新运行 shopping 来获取新的。

{
  "shoppingResults": [
    {
      "position": 1,
      "title": "Men's Nike Alphafly 3",
      "productId": "13366226642799457284",
      "price": "$285.00",
      "extractedPrice": 285,
      "rating": 4.5,
      "reviews": 120,
      "source": "Nike",
      "immersiveProductPageToken": "eyJyZHMiOiJQQ18…"
    }
  ]
}

沉浸式产品

hasdata_google_serp_immersive_product_getImmersive_e29f169177

购物结果背后完整的商品卡片。

参数

类型

必选

说明

pageToken

string

来自 shopping 结果或 SERP immersiveProducts 条目的 immersiveProductPageToken

moreStores

boolean

请求更多店铺

nextPageToken

string

使用上一响应中的 storesNextPageToken 对店铺分页

返回 productResults 对象,包含 titlebrandratingreviewspriceRange、一个由每家卖家及其价格和链接组成的 stores 数组,再加上 variantsreviewsImagesuserReviewstopInsightsaboutTheProductdiscussionsAndForums。这一个调用就能把单个店铺详情变成一个完整的多店铺全貌。

{
  "productResults": {
    "title": "Men's Nike Alphafly 3",
    "brand": "Nike",
    "rating": 4.4,
    "reviews": 1077,
    "priceRange": "$221-$295",
    "stores": [ { "name": "eBay", "link": "https://www.ebay.com/itm/…", "price": "$221" } ],
    "storesNextPageToken": "Mw=="
  }
}

storesNextPageToken 当作 nextPageToken 参数传回,即可继续分页浏览店铺。

Google 短视频

hasdata_google_serp_short_videos_getShortVideosSearchResults

Google 会针对一个查询词返回短视频结果。

参数

类型

必选

说明

q

string

查询词

gl / hl / cr

string

国家、语言和内容区域代码

lr

array

一个或多个语言限制

page

number

结果页码

deviceType

string

desktop(桌面)、mobile(手机)或 tablet(平板)

返回 shortVideos,每个结果包含 positiontitlelinksourcesourceLogoprofileNamedurationclipthumbnail

错误与失败路径

你的客户端几乎绝不会从一次工具调用中看到 HTTP 错误码。MCP 层会返回 200,并把失败放在结果中,同时把 isError 设为 true,原因则以文本形式给出。智能体读取到的是一个消息,而不是你可能预期的状态行。

错误的 key 会显现为工具输出,而不是连接失败。 工具列表会接受任意交 key,客户端会完成握手并显示绿色。第一次工具调用就会返回 isError: true,并带有文本 `HasData API error: 401 Unauthorized

一个将 Google 搜索结果作为工具暴露给 AI 客户端调用的服务器。客户端通过 Model Context Protocol 发送工具调用,服务器抓取结果页并返回结构化 JSON,模型直接处理结果,永远看不到 HTML 页面。本服务器暴露了八个只读工具,并且远程运行,因此客户端只需连接到一个 URL 即可,无需启动任何本地进程。

是的。SERP 就是搜索引擎结果页(search-engine results page)。这些工具返回的是 Google 的结果页,因此在这个仓库中,“SERP API”与“Google Search API”含义相同。

有没有官方的 Google Search MCP 服务器?

Google 没有发布 MCP 服务器,也没有通用的搜索 API。最接近的官方产品是 Custom Search JSON API,它搜索的是你自行配置的 Programmable Search Engine。包括本服务器在内的多个社区 MCP 服务器,会直接返回实时结果页。

如何获得 AI Overview?

执行一次 SERP 调用即可。aiOverview 通常会以带有 textBlocksreferences 的内联形式返回。当它以 pageToken 形式返回时,以及对于每个 People Also Ask 问题,请将该 token 传给 AI Overview 工具以获取答案。Token 很快就会过期,所以请从一个新的调用中获取展开后的内容。

我需要 Google Cloud 项目或 Programmable Search Engine 吗?

不需要。唯一的凭据是你的 HasData 密钥。无需在 Google Cloud 中创建任何内容,也无需管理每个 API 的配额。

API 密钥会过期吗?

不会。密钥永不过期。你可以在需要时随时在控制台中轮换它。

数据是实时的还是缓存的?

实时的。每次调用都会在请求时抓取结果页,并携带自己的 requestMetadata.id。即使两次调用完全相同,它们也是两次独立的抓取,而不是重放某个存储的副本。

它与 Google 有关系吗?

没有。HasData 是一项独立服务,与 Google 没有关联,未获得 Google 的认可,也未经 Google 赞助。Google 是其各自所有者的商标。这些工具仅使用公开可用的数据,你有责任按照 Google 的条款以及适用于你的法律使用结果。

HasData 链接

产品页面与请求构建器

Google SERP API

服务器文档

MCP 服务器文档

一个服务器中的全部 57 个工具

HasData/hasdata-mcp

客户端演示与集成

MCP 客户端与集成

我们解析的其他数据面

另外 53 个 scraping API

套餐与积分费用

套餐与积分费用

密钥与使用情况

HasData 控制台

开发

这个仓库是远程服务器的配置和文档。没有构建步骤,也没有需要容器化的内容。

它确实带有一个契约测试。README 文档中记录了八个工具及其具体参数,而上游工具列表可能在本仓库没有提交的情况下发生变化,这会让这个文档悄然过时误导读者。该测试断言文档中工具的确存在、参数与声明一致,并且既在每次推送时运行,也在每周的 CI 中运行。

HASDATA_API_KEY=your_key_here npm test

在 PowerShell 中:

$env:HASDATA_API_KEY = "your_key_here"; npm test

最后一项检查会做一次真实搜索并花费 10 积分——这是金丝雀测试中精确对应错误触发失败条件。列出工具只需要任意非空的密钥就能成功,因此只列出工具的测试即便使用已吊销的密钥也会保持绿色,不暴露状况。

做出贡献

对工具表格和响应样例的优化是最有价值的贡献,因为这些部分最容易漂移。请附上你发起的调用以及获得的响应。来自 fork 的 pull request 会在没有密钥的情况下运行整个测试套件,只是实时检查会跳过而不至于变红。

License

MIT。请查阅 LICENSE

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables integration of Google search functionality into MCP-enabled applications using the Serper API, providing rich search results, configurable parameters, and efficient response handling.
    48
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for web search powered by Google AI Mode (Gemini). Enables any AI agent to search the web in real-time for free and without rate limits.
    2
    172
    MIT

View all related MCP servers

Related MCP Connectors

  • Live Google Maps business search, review, and photo data for AI agents over MCP.

  • Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.

  • Serper MCP — wraps the Serper Google Search API (serper.dev)

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HasData/google-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server