Google Trends Mcp

io.github.den-indance由 GitHub 帳號 den-indance 發布v1.0.0更新於 Oct 24, 2026

Google Trends MCP with proxy rotation, auto-retry on Google blocks, residential-proxy setup.

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理取得即時 Google Trends 資料——關鍵字熱度走勢、相關查詢與地區熱度,並具備代理輪替與重試。

可以做什麼
  • 比較最多 5 個關鍵字的搜尋熱度走勢,回傳相對分數時間軸
  • 取得某個關鍵字的熱門與上升相關查詢
  • 列出對某關鍵字興趣最高的前 20 個地區
  • 檢視代理池狀態(來源、可用數量、快取時間、新鮮度)
  • 強制重新驗證目前設定的代理來源
適用情境
當需要助理根據即時 Google Trends 資料回答搜尋需求、關鍵字比較、相關搜尋或地區興趣等問題,且你能提供輪替代理以確保穩定時使用。
執行需求
透過 npx 在本機執行(需要 Node.js)。Google 端不需帳號或 API 金鑰。建議設定輪替代理:設定 PROXY_URL,或以 PROXY_LIST / PROXY_LIST_FILE 提供含憑證的代理位址。PROXIES_ENABLED=false 可關閉代理邏輯。需要能連線至 Google Trends 的網路。
安裝前請注意
代理憑證透過環境變數(PROXY_URL、PROXY_LIST)或代理清單檔案傳入,應限制檔案權限並避免提交到版本控制。代理屬第三方服務,可能依流量計費。請求送往 Google 未公開的內部端點,遭封鎖時會失敗。伺服器會在本機寫入 proxies.json 快取。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Google Trends Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Google Trends MCP

[npm] [smithery badge] [GitHub] [MIT License]

The Google Trends MCP server that actually works under Google's anti-bot. Connect Claude to live Google Trends data — keyword interest, related queries, regional popularity.

Most Google Trends MCP packages crash with Unexpected token 'l' the moment Google blocks them (which is often). Free public proxy lists don't help — we tested 64 proxies from a popular "high-quality" list and 0 worked. This one uses your own rotating proxy with auto-retry, so blocked requests transparently retry on a fresh IP.

Built by Denys Malieiev.


Why this one

What's fixedDetail
Free public proxies don't workWe tested 64 — 0 survived. Bring your own rotating residential (Webshare/IPRoyal/Smartproxy free tier = ~46k requests on 1 GB)
Auto-retry on Google blocksWhen Google returns HTML, we retry up to 3 times with a fresh proxy from the pool. End-to-end success rate in our tests: 5/5
HTML-detection at the wrapper levelOther MCPs let JSON.parse crash with cryptic errors. We detect HTML before parsing
Honest about what doesn't workget_trending_searches is intentionally not exposed — Google blocks dailyTrends/realTimeTrends aggressively without residential proxies. We don't pretend otherwise
Pool with fail-trackingProxies that fail 3 times get dropped automatically. Random rotation per request
Per-request rotationEach request picks a random proxy from the pool — Google can't accumulate per-IP rate limits

Quick Start

bash
npx @den.dance/google-trends-mcp

Works out-of-the-box from non-flagged IPs, but Google rate-limits datacenter ranges aggressively. For reliable use, set up a proxy (see below).


Setup

1. Get a rotating proxy account

Recommended (all have free tiers / pay-per-GB):

  • Webshare — free 1 GB residential (~46k Google Trends requests)
  • IPRoyal — $1.75/GB, lowest price
  • Smartproxy / Decodo — $4-7/GB, large pool
  • Bright Data / Oxylabs — $5-8/GB, enterprise grade

Make sure the provider allows *.google.com in their ToS (most majors do).

2. Configure Claude Desktop

Edit your Claude Desktop config file:

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

Single rotating endpoint (recommended — provider rotates IPs internally):

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

Or an explicit list (useful for Webshare-style per-port proxies):

json
{  "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"      }    }  }}

For longer lists, put proxies in a file (one per line, # comments allowed) and point to it:

json
{  "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.txthttp://user:pass@host1:6114http://user:pass@host2:6014http://user:pass@host3:5863

chmod 600 the file — credentials live there. Run proxy_refresh from Claude to hot-reload after editing.

Restart Claude Desktop after saving the JSON config.

3. Configure Claude Code

bash
claude mcp add google-trends \  -e PROXY_URL="http://USER:[email protected]:7000" \  -- npx @den.dance/google-trends-mcp

Environment Variables

VariableRequiredDescription
PROXY_URLrecommendedSingle rotating proxy endpoint. Provider handles IP rotation internally. No validation, no fallback
PROXY_LISTalternativeComma-separated list of proxies (http://user:pass@host:port,...). Validated on startup, bad ones auto-dropped
PROXY_LIST_FILEalternativePath to a file with one proxy per line (# comments and blank lines allowed). Validated on startup. Re-read on proxy_refresh
PROXIES_ENABLEDnoSet to false to disable all proxy logic (direct requests). Default: enabled

Priority: PROXY_URL > PROXY_LIST > PROXY_LIST_FILE. If none are set, requests go direct (no proxy) — works only from non-flagged IPs.


Tools

Data tools

  • compare_keywords — search interest over time for up to 5 keywords. Returns a timeline of relative scores.
  • get_related_queries — top + rising related queries for a keyword. Powered by Google's relatedQueries endpoint.
  • get_interest_by_region — top 20 regions by interest in a keyword.

Admin tools

  • proxy_status — show source (single / env-list / env-file / none / disabled), working count, age, freshness, validation progress.
  • proxy_refresh — force re-validation of the current proxy source. No-op in PROXY_URL mode.

Intentionally not exposed

  • get_trending_searches (daily / real-time trends) — Google blocks these endpoints aggressively. Even with residential proxies the success rate is too low to ship. We'd rather not lie about it.

Known limitations

  • Google sometimes blocks multi-keyword requests (2 or 4 keywords) more aggressively than single. Our auto-retry handles this — but if all 3 attempts hit blocks, the request fails. Increase MAX_ATTEMPTS in trends-client.js if you need higher tolerance.
  • The underlying google-trends-api library scrapes Google's internal endpoints, which are undocumented and can change. If the library breaks, this MCP breaks too.
  • For very heavy use (>10k req/day) consider a managed service like SerpAPI or DataForSEO — at that scale the price difference vs your own proxy is marginal and the operational burden disappears.

Example prompts for Claude

  • "Compare search interest for 'claude ai', 'chatgpt', and 'gemini' over the last 12 months"
  • "What are people searching for related to 'sourdough bread'?"
  • "Which regions have highest interest in 'electric vehicle'?"
  • "Show me the proxy pool status"

Architecture notes

  • ~450 lines total across server.js (MCP handlers), proxy-manager.js (pool/cache), trends-client.js (retry logic with DI)
  • Validation: parallel workers (concurrency 50) check each proxy against trends.google.com/api/autocomplete/test, looking for the anti-XSSI prefix )]}' in the response
  • Cache: working proxies persisted to proxies.json (gitignored), keyed by SHA1 of input list — automatically invalidated when source changes
  • TTL: 4 hours; background re-validation when cache is stale
  • Fail tracking: proxies drop from rotation after 3 failures per session
  • Retry: every tool call retries up to 3 times with fresh getAgent() on HTML response or exception

Development

Tests

bash
# 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
# Everythingnpm run test:all

Project structure

  • server.js — MCP server entrypoint (stdio transport)
  • trends-client.js — Google Trends API wrapper with retry-on-HTML
  • proxy-manager.js — proxy pool, validation, cache, source priority
  • tests/unit/ — pure unit tests, no network (~40 tests, runs in ~2s)
  • tests/integration/ — real Google endpoint tests (gated by RUN_INTEGRATION=1)
  • tests/e2e/ — full MCP protocol tests via spawn (gated by RUN_E2E=1)

Security

  • Never commit proxy credentials to version control. Use PROXY_LIST_FILE pointing to a chmod 600 file outside the repo, or your secrets manager
  • proxies.json cache (built from validated proxies) is gitignored and never published — re-generated on first run after install

License

MIT

來源:README.md,提交 2831f0d

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分