mcpField
G
google-trends-mcp

google-trends-mcp

ローカル
github.com/den-indanceビジネス・マーケティング123 週間前に更新

google-trends-mcp について

google-trends-mcpは、Google Trendsの検索関心データをMCPクライアントに提供し、キーワードや地域ごとの分析に使えます。プロキシのローテーションとブロック時の再試行に対応し、Googleに頻繁に遮断されるトレンド一覧の取得は提供しません。

主な機能

  1. 01最大5件のキーワード関心度を比較
  2. 02関連クエリの取得
  3. 03キーワードの地域別関心度を表示
  4. 04プロキシのローテーションと失敗分の除外
  5. 05ブロック時の再試行とHTML検出

活用シーン

  1. 01複数キーワードの検索トレンド比較
  2. 02テーマに関連するクエリの発見
  3. 03関心度の高い地域の特定

MCP 対応

MCPサーバーとして、キーワード関心度、関連クエリ、地域別関心度のツールに加え、プロキシ状態の確認と更新ツールをクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"den-indance-google-trends": {
"command": "npx",
"args": [
"-y",
"@den.dance/google-trends-mcp"
],
"env": {
"PROXY_URL": "<PROXY_URL>",
"PROXY_LIST": "<PROXY_LIST>",
"PROXY_LIST_FILE": "<PROXY_LIST_FILE>",
"PROXIES_ENABLED": "<PROXIES_ENABLED>"
}
}
}
}
起動コマンドnpx -y @den.dance/google-trends-mcp
設定が必要な環境変数
PROXY_URLシークレットSingle rotating proxy endpoint (e.g. http://user:[email protected]:7000). Provider handles IP rotation.
PROXY_LISTシークレットComma-separated proxy list (http://user:pass@host:port,...). Validated on startup, bad ones auto-dropped.
PROXY_LIST_FILEPath to a file with one proxy URL per line (# comments allowed). Validated on startup, re-read on proxy_refresh.
PROXIES_ENABLEDSet to false to disable proxy logic and use direct requests. Default: enabled.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@den.dance/google-trends-mcp1.0.0

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
geostringいいえ国コード。例:US、RU(デフォルト:全世界)
keywordsarrayはい最大 5 個のキーワード
timeframestringいいえ例:today 12-m、today 5-y

詳細

Google Trends MCP

npm smithery badge GitHub MIT License

Google のボット対策のもとでも実際に動作する Google Trends MCP サーバーです。Claude を Google Trends の最新データ(キーワードへの関心度、関連する検索キーワード、地域別の人気度)に接続します。

ほとんどの Google Trends MCP パッケージは、Google にブロックされた途端(よくあることです)に Unexpected token 'l' でクラッシュします。無料の公開プロキシリストも役に立ちません。「高品質」とされる人気リストから64個のプロキシをテストしましたが、動作したものは0個でした。このパッケージでは、独自のローテーションプロキシと自動再試行を使用するため、ブロックされたリクエストは新しい IP で透過的に再試行されます。

Denys Malieiev が開発しました。


このパッケージを選ぶ理由

改善点詳細
無料の公開プロキシは動作しません64個をテストしましたが、使えたものは0個でした。独自のローテーション型レジデンシャルプロキシをご用意ください(Webshare/IPRoyal/Smartproxy の無料プランでは、1 GB で約46,000件のリクエストを利用できます)
Google にブロックされた際の自動再試行Google が HTML を返すと、プロキシプールから新しいプロキシを使って最大3回再試行します。テストでのエンドツーエンドの成功率は5/5です
ラッパーレベルでの HTML 検出他の MCP では、JSON.parse がわかりにくいエラーでクラッシュします。このパッケージでは、解析の前に HTML を検出します
動作しない機能についても正直に説明get_trending_searches は意図的に公開していません。Google はレジデンシャルプロキシなしでは dailyTrends/realTimeTrends を積極的にブロックします。その事実を隠すことはありません
失敗を追跡するプロキシプール3回失敗したプロキシは自動的に除外されます。リクエストごとにランダムにローテーションします
リクエストごとのローテーション各リクエストでプールからランダムなプロキシを選択するため、Google は IP ごとのレート制限を蓄積できません

クイックスタート

npx @den.dance/google-trends-mcp

フラグが設定されていない IP からは、そのまま動作します。ただし、Google はデータセンターの IP アドレス範囲に対して積極的にレート制限を行います。安定して利用するには、プロキシを設定してください(下記を参照)。


セットアップ

1. ローテーションプロキシのアカウントを取得する

推奨プロバイダー(いずれも無料プランまたは従量課金制です):

  • Webshare — 無料のレジデンシャルプロキシ 1 GB(Google Trends のリクエスト約46,000件分)
  • IPRoyal — $1.75/GB、最安値
  • Smartproxy / Decodo — $4-7/GB、大規模なプール
  • Bright Data / Oxylabs — $5-8/GB、エンタープライズグレード

プロバイダーの利用規約で *.google.com が許可されていることを確認してください(大手のほとんどは許可しています)。

2. Claude Desktop を設定する

Claude Desktop の設定ファイルを編集します。

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json

単一のローテーションエンドポイント(推奨。プロバイダー側で IP をローテーションします):

{
  "mcpServers": {
    "google-trends": {
      "command": "npx",
      "args": ["@den.dance/google-trends-mcp"],
      "env": {
        "PROXY_URL": "http://USER:[email protected]:7000"
      }
    }
  }
}

または、明示的なリスト(Webshare のようなポートごとのプロキシで便利です):

{
  "mcpServers": {
    "google-trends": {
      "command": "npx",
      "args": ["@den.dance/google-trends-mcp"],
      "env": {
        "PROXY_LIST": "http://user:pass@host1:6114,http://user:pass@host2:6014,http://user:pass@host3:5863"
      }
    }
  }
}

リストが長い場合は、プロキシをファイル(1行に1つ。# コメントを使用できます)に記述し、そのファイルを指定します。

{
  "mcpServers": {
    "google-trends": {
      "command": "npx",
      "args": ["@den.dance/google-trends-mcp"],
      "env": {
        "PROXY_LIST_FILE": "/home/you/.config/google-trends/proxies.txt"
      }
    }
  }
}
# ~/.config/google-trends/proxies.txt
http://user:pass@host1:6114
http://user:pass@host2:6014
http://user:pass@host3:5863

ファイルに chmod 600 を設定してください。認証情報はそのファイルに保存されます。編集後、Claude から proxy_refresh を実行すると、再起動せずに設定を再読み込みできます。

JSON 設定を保存した後、Claude Desktop を再起動してください。

3. Claude Code を設定する
claude mcp add google-trends \
  -e PROXY_URL="http://USER:[email protected]:7000" \
  -- npx @den.dance/google-trends-mcp

環境変数

変数必須説明
PROXY_URL推奨ローテーションする単一のプロキシエンドポイントです。プロバイダーが内部で IP ローテーションを処理します。検証もフォールバックもありません
PROXY_LIST代替プロキシのコンマ区切りリスト(http://user:pass@host:port,...)です。起動時に検証され、問題のあるものは自動的に除外されます
PROXY_LIST_FILE代替1 行につき 1 つのプロキシを記載したファイルへのパスです(# コメントと空行を使用できます)。起動時に検証されます。proxy_refresh の実行時に再読み込みされます
PROXIES_ENABLEDいいえすべてのプロキシ処理を無効にするには false を設定します(直接リクエスト)。デフォルトは有効です

優先順位:PROXY_URL > PROXY_LIST > PROXY_LIST_FILE。いずれも設定されていない場合、リクエストはプロキシを使わずに直接送信されます。これはフラグが立てられていない IP からのみ機能します。


ツール

データツール
  • compare_keywords — 最大 5 個のキーワードの検索関心度を時系列で比較します。相対スコアの推移を返します。
  • get_related_queries — キーワードに関連する上位および急上昇中の検索クエリを取得します。Google の relatedQueries エンドポイントを利用します。
  • get_interest_by_region — キーワードへの関心度が高い上位 20 地域を取得します。
管理ツール
  • proxy_status — ソース(single / env-list / env-file / none / disabled)、稼働中の件数、経過時間、鮮度、検証の進捗を表示します。
  • proxy_refresh — 現在のプロキシソースを強制的に再検証します。PROXY_URL モードでは何も行いません。
意図的に公開していないツール
  • get_trending_searches(日次/リアルタイムのトレンド) — Google はこれらのエンドポイントを積極的にブロックします。住宅用プロキシを使っても成功率が低すぎるため、提供できません。実際以上のことを謳うのは避けたいと考えています。

既知の制限事項

  • Google は、複数キーワードのリクエスト(2 個または 4 個)を単一キーワードの場合より積極的にブロックすることがあります。自動再試行で対処しますが、3 回の試行がすべてブロックされるとリクエストは失敗します。より高い許容度が必要な場合は、trends-client.js の MAX_ATTEMPTS を増やしてください。
  • 基盤となる google-trends-api ライブラリは、文書化されておらず変更される可能性がある Google の内部エンドポイントをスクレイピングします。ライブラリが動作しなくなると、この MCP も動作しなくなります。
  • 非常に大量に利用する場合(1 日あたり 10,000 リクエスト超)は、SerpAPI や DataForSEO などのマネージドサービスを検討してください。その規模では、自前のプロキシとの価格差はわずかで、運用上の負担もなくなります。

Claude 向けプロンプト例

  • 「過去 12 か月間の『claude ai』『chatgpt』『gemini』の検索関心度を比較してください」
  • 「『sourdough bread』に関連して、どんな検索が行われていますか?」
  • 「『electric vehicle』への関心度が最も高い地域はどこですか?」
  • 「プロキシプールの状態を表示してください」

アーキテクチャに関する注記

  • server.js(MCP ハンドラー)、proxy-manager.js(プール/キャッシュ)、trends-client.js(DI を使用した再試行ロジック)全体で約 450 行
  • 検証:並列ワーカー(同時実行数 50)が各プロキシを trends.google.com/api/autocomplete/test に対して確認し、レスポンス内の anti-XSSI プレフィックス )]}' を探します
  • キャッシュ:稼働中のプロキシは proxies.json(gitignore 対象)に保存され、入力リストの SHA1 をキーとして使用します。ソースが変更されると自動的に無効化されます
  • TTL:4 時間。キャッシュが古くなるとバックグラウンドで再検証します
  • 失敗の追跡:セッションごとに 3 回失敗したプロキシはローテーション対象から除外されます
  • 再試行:HTML レスポンスまたは例外が発生した場合、各ツール呼び出しで新しい getAgent() を使って最大 3 回再試行します

開発

テスト
# Unit only (fast, offline, no network)
npm test

# With coverage report (html in coverage/)
npm run test:coverage

# Integration (real Google hit, gated)
RUN_INTEGRATION=1 npm run test:integration

# E2E (spawns server.js, JSON-RPC over stdio)
RUN_E2E=1 npm run test:e2e

# Everything
npm run test:all
プロジェクト構成
  • server.js — MCP サーバーのエントリーポイント(stdio トランスポート)
  • trends-client.js — HTML レスポンス時に再試行する Google Trends API ラッパー
  • proxy-manager.js — プロキシプール、検証、キャッシュ、ソースの優先順位
  • tests/unit/ — ネットワークを使わない純粋な単体テスト(約 40 件、約 2 秒で実行)
  • tests/integration/ — Google の実際のエンドポイントを使うテスト(RUN_INTEGRATION=1 で実行)
  • tests/e2e/ — spawn を介した MCP プロトコルの全体テスト(RUN_E2E=1 で実行)

セキュリティ

  • プロキシ認証情報をバージョン管理にコミットしないでください。リポジトリ外にある chmod 600 のファイル、またはシークレットマネージャーを指す PROXY_LIST_FILE を使用してください。
  • 検証済みプロキシから生成される proxies.json キャッシュは Git の追跡対象外であり、公開されません。インストール後、初回実行時に再生成されます。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。