Google Search MCP Server について
Google Search MCP Serverは、構造化されたGoogle検索結果を取得するホステッド型の読み取り専用サーバーです。Google Cloudの設定なしで、検索結果、AI生成回答、ニュース、ショッピング、商品詳細、イベント、短編動画を必要とするMCPクライアント向けです。
主な機能
- 01自然検索結果とSERP機能の取得
- 02AI OverviewとAI Modeの回答取得
- 03Googleニュースとショッピングの検索
- 04商品詳細と販売情報の展開
- 05イベントと短編動画の取得
活用シーン
- 01検索語の自然検索結果とAI Overviewを収集
- 02People Also Askの質問に対する引用付き回答を取得
- 03ショッピング一覧と商品販売情報を比較
- 04最新ニュースや短編動画の結果を取得
MCP 対応
streamable HTTP経由で、構造化JSONを返す10種類の読み取り専用Google検索ツールをMCPクライアントに提供します。認証にはHasData API keyを使い、stdioのみのクライアントは付属のランチャーパッケージで接続できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.hasdata.com/mcp?apis=google_serpclaude mcp add --transport http google-search-mcp-server-dbfaf4 https://mcp.hasdata.com/mcp?apis=google_serp{"mcpServers":{"google-search-mcp-server-dbfaf4":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=google_serp"}}}Cursor で開く{"servers":{"google-search-mcp-server-dbfaf4":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=google_serp"}}}VS Code で開く{"mcpServers":{"google-search-mcp-server-dbfaf4":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=google_serp"}}}{"mcpServers":{"google-search-mcp-server-dbfaf4":{"serverUrl":"https://mcp.hasdata.com/mcp?apis=google_serp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.hasdata.com/mcp?apis=google_serp認証が必要ツール
10| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| q | string | はい | SERP をスクレイピングする検索語句を指定します。 |
| location | string | いいえ | 検索に使用する Google の正式な地域名です。 |
| uule | string | いいえ | エンコードされた地域パラメーターです。 |
| gl | string | いいえ | 検索対象を限定する国の 2 文字の国コードです。ドキュメントに記載された値を正確に 1 つ指定してください(245 種類に対応)。例:`ac`、`af`。 |
| hl | string | いいえ | 検索に使用する言語の 2 文字コードです。ドキュメントに記載された値(159 種類)のいずれかを正確に指定してください。例:`af`、`ak`。 |
| continuable | boolean | いいえ | 既存の AI Mode の会話を続行するかどうか。 |
| subsequentRequestToken | string | いいえ | 以前の AI Mode リクエストを続行するためのトークン。 |
詳細
Google Search MCP サーバー(SERP)
Claude、Cursor、Windsurf、およびその他すべての MCP クライアントに、読み取り専用の Google Search ツールを8つ提供するホスト型の Model Context Protocol(MCP)サーバーです。AI Overview と「他の人はこちらも質問」を含むリアルタイムの SERP を取得し、Google AI Mode でクエリを実行して、ニュース、ショッピング、商品詳細、ショート動画の結果を、すべて構造化 JSON で読み取れます。Google Cloud プロジェクトも検索エンジンの設定も不要です。
毎月1,000クレジットが無料で、カードの登録も不要です。これは SERP 全体の取得なら100回、5クレジットの呼び出しなら200回分に相当します。
https://mcp.hasdata.com/mcp?apis=google_serp
ここでは「SERP」と「Google Search」は同じ製品を指します。このサーバーは、解析済みの Google 検索エンジン結果ページを返します。
目次
必要なもの
カスタムヘッダーを使ったストリーミング可能な HTTP に対応する MCP クライアント。カード登録なしで無料で作成できる HasData API キー(ダッシュボードから取得できます)。無料枠では、ツールに応じて月あたり約100~200回呼び出せます。それ以外は何も必要ありません。これはリモートサーバーなので、最も簡単な方法は URL とヘッダーを使うことで、Google Cloud プロジェクトや Programmable Search Engine の設定は不要です。stdio のみのクライアントでは、代わりに @hasdata/google-search-mcp(npm)または hasdata-google-search-mcp(PyPI)のランチャーを使用できます。
クイックスタート
| URL | https://mcp.hasdata.com/mcp?apis=google_serp |
| トランスポート | HTTP、ストリーム可能 |
| 認証ヘッダー | x-api-key: HASDATA_API_KEY |
サーバー URL はすべてのクライアントで同じです。Claude Code と Claude Desktop で実際に動作させています。ほかのブロックは、各クライアントがリモートサーバー向けにドキュメントで定めている形式に従っています。
OAuth に対応したクライアントでは、同じ URL をコネクターとして追加してサインインでき、設定ファイルにキーを記述する必要はありません。
Claude Code
claude mcp add --transport http google-search "https://mcp.hasdata.com/mcp?apis=google_serp" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
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" }
}
}
}
Node ではなく Python を使いますか? ランチャーを PyPI パッケージに置き換えれば、手動でインストールせずに uvx で実行できます。
{
"mcpServers": {
"google-search": {
"command": "uvx",
"args": ["hasdata-google-search-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
OAuth に対応したクライアントでは、代わりに URL をカスタムコネクターとして追加すれば、ランチャーを省略できます。
Cursor
.cursor/mcp.json:
{
"mcpServers": {
"google-search": {
"url": "https://mcp.hasdata.com/mcp?apis=google_serp",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"google-search": {
"serverUrl": "https://mcp.hasdata.com/mcp?apis=google_serp",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Cline
{
"mcpServers": {
"google-search": {
"url": "https://mcp.hasdata.com/mcp?apis=google_serp",
"type": "streamableHttp",
"headers": { "x-api-key": "HASDATA_API_KEY" },
"disabled": false
}
}
}
VS Code
.vscode/mcp.json:
{
"servers": {
"google-search": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=google_serp",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Gemini CLI
~/.gemini/settings.json:
{
"mcpServers": {
"google-search": {
"httpUrl": "https://mcp.hasdata.com/mcp?apis=google_serp",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
プロンプトの例
Google で
best running shoesを検索し、オーガニック検索結果の上位 10 件と AI Overview を教えてください。
1 回の呼び出しで 10 クレジットです。SERP のレスポンスには、オーガニック検索結果とともに AI Overview が含まれます。
同じクエリについて、People Also Ask の各質問を取り出し、それぞれの AI Overview の回答をソース付きで取得してください。
質問ごとに 1 回の呼び出しで、それぞれ 10 クレジットです。各 relatedQuestions エントリーには aiOverview.pageToken が含まれており、AI Overview ツールはそのトークンを回答ブロックと参照情報に変換します。
Google AI Mode に
what is the Model Context Protocolと質問し、引用元付きの回答を教えてください。
1 回の呼び出しで 10 クレジットです。AI Mode は生成した回答をテキストブロックと参照リストで返します。
Google Shopping で
nike air maxを検索し、上位の結果の商品カードの詳細を取得してください。販売している店舗、価格帯、レビューの内訳をすべて教えてください。
呼び出しは 2 回です。Shopping は 10 クレジットで、商品ごとにトークンを返します。イマーシブ商品ツールは 5 クレジットを使って、そのトークンを店舗、バリエーション、レビューの情報に展開します。
artificial intelligenceの最新の Google News を取得し、別途cooking pastaのショート動画の検索結果も取得してください。
呼び出しは 2 回で、それぞれ 10 クレジットです。
このワークフローは 2 つの連鎖を活用します。SERP のレスポンスには aiOverview が直接含まれ、People Also Ask の各質問には pageToken が付与されるため、Google の生成回答は検索時に追加コストなしで取得するか、質問ごとに 10 クレジットの追加呼び出し 1 回で取得できます。Shopping の検索結果も商品ごとにトークンを返すため、リスティングから複数店舗に対応した詳細な商品カードへの展開は、1 回の呼び出しで完了します。
ツール
| ツール | 返される内容 |
|---|---|
hasdata_google_serp_ai_mode_getAiModeResponse | 対話形式の回答テキスト、引用元リンク、サブトピックの内訳、フォローアップの提案、および複数ターンの継続に使う subsequentRequestToken です。1 回の呼び出しにつき 10 クレジット |
hasdata_google_serp_ai_overview_getAiOverviewResponse | AI が生成した回答テキスト、参照元 URL、展開されたサブトピックのセクションです。1 回の呼び出しにつき 10 クレジット |
hasdata_google_serp_events_getEventInformation | イベント名、開始日時、会場名と住所、チケット/参照元リンク、説明、サムネイルです。1 回の呼び出しにつき 10 クレジット |
hasdata_google_serp_immersive_product_getImmersive_e29f691177 | 複数店舗のオファー(販売店、価格、送料、状態、URL)、製品仕様、画像、評価、および nextPageToken です。1 回の呼び出しにつき 10 クレジット |
hasdata_google_serp_news_getGoogleNews | 記事のタイトル、抜粋、配信元、公開日、サムネイル、URLに加え、トピック、サブセクション、記事クラスターを移動するためのトークンです。1 回の呼び出しにつき 10 クレジット |
hasdata_google_serp_product_getProductInformation | 製品名、画像、価格、評価、仕様、販売店のオファー(販売者、送料、状態、合計価格)、および searchType に応じたレビュー本文です。1 回の呼び出しにつき 10 クレジット |
hasdata_google_serp_serp_getSearchResults | オーガニック検索結果(タイトル、リンク、抜粋、掲載順位)、広告、ナレッジグラフ、関連検索、他のユーザーはこちらも質問、ローカルパック、強調スニペット、AI Overview の pageToken、およびリッチ…. 1 回の呼び出しにつき 10 クレジット |
hasdata_google_serp_serp_light_getSearchResults | オーガニック検索結果(タイトル、リンク、表示リンク、抜粋、サイトリンク、拡張情報、日付、評価、レビュー件数)、テキストブロックと参照元を含む AI Overview、…. 1 回の呼び出しにつき 5 クレジット |
hasdata_google_serp_shopping_getSearchResults | 製品名、価格、販売店/参照元、評価、レビュー件数、サムネイル、製品リンク、productId、immersiveProductPageToken、および hasdata_link を含むフィルターチップ…. 1 回の呼び出しにつき 10 クレジット |
hasdata_google_serp_short_videos_getShortVideosSearchResults | 動画タイトル、サムネイル、再生時間、配信元プラットフォーム、チャンネル/クリエイター、公開日、動画への直接リンクです。1 回の呼び出しにつき 10 クレジット |
10 個のツールはすべて読み取り専用です。以下のサンプルは実際の呼び出しから抜粋して短縮したもので、結果は Google の変更に応じて変わるため、データの形式を示すものとしてご覧ください。各ツール名からエンドポイントのリファレンスに移動できます。
サンプルはペイロードであり、レスポンス全体ではありません。tools/call の結果には 1 つのテキストブロックが含まれ、そのテキスト自体が url、status、text、json を格納する JSON で、スクレイピングしたデータは json の下にあります。生の JSON-RPC レスポンスでは、パスは result.content[0].text で、これをパースしてから .json を参照します。チャットクライアントはこれを自動で展開しますが、エンドポイントに直接アクセスするコードでは展開されません。
Google SERP
hasdata_google_serp_serp_getSearchResults
クエリに対する検索結果ページ全体です。
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | yes | ユーザーが入力する場合とまったく同じ検索クエリ |
gl / hl | string | 2 文字の国コードと言語コード | |
location / uule | string | 名前または uule 文字列で指定する検索対象の地域 | |
num | number | 1 ページあたりのおおよその結果数。Google は現在、1 ページあたり約 10 件に制限しており、それを超える値は無視されるため、num を 10 より大きくしても取得件数は増えません | |
start | number | ページング用の結果オフセット | |
tbm / tbs | string | 検索タイプと詳細フィルター。Google の生のパラメーターです | |
deviceType | string | desktop、mobile、tablet のいずれか |
searchInformation、organicResults、aiOverview、relatedQuestions、relatedSearches、perspectives、immersiveProducts、pagination を返します。クエリに対して Google が表示するブロックが含まれます。オーガニック検索結果の各項目には、position、title、link、displayedLink、source、snippet、snippetHighlitedWords、date、images が含まれます。
AI Overview は 2 つの方法で返されます。通常、
aiOverviewはtextBlocksとreferencesを含むインライン形式で、すぐに読み取れます。Google がトークンでゲートする場合は、ブロックの代わりにpageTokenとhasdataLinkがaiOverviewに含まれます。すべてのrelatedQuestions項目も後者の形式です。項目にはquestionと、同じpageTokenおよびhasdataLinkを含むaiOverviewがあり、後述の AI Overview ツールで展開できます。つまり、「他の人はこちらも質問」の回答は、トークンを 1 つずつ取得する AI Overview です。トップレベルのaiOverviewは、ほとんどのクエリではインライン形式ですが、一部ではトークン形式なので、どちらの形式でも読み取ってください。
{
"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 トークンを回答に展開します。
| Parameter | Type | Required | Notes |
|---|---|---|---|
pageToken | string | yes | SERP レスポンスの aiOverview.pageToken。relatedQuestions に含まれるものも対象です。同じトークンオブジェクトには hasdataLink も含まれており、このツールを使わずに同じ回答を取得できる REST URL が用意されています |
textBlocks と references を含む aiOverview を返します。SERP からブロックではなくトークンが返された場合に AI Overview を読み取る方法であり、「他の人はこちらも質問」の各質問を出典付きの回答にする方法でもあります。
トークンの有効期間は約 4 分です。期限切れのトークンは空の結果を返すのではなく、ツールエラーになります。
isError: trueとHasData API error: 400 Bad Requestというテキストが返されます。誤ったキーの場合と同じようにエラーを捕捉し、新しいトークンを取得するために SERP を再実行してください。
{
"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 の回答です。会話形式の検索結果を返します。
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | yes | AI Mode に尋ねる質問 |
gl / hl | string | 国コードと言語コード | |
location / uule | string | 地理的な場所 | |
continuable | boolean | 後続の呼び出しで回答を続けられるようにするには、true に設定します | |
subsequentRequestToken | string | スレッドを続けるための、以前の AI Mode レスポンスのトークン |
生成された回答と引用元を示す textBlocks と references を返します。
Google SERP Light
hasdata_google_serp_serp_light_getSearchResults
ページの主要部分を返す、より低コストな検索です。
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | yes | 検索クエリ |
gl / hl | string | 国と言語のコード | |
location / uule | string | 地理的位置 | |
num / start | number | ページサイズとオフセット |
organicResults、aiOverview、relatedSearches、filters、appliedLocation、searchInformation、paginationを返します。通常のSERPの半分のクレジットで利用でき、追加のブロックなしでオーガニック検索結果とAI Overviewを取得したい場合に適しています。
Google News
hasdata_google_serp_news_getGoogleNews
クエリまたはニュースセクションに対するGoogle Newsの検索結果です。
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | クエリです。セクションを読み取る場合は省略します | |
gl / hl | string | 国と言語のコード | |
topicToken / sectionToken / storyToken / publicationToken | string | 前のレスポンスのトークンを使って、トピック、セクション、記事、または出版物を掘り下げます |
newsResults、menuLinks、relatedTopics、relatedPublicationsを返します。各ニュース項目には、position、title、link、nameとiconを含むsource、thumbnail、dateが含まれます。
Google Shopping
hasdata_google_serp_shopping_getSearchResults
クエリに対するショッピング検索結果です。
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | yes | 商品の検索クエリ |
gl / hl | string | 国と言語のコード | |
location / uule | string | 地理的位置 | |
start | number | ページング用の検索結果オフセット | |
tbs | string | 高度なショッピングフィルター。Googleの生パラメーター |
shoppingResults、filters、refineSearchFilters、searchInformation、paginationを返します。各検索結果には、position、title、productId、price、extractedPrice、rating、reviews、source、category、thumbnail、immersiveProductPageTokenが含まれます。
immersiveProductPageTokenは、以下のイマーシブ商品ツールへの入力です。一時的なトークンなので、商品データを取得する場合は有効なうちに展開してください。古いトークンが失敗した場合は、ショッピング検索を再実行して新しいトークンを取得してください。
{
"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_e29f691177
ショッピング検索結果の背後にある、商品カードの全情報です。
| Parameter | Type | Required | Notes |
|---|---|---|---|
pageToken | string | yes | ショッピング検索結果またはSERPのimmersiveProductsエントリから取得したimmersiveProductPageToken |
moreStores | boolean | さらに多くの店舗をリクエストします | |
nextPageToken | string | 前のレスポンスのstoresNextPageTokenを使って店舗一覧をページングします |
title、brand、rating、reviews、priceRange、各販売者の価格とリンクを含むstores配列に加え、variants、reviewsImages、userReviews、topInsights、aboutTheProduct、discussionsAndForumsを含むproductResultsオブジェクトを返します。単一の商品リストから、複数の店舗にまたがる全体像を取得できる唯一の呼び出しです。
{
"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 | 1 つ以上の言語制限 | |
page | number | 検索結果ページ | |
deviceType | string | desktop、mobile、または tablet |
shortVideos を返します。各動画には position、title、link、source、sourceLogo、profileName、duration、clip、thumbnail が含まれます。
プロンプトとリソース
このサーバーには 5 つのプロンプトが用意されています。クライアントは、ユーザーにツール呼び出しを作成させる代わりに、すぐに使えるワークフローを提供できます。
| プロンプト | 内容 |
|---|---|
google_search | Google を検索し、上位のオーガニック検索結果を要約します。 |
google_news | トピックに関する最近のニュース記事を見つけます。 |
google_shopping | Google ショッピングの商品を比較します。 |
google_short_videos | トピックに関するショート動画を見つけます。 |
google_ai_mode | Google AI Mode の回答とその情報源を取得します。 |
また、サーバーは、受け付ける値が固定リストであるパラメーターごとに 1 つ、合計 10 個のリソースを公開します。拒否された呼び出しから使用可能な値を学ぶより、リソースを読み取るほうが低コストで、クレジットも消費しません。各 URI は hasdata://google_serp/<parameter> です。
| パラメーター | 値 | 用途 |
|---|---|---|
gl | 245 | 検索対象に限定する国の 2 文字の国コードです。 |
hl | 159 | 検索に使用する言語の 2 文字の言語コードです。 |
so | 2 | ストーリー内の記事の並べ替え順です。storyToken と一緒にのみ使用してください。 |
domain | 195 | 使用する Google ドメインです。デフォルトは google.com です。 |
searchType | 3 | 「offers」、「specs」、「reviews」など、特定の商品情報を取得するためのパラメーターです。 |
lr | 43 | 「lr」パラメーターは、検索結果を返すウェブサイトの言語を指定します。このパラメーターは、ウェブコンテンツの言語に基づいて結果を絞り込みます。 |
safe | 2 | アダルトコンテンツのフィルタリングオプションです。 |
tbm | 5 | 検索の種類を指定します。 |
deviceType | 3 | 検索に使用するデバイスの種類を指定します。 |
cr | 237 | 検索対象に限定する国の国コードです。 |
どちらのリストも API キーなしで提供されるため、クライアントはユーザーが登録する前に読み取ることができます。
エラーと失敗時の動作
ツール呼び出しでクライアントに HTTP エラーコードが返ることはほとんどありません。MCP レイヤーは 200 を返し、isError を true にして、理由をテキストとして結果に含めます。エージェントには、ステータス行が返ると思われる場面でメッセージが返ります。
キーが間違っていても、接続エラーではなくツールの出力として現れます。 ツールの一覧表示では空でないキーなら何でも受け付けるため、クライアントはハンドシェイクを完了し、正常を示す緑色の表示になります。その後、最初のツール呼び出しで isError: true とテキスト HasData API error: 401 Unauthorized が返ります。フローのそれ以前の段階では問題が報告されないため、この文字列に注意してください。
実際に発生する HTTP エラーは、キーがない場合だけです。認証はどのツールよりも前に行われ、接続自体が 401 で失敗します。
スキーマに反する引数は、検索として実行される前に拒否されます。 q を指定しない検索では、フィールド名とともに isError: true とテキスト MCP error -32602: Input validation error が返ります。データは取得されず、料金も発生しません。
期限切れの AI Overview トークンはエラーになります。 SERP レスポンスのトークンは約 4 分間有効です。以前に保存したトークンを展開すると、キーが間違っている場合と同じ形式で、isError: true とテキスト HasData API error: 400 Bad Request が返ります。このエラーを捕捉し、SERP を再実行して新しいトークンを取得してください。
Google に表示されなかったブロックは、空ではなく存在しません。 AI Overview、ショッピング欄、または People Also Ask がないクエリでは、空の値を持つキーではなく、それらのキーを含まないレスポンスが返ります。読み取る前にキーの有無を確認してください。
データを含む結果には、サポートへの問い合わせで伝えると役立つ requestMetadata.id と、その呼び出しで保存されたアーティファクトへの html および json リンクも含まれます。
料金、無料枠、制限
クレジットはツールごとに消費されます。フル SERP、AI Mode、News、Shopping、短い動画、イマーシブ商品、AI Overview ツールは、1 回の呼び出しにつき 10 クレジットです。SERP Light は 5 クレジットです。SERP レスポンスに含まれる AI Overview は、10 クレジットの呼び出しに含まれるため無料ですが、AI Overview ツールでトークンを展開する場合は、すべての People Also Ask トークンを含め、別途 10 クレジットが必要です。レスポンスのサイズによって料金は変わりません。
無料枠は毎月 1,000 クレジットで、カード登録は不要です。これはフル SERP を 100 回、または 5 クレジットの呼び出しを 200 回実行できる量です。請求サイクルごとに更新されるため、呼び出し頻度の低いエージェントなら無料枠を無期限に利用できます。
有料プランは、200,000 クレジットで月額 $59から始まります。利用量が多いほどクレジット単価は下がります。最新の料金は料金ページで確認できます。
プランによって同時実行数も決まります。無料枠では一度に 1 リクエスト、Startup では 5、Basic では 15、Growth の各プランでは 50~500 件を実行できます。制限があるのは同時実行数だけです。1 分あたりのリクエスト数に別途上限はありません。無人で実行するものでは、上限超過に備えて適切に処理してください。クエリを並列実行するエージェントでは、上限に達する可能性があります。
ツールの選択
?apis=google_serp を指定すると、8 つのツールが公開されます。このパラメーターにはリストを指定でき、?apis=google_serp,google_maps とすると、検索ツールに Google Maps ツールが追加されます。パラメーターを省略すると、HasData が公開しているすべてのツール(現在 57 個)が利用できます。
通常は、絞り込んだリストをデフォルトにするのが適切です。50 個のツールから選ぶモデルよりも、8 個のツールから選ぶモデルのほうが正しく選択できる可能性が高く、ツールの説明自体も毎ターンのコンテキストを消費するためです。
比較
Google は現在、一般向け検索 API を提供していません。公式な方法は Custom Search JSON API ですが、この API が答える問いは、ここで扱うものとは異なります。
Custom Search JSON API は、設定した Programmable Search Engine を検索します。検索対象は指定したサイト、または全ウェブ検索を有効にした場合はウェブ全体のインデックスです。無料で利用できるのは 1 日 100 クエリまでで、それ以降は 1,000 クエリごとに課金され、1 日あたりの上限があります。また、返される結果セットは簡略化されています。AI Overview、People Also Ask、ローカルパック、ショッピング、ニュース、ショート動画は、API の機能ではなく、ライブの検索結果ページの機能であるため返されません。自分のサイトや固定のサイト群を検索し、Google の公式規約の範囲内で利用したい場合に適したツールです。
このサーバーは、訪問者が見るライブの Google 検索結果ページを取得し、解析して返します。設定は不要で、クエリは絞り込まれたエンジンではなく Google 全体を対象に実行され、AI Overview、People Also Ask、ショッピングなどの情報が構造化ブロックとして返されます。
| Custom Search JSON API | このサーバー | |
|---|---|---|
| 検索対象 | 設定した Programmable Search Engine | ライブの Google 検索結果ページ |
| セットアップ | Cloud プロジェクトと検索エンジン | API キー 1 つ |
| AI Overview と People Also Ask | 返されません | インライン、またはトークン経由 |
| ショッピング、ニュース、ショート動画、ローカル情報 | 返されません | 専用ツール |
| 無料枠 | 1 日 100 クエリ | 毎月 1,000 クレジット |
判断の決め手となるのは 2 つです。自分のサイトだけを検索したい場合や、そのために Google の公式 API を使いたい場合は、Custom Search JSON API が適しています。実際の SERP、その AI Overview、または Google が検索ユーザーに表示する各種パネルが必要な場合、それらを返さない公式 API ではなく、このサーバーを利用してください。
このサーバーが行わないこと。 検索結果の背後にあるページのクロール、ランキング履歴の取得、書き込みを伴う処理は行いません。解析済みの検索結果ページを返します。
FAQ
Google Search MCP サーバーとは何ですか?
AI クライアントが呼び出せるツールとして Google の検索結果を提供するサーバーです。クライアントは Model Context Protocol 経由でツール呼び出しを送信し、サーバーが検索結果ページを取得して構造化された JSON を返すため、モデルは結果を扱い、HTML ページを見る必要はありません。このサーバーは読み取り専用ツールを 8 つ提供し、リモートで動作するため、クライアントは URL に接続するだけで利用でき、ローカルプロセスは起動しません。
ここで SERP と Google Search は同じ意味ですか?
はい。SERP は検索エンジンの検索結果ページを指します。このツールは Google の検索結果ページを返すため、このリポジトリでは「SERP API」と「Google Search API」は同じ意味です。
Google 公式の Google Search MCP サーバーはありますか?
Google は MCP サーバーも一般向け検索 API も公開していません。最も近い公式製品は、設定した Programmable Search Engine を検索する Custom Search JSON API です。このサーバーを含むコミュニティ製の MCP サーバーはいくつかあり、ライブの検索結果ページを返します。
AI Overview を取得するにはどうすればよいですか?
SERP 呼び出しを実行してください。aiOverview は通常、textBlocks と references とともにインラインで返されます。pageToken として返された場合や、People Also Ask の各質問については、そのトークンを AI Overview ツールに渡して回答を取得してください。トークンはすぐに期限切れになるため、新しい呼び出しで取得したトークンを展開してください。
Google Cloud プロジェクトや Programmable Search Engine は必要ですか?
いいえ。必要な認証情報は HasData キーだけです。Google Cloud で作成するものはなく、API ごとのクォータを管理する必要もありません。
API キーに有効期限はありますか?
いいえ。キーに有効期限はありません。必要に応じて、ダッシュボードでキーをローテーションしてください。
データはライブですか、それともキャッシュされていますか?
ライブです。各呼び出しはリクエスト時に検索結果ページを取得し、個別の requestMetadata.id を持ちます。同じ内容の呼び出しを 2 回行った場合、それぞれ別個に取得され、保存済みのコピーが再生されるわけではありません。
Google と提携していますか?
いいえ。HasData は独立したサービスであり、Google と提携、承認、または後援を受けていません。Google はそれぞれの所有者の商標です。ツールは公開されているデータのみを使用します。結果を Google の規約および適用される法律に沿って使用する責任は、お客様にあります。
HasData のリンク
| 製品ページとリクエストビルダー | Google SERP API |
| サーバーのドキュメント | MCP サーバーのドキュメント |
| 57 個すべてのツールを備えた単一のサーバー | HasData/hasdata-mcp |
| クライアントの利用手順 | MCP クライアントと統合 |
| その他に解析できる対象 | その他 53 個のスクレイパー API |
| プランとクレジット料金 | プランとクレジット料金 |
| キーと使用状況 | HasData ダッシュボード |
| npm の Node ランチャー | @hasdata/google-search-mcp |
| PyPI の Python ランチャー | hasdata-google-search-mcp |
開発
このリポジトリには、リモートサーバーの設定とドキュメントが含まれています。ビルド手順はなく、コンテナ化するものもありません。
ただし、契約テストは含まれています。README には特定のパラメーターを持つ 8 個のツールが記載されていますが、上流のツール一覧はここでのコミットなしに変更されることがあり、その場合、このファイルに気付かないうちに誤った情報が残ってしまいます。このテストでは、記載されているツールが主張どおりのパラメーターで存在することを検証し、CI で毎週、またプッシュのたびに実行します。
HASDATA_API_KEY=your_key_here npm test
PowerShell の場合:
$env:HASDATA_API_KEY = "your_key_here"; npm test
最後のチェックでは実際に検索を実行し、10 クレジットを消費します。これは、適切な理由で失敗し得るカナリアとしての料金です。ツール一覧の取得は空でないキーであれば成功するため、ツール一覧の取得だけを行うテストでは、無効化されたキーでも成功してしまいます。
コントリビューション
ツールの表とレスポンスのサンプルは内容が古くなりやすいため、それらの修正が最も役立つコントリビューションです。実行した呼び出しと、受け取ったレスポンスを含めてください。フォークからのプルリクエストではキーなしでテストスイートが実行され、ライブチェックは失敗せずにスキップされます。
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。