HasData Google Trends について
HasData Google Trends は、Google Trends のデータを取得するホスト型 MCP サーバーです。時系列、地域別の関心度、関連クエリやトピックを JSON で必要とする分析担当者やエージェント向けです。
主な機能
- 01関心度の時系列取得
- 02地域別の関心度表示
- 03上昇中・人気の関連クエリ
- 04相対スコア付き関連トピック
活用シーン
- 01検索語への関心の推移を追跡
- 02複数語句の検索関心度を比較
- 03関心度の高い地域を特定
- 04上昇中の関連クエリを確認
MCP 対応
MCP クライアントに、読み取り専用の Google Trends ツール、プロンプト、パラメーター用リソースを提供します。クライアントはホスト型 HTTP エンドポイントに接続し、x-api-key ヘッダーまたは OAuth 対応コネクターを利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.hasdata.com/mcp?apis=google_trendsclaude mcp add --transport http com-hasdata-google-trends https://mcp.hasdata.com/mcp?apis=google_trends{"mcpServers":{"com-hasdata-google-trends":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=google_trends"}}}Cursor で開く{"servers":{"com-hasdata-google-trends":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=google_trends"}}}VS Code で開く{"mcpServers":{"com-hasdata-google-trends":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=google_trends"}}}{"mcpServers":{"com-hasdata-google-trends":{"serverUrl":"https://mcp.hasdata.com/mcp?apis=google_trends"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.hasdata.com/mcp?apis=google_trends認証が必要ツール
2| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| pets | number | いいえ | ペットの数。 |
| neLat | number | いいえ | 地図のバウンディングボックスの北東角の緯度。4 つの境界ボックス座標をすべて指定すると、場所ではなくボックス内でリスティングを検索します。 |
| neLng | number | いいえ | 地図のバウンディングボックスの北東角の経度。 |
| swLat | number | いいえ | 地図のバウンディングボックスの南西角の緯度。 |
| swLng | number | いいえ | 地図のバウンディングボックスの南西角の経度。 |
| adults | number | いいえ | 大人の人数。 |
| checkIn | string | はい | リスティングのチェックイン日。 |
| infants | number | いいえ | 乳幼児の人数。 |
| checkOut | string | いいえ | リスティングのチェックアウト日。 |
| children | number | いいえ | 子どもの人数。 |
| location | string | いいえ | リスティングを検索する場所。完全な地図バウンディングボックス(neLat、neLng、swLat、swLng)を指定しない場合は必須です。 |
| nextPageToken | string | いいえ | 次のページの結果を取得するためのトークン。 |
詳細
Google Trends MCP サーバー
ホスト型の Model Context Protocol(MCP)サーバーです。Claude、Cursor、Windsurf、その他のあらゆる MCP クライアントから、Google Trends のツールを 1 つ利用できます。任意の検索語句について、時間の経過に伴う関心度、地域別の関心度、関連する上昇中および人気の検索キーワードとトピックを、すべて構造化された JSON で取得できます。維持管理が必要なスクレイピングライブラリも、Google アカウントも必要ありません。
毎月 1,000 クレジットを無料で利用でき、カードは不要です。Google Trends を 100 回呼び出せます。
https://mcp.hasdata.com/mcp?apis=google_trends
目次
必要なもの
MCP クライアントと、ダッシュボードから取得できる HasData API キーが必要です。カードなしで無料登録でき、無料枠では 1 回 10 クレジットのレートで月に約 100 回呼び出せます。これはリモートサーバーなので、最も簡単な方法は URL と x-api-key ヘッダーを使うことです。コンテナーを実行する必要はなく、処理のどの段階でも Google アカウントは不要です。stdio のみを使用するクライアントからは、npm では @hasdata/google-trends-mcp、PyPI では hasdata-google-trends-mcp として公開されている軽量なランチャーを介して接続できます。以下で説明します。
クイックスタート
サーバー URL は、どのクライアントでも同じです。Claude Code と Claude Desktop では、実際に動作を確認しています。ほかのブロックは、各クライアントがリモートサーバー向けにドキュメントで定めている形式に従います。
| 項目 | 値 |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=google_trends |
| トランスポート | HTTP、ストリーミング可能 |
| 認証ヘッダー | x-api-key: HASDATA_API_KEY |
OAuth に対応しているクライアントでは、同じ URL をコネクターとして追加してサインインできるため、設定ファイルにキーを記載する必要はありません。
Claude Code
claude mcp add --transport http google-trends "https://mcp.hasdata.com/mcp?apis=google_trends" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
「Settings」から「Connectors」、「Add custom connector」の順に選択し、https://mcp.hasdata.com/mcp?apis=google_trends を貼り付けてサインインします。
設定ファイルを使う場合、Claude Desktop はローカルの(stdio)サーバーのみを読み込むため、stdio ランチャーを介してリモートサーバーに接続します。@hasdata/google-trends-mcp パッケージはそのランチャーで、キーは環境変数から読み込みます。claude_desktop_config.json に以下を追加してください。
{
"mcpServers": {
"google-trends": {
"command": "npx",
"args": ["-y", "@hasdata/google-trends-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Node の代わりに Python を使う場合は、ランチャーを PyPI パッケージに置き換えてください。uvx が実行するため、手動でインストールする必要はありません。
{
"mcpServers": {
"google-trends": {
"command": "uvx",
"args": ["hasdata-google-trends-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Cursor
すべてのプロジェクトで使う場合は ~/.cursor/mcp.json、1 つのプロジェクトで使う場合は .cursor/mcp.json を使用します。
{
"mcpServers": {
"google-trends": {
"url": "https://mcp.hasdata.com/mcp?apis=google_trends",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json を使用します。Windsurf ではフィールド名は url ではなく serverUrl です。
{
"mcpServers": {
"google-trends": {
"serverUrl": "https://mcp.hasdata.com/mcp?apis=google_trends",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
VS Code
ワークスペース内の .vscode/mcp.json を使用します。
{
"servers": {
"google-trends": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=google_trends",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
プロンプトの例
コードではなくプロンプトです。どれか 1 つを貼り付けると、エージェントがツールを自分で選びます。成功した呼び出しは 1 回につき 10 クレジットかかるため、それぞれ呼び出し回数を記載しています。
過去 12 か月間の米国における「cold brew coffee」への関心をグラフにして、ピークとなった週を教えてください。
1 回の呼び出しで 10 クレジットです。週ごとの時系列データが 1 回のリクエストで返されます。
米国における「cold brew coffee」の関連クエリのうち、上昇中のものを教えてください。「Breakout」と表示されたものには印を付けてください。
1 回の呼び出しで 10 クレジットです。
世界全体で過去 5 年間の「cold brew」と「iced coffee」への関心を比較し、どちらが伸びているか教えてください。
1 回の呼び出しで 10 クレジットです。このツールは、1 回の時系列リクエストで複数の検索語に対応します。
過去 90 日間の米国各州における「sunscreen」への関心を表示して、需要が最も高い地域を確認できるようにしてください。
1 回の呼び出しで 10 クレジットです。これは州レベルでの地域別関心度の表示です。
検索語の比較は 1 回の timeseries 呼び出しで行えます。地域別の内訳、関連クエリ、関連トピックはそれぞれ独自の dataType であるため、グラフと上昇中のクエリの両方を求めるプロンプトでは、呼び出しが 2 回必要です。
ツール
| ツール | 返される内容 |
|---|---|
hasdata_google_trends_search_getTrendsData | 関心度の時系列データ、地域レベルの内訳、相対スコア付きの上昇中/人気の関連トピックおよびクエリ。1 回の呼び出しにつき 10 クレジット |
ツールは 1 つで、読み取り専用です。以下のサンプルは実際の呼び出しから抜粋したもので、トレンドに応じて数値は変わります。データの形を示すものとしてご覧ください。ツール名にはエンドポイントのリファレンスへのリンクがあり、すべてのパラメーターが記載されています。
サンプルはペイロードであり、レスポンス全体ではありません。tools/call の結果には 1 つのテキストブロックが含まれ、そのテキスト自体が url、status、text、json を格納した JSON です。スクレイピングしたデータは json の下にあります。生の JSON-RPC レスポンスでは、パスは result.content[0].text です。これを解析してから .json を参照します。チャットクライアントはこの処理を代わりに行いますが、エンドポイントと直接通信するコードでは自分で処理する必要があります。
Google Trends データを取得
hasdata_google_trends_search_getTrendsData
検索語の人気度の推移、地域別の人気度、関連するクエリやトピックを取得します。
| パラメーター | 型 | 必須 | 備考 |
|---|---|---|---|
q | string | はい | 検索語です。timeseries と geoMap では、比較用にカンマ区切りで最大 5 件の語句を指定できます。6 件目を指定すると 400 エラーになります |
dataType | string | デフォルトは timeseries で、geoMap、relatedTopics、relatedQueries も指定できます。関連する 2 種類では、語句を 1 件だけ指定できます | |
date | string | now 7-d、today 12-m、today 5-y、all などの期間、または yyyy-mm-dd yyyy-mm-dd 形式のカスタム範囲です | |
geo | string | US や US-CA などの地域コードです。空の場合は世界全体が対象です | |
region | string | geoMap 専用の粒度です。country、region(サブ地域)、dma(都市圏)、city を指定できます。デフォルトは geo によって異なり、世界全体では country、geo を指定するとより細かい粒度になります | |
cat | string | 語句を絞り込むカテゴリ ID です。0 はすべてのカテゴリを表します | |
gprop | string | Google のプロパティです。images、news、froogle(ショッピング)、youtube を指定できます。空の場合はウェブ検索です | |
tz | number | 分単位のタイムゾーンオフセットです。デフォルトは 420(PDT)です。時間単位の範囲の区切り方を調整します |
レスポンスのキーは dataType によって異なります。timeseries は interestOverTime.timelineData を返し、geoMap は地域別の人気度を返します。関連する種類では relatedQueries または relatedTopics が返され、それぞれ rising と top に分かれています。指定した種類に対応するキーを読み取ってください。
デフォルトの timeseries は、各データポイントの値を 0 から 100 の範囲で返します。値は文字列と、事前に解析された extractedValue の両方で取得できます。最新のデータポイントには isPartial: true が付くことがよくあります。これは週のデータがまだ揃っていないことを意味します。トレンドを計算する前にこのデータポイントを除外してください。そうしないと、最後の棒が実際には存在しない落ち込みとして表示されます。
{
"interestOverTime": {
"timelineData": [
{ "date": "Apr 12 – 18, 2026", "timestamp": "1775952000", "isPartial": false,
"values": [{ "query": "cold brew coffee", "value": "100", "extractedValue": 100, "hasData": true }] },
{ "date": "Aug 23 – 29, 2026", "timestamp": "1787443200", "isPartial": true,
"values": [{ "query": "cold brew coffee", "value": "44", "extractedValue": 44, "hasData": true }] }
]
}
}
relatedQueries は rising と top に分かれています。rising のエントリは +300% のようなパーセンテージ、または大きすぎて数値化できない急上昇を表す Breakout として表示され、extractedValue にその数値が入ります。Breakout では、実際のパーセンテージを大きく上回るセンチネル値が extractedValue に返されるため、生の数値ではなく文字列のラベルで並べ替えてください。
{
"relatedQueries": {
"rising": [
{ "query": "organic cold brew coffee", "value": "+300%", "extractedValue": 300, "link": "https://trends.google.com/trends/explore?q=organic+cold+brew+coffee&date=today+12-m&geo=US" }
],
"top": [
{ "query": "how to cold brew coffee", "value": "100", "extractedValue": 100, "link": "https://trends.google.com/trends/explore?q=how+to+cold+brew+coffee&date=today+12-m&geo=US" }
]
}
}
エンドポイントのリファレンスには、このツールで使用できるすべての geo、cat、日付形式が記載されています。
プロンプトとリソース
サーバーには、クライアントがユーザーにツール呼び出しの作成を求める代わりに提示できる、すぐに使えるワークフローであるプロンプトが1つ用意されています。
| プロンプト | 機能 |
|---|---|
google_trends | トピックへの関心が時間とともにどう変化するかを確認します。 |
サーバーはこれらに加えて、受け付ける値が固定リストになっているパラメーターごとに1つ、合計5つのリソースを公開しています。拒否された呼び出しから語彙を学ぶより、リソースを読み取る方が手間がかからず、クレジットも消費しません。各 URI は hasdata://google_trends/<parameter> です。
| パラメーター | 値の数 | 選択内容 |
|---|---|---|
geo | 3517 | 検索対象の場所を指定します。未設定または空の場合は、デフォルトで Worldwide になります。 |
region | 4 | データ型に「地域別の関心」を使用する場合に、より詳細な結果を取得するために使います。他のデータ型ではこのパラメーターを受け付けません。デフォルト値は設定された geo の場所によって異なります。利用可能なオプション:- country:国 - region:地域 - dma:都市圏 - city:都市 注:地域のオプションによっては、すべての geo の場所で結果が返されるとは限りません。 |
dataType | 4 | 実行する検索の種類を定義します。利用可能なオプション:- timeseries:期間別の関心(デフォルト)。1回の検索で単一クエリと複数クエリの両方を受け付けます。 - geoMap:地域別の関心。1回の検索で単一クエリと複数クエリの両方を受け付けます。 - relatedTopics:関連トピック。1回の検索で単一クエリのみを受け付けます。 - relatedQueries:関連クエリ。1回の検索で単一クエリのみを受け付けます。 |
cat | 1133 | 検索語のカテゴリです。デフォルト値は0(「すべてのカテゴリ」)です。 |
gprop | 4 | 特定のプロパティで結果を並べ替えます。デフォルトのプロパティはウェブ検索です(gprop パラメーターが未設定または空の場合に適用されます)。利用可能なオプション:- images:画像検索 - news:ニュース検索 - froogle:Google ショッピング - youtube:YouTube 検索 |
どちらのリストも API キーなしで提供されるため、クライアントはユーザーが登録する前に読み取れます。
エラーと失敗するケース
クライアントがツール呼び出しから HTTP エラーコードを受け取ることはほとんどありません。MCP レイヤーは 200 を返し、isError を true に設定して、失敗の理由をテキストとして結果に含めます。エージェントには、ステータス行を想定するような場面でメッセージが表示されます。
キーが誤っていても、接続エラーではなくツール出力として通知されます。 tools/list は空でないキーなら何でも受け付け、ツールを返すため、クライアントはハンドシェイクを完了して正常状態を示します。最初のツール呼び出しで isError: true と HasData API error: 401 Unauthorized というテキストが返されます。それ以前のフローでは問題が報告されないため、この文字列に注意してください。
キーがない場合に限り、実際の HTTP エラーが発生します。 認証はツールの実行前に行われ、接続自体が 401 で失敗します。CORS ヘッダーが含まれているため、ブラウザクライアントは不透明なネットワークエラーではなく、ステータスを読み取れます。
ツールのスキーマに違反する引数は、スクレイピングに進む前に拒否されます。 サーバーは isError: true と MCP error -32602: Input validation error というテキストを返し、問題のあるフィールド名を示します。データは取得されず、課金もされません。
検索ボリュームが少なすぎる語句の場合、エラーではなく、データ配列が空の成功結果が返されます。 検索頻度の低い語句について Google Trends に表示できる情報はなく、requestMetadata.status は引き続き ok です。グラフを作成する前に、データポイントがあるか確認してください。
ドキュメントに記載されたリストにない識別子は、スクレイピング前に拒否されます。 geo と cat は列挙型であるため、未知の値の場合は何も通知されないまま結果が見つからないのではなく、フィールド名と使用可能な選択肢の一覧を含む 422 が返されます。
データを含む結果には、サポートへの問い合わせ時に伝えると便利な requestMetadata.id も含まれています。
料金、無料枠、利用制限
Google Trends の呼び出しは、成功するたびに 1 回あたり 10 クレジットかかります。レスポンスのサイズによって料金は変わりません。5 年分の週次データ系列も、1 週間分のデータも同じ料金です。
無料枠はカード登録不要で毎月 1,000 クレジット、Google Trends の呼び出し 100 回分です。請求サイクルごとに更新されるため、呼び出し回数の少ないエージェントなら無料枠を使い続けられます。
有料プランは、200,000 クレジット(呼び出し 20,000 回分)で月額 $59から利用できます。単価は利用量に応じて下がり、エントリープランでは呼び出し 1,000 回あたり $1.48、Basic では $0.60、Growth ティアでは $0.41です。最新の料金は料金ページをご覧ください。
プランによって同時実行数も決まります。無料枠では一度に 1 件、Startup では 5 件、Basic では 15 件、Growth ティアでは 50~500 件を実行できます。無人で実行するものでは、上限超過時のケースを想定して適切に処理してください。
HTTP ステータスが 200 以外で返されたリクエストには課金されません。データが見つからなかった場合でも、成功した呼び出しとして課金されます。
ツールの選択
apis クエリパラメーターで、エージェントに表示するツールを指定します。ツールが少ないほど、ツール定義に消費されるコンテキストが減り、モデルが誤ったツールを選ぶ可能性も低くなります。
?apis=google_trends the one tool in this repo
?apis=google_trends,google_serp add Google search
?apis=google_trends,youtube trends plus YouTube
このパラメーターには、google_trends のようなプロバイダー名や個別の API 名を指定します。スペルミスのある名前は無視されます。指定した名前がすべて正しくない場合、リクエストは 400 エラーとなり、認識できなかった値と有効な値の一覧がレスポンス本文に記載されます。パラメーターを省略すると、同じエンドポイントから HasData の 57 個すべてのツールが公開されます。
他の方法との比較
Google は、公開されている Trends API を提供していません。一般的な方法は 2 つあります。1 つは非公式の pytrends ライブラリで、同じ内部エンドポイントをリバースエンジニアリングしていますが、Google が変更を加えたり、呼び出し元にレート制限を適用したりすると動作しなくなります。もう 1 つは、独自のスクレイパーを作成する方法です。このサーバーは、安定したスキーマを通じてその作業を担います。
| pytrends / 独自実装 | このサーバー | |
|---|---|---|
| 公式サポート | なし。Google は Trends API を提供していません | 同じデータを扱うスキーマを維持 |
| レート制限と 429 エラー | 頻繁に発生し、自分で対処が必要 | エンドポイント側で処理 |
| 出力 | Pandas のデータフレームまたは整形が必要な生データ | 構造化 JSON。値は解析済み |
| セットアップ | Python 環境の用意と、動作しなくなったときのメンテナンス | キーと URL だけ |
| 料金 | 動作する間は無料 | 無料枠を超えると有料。呼び出し 1 回あたり 10 クレジット |
すでに低い頻度で pytrends を使っていて、動作しなくなったときに修正するのが苦にならないなら、引き続き無料で利用できます。このサーバーは、毎回同じ形式でデータを取得する必要があるエージェントやパイプライン向けです。
FAQ
Google Trends の公式 API はありますか?
いいえ。Google は公開されている Trends API を提供したことがありません。どの方法も、trends.google.com のサイトが使用する同じ内部エンドポイントからデータを取得します。このサーバーは HasData がメンテナンスしており、結果を構造化 JSON で返します。
Google Trends MCP サーバーとは何ですか?
AI クライアントから呼び出せるツールとして Google Trends を公開するサーバーです。クライアントは Model Context Protocol 経由でツール呼び出しを送信し、サーバーがデータを取得して構造化 JSON で返します。モデルはその結果を処理します。このサーバーは単一のツールを公開し、リモートで実行されるため、クライアントは URL に接続するだけで利用でき、ローカルプロセスを起動する必要はありません。
数値は絶対的な検索ボリュームを表していますか?
いいえ。Google Trends 自体も絶対的な検索ボリュームを示しているわけではありません。値は、指定したクエリ、期間、地域の中で 0~100 にスケーリングされた相対的な関心度です。検索数としてではなく、傾向や比較を把握するために使用してください。
最新のデータポイントがほかより低いのはなぜですか?
最新の期間のデータは通常、まだ集計中のため、isPartial: true が返されます。傾向を計算する前に、このデータを除外してください。
複数の検索語を一度に比較できますか?
はい。timeseries と geoMap では、q に検索語をカンマ区切りで指定します。関連クエリと関連トピックのタイプでは、検索語を 1 つだけ指定できます。
ほかの HasData API と一緒に使えますか?
はい。apis パラメーターにはリストを指定できます。?apis=google_trends,google_serp と指定すると、エージェントはトレンドと Google 検索を利用できます。パラメーターを省略すると、すべてを利用できます。
コンプライアンスと個人データ
HasData は公開されているデータのみを取得します。プラットフォームの利用規約によっては自動アクセスが制限される場合があり、コンプライアンスの遵守はご自身の責任です。
HasData のリンク
| 製品ページとリクエストビルダー | Google Trends API |
| サーバーのドキュメント | MCP サーバーのドキュメント |
| 1 つのサーバーで利用できる 57 個すべてのツール | HasData/hasdata-mcp |
| クライアントの利用ガイド | MCP クライアントとインテグレーション |
| そのほかにスクレイピングできるデータ | Google Trends API とその他 54 種類 |
| プランとクレジット費用 | プランとクレジット費用 |
| キーと使用状況 | HasData ダッシュボード |
| npm の Node ランチャー | @hasdata/google-trends-mcp |
| PyPI の Python ランチャー | hasdata-google-trends-mcp |
開発
このリポジトリには、リモートサーバーの設定とドキュメントが含まれています。ビルド手順はなく、コンテナ化するものもありません。
test/ のテストでは、ここでのコミットなしに変更される可能性があるツールのコントラクトを検証します。具体的には、?apis=google_trends がツールをちょうど 1 つ返すこと、必須パラメーターが引き続き宣言されていること、名前が変わっていないこと、使用中のキーが実際に受け入れられることを確認します。最後のチェックでは実際にツールを呼び出すため、10 クレジットを消費します。これは、適切な理由で失敗する可能性のあるカナリアテストの費用です。
# macOS and Linux
HASDATA_API_KEY=your_key_here npm test
# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test
上流のツールリストは、このリポジトリに誰も変更を加えていなくても変わる可能性があるため、同じテストスイートをプッシュのたびに CI で実行し、さらに週 1 回、スケジュールに従って実行します。失敗した場合は、ツールリストが変更されたか、キーが機能しなくなったか、エンドポイントに到達できなかったことを示します。どれに該当するかはアサーションのメッセージに記載されます。
コントリビューション
パラメーターテーブルとレスポンスのサンプルは内容が古くなりやすいため、これらの修正が最も役立ちます。実行した呼び出しと受け取ったレスポンスを記載してください。フォークからのプルリクエストではキーなしでテストスイートが実行され、ライブチェックは失敗扱いにならずスキップされます。
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。