Google Trends MCP
概览
作者提供的说明(英文原文)
Google Trends MCP with proxy rotation, auto-retry on Google blocks, residential-proxy setup.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i1 项中通过 1 项依据公开信息检查;尚未扫描代码
- 使用情况i非常新↓ 134/周 · ★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 在你的电脑上运行
- 传输方式: stdio
- 分类: 营销与社交媒体
- 你需要填写:PROXY_URL, PROXY_LIST
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:1 项中通过 1 项
- 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
- 需要你自己填写:
PROXY_URL,PROXY_LIST,PROXY_LIST_FILE,PROXIES_ENABLED
标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
- npm已安装 Node.js(用于 npx 命令)
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"google-trends": {
"command": "npx",
"args": [
"-y",
"@den.dance/google-trends-mcp"
],
"env": {
"PROXY_URL": "your-value",
"PROXY_LIST": "your-value",
"PROXY_LIST_FILE": "your-value",
"PROXIES_ENABLED": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add google-trends --env PROXY_URL=your-value --env PROXY_LIST=your-value --env PROXY_LIST_FILE=your-value --env PROXIES_ENABLED=your-value -- npx -y @den.dance/google-trends-mcp运行前请先填写空着的值。
或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"google-trends": {
"command": "npx",
"args": [
"-y",
"@den.dance/google-trends-mcp"
],
"env": {
"PROXY_URL": "your-value",
"PROXY_LIST": "your-value",
"PROXY_LIST_FILE": "your-value",
"PROXIES_ENABLED": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"google-trends": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@den.dance/google-trends-mcp"
],
"env": {
"PROXY_URL": "your-value",
"PROXY_LIST": "your-value",
"PROXY_LIST_FILE": "your-value",
"PROXIES_ENABLED": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
需要你填写的值
- Single rotating proxy endpoint (e.g. http://user:pass@gate.smartproxy.com:7000). Provider handles IP rotation.
- Comma-separated proxy list (http://user:pass@host:port,...). Validated on startup, bad ones auto-dropped.
PROXY_LIST_FILEenvPath to a file with one proxy URL per line (# comments allowed). Validated on startup, re-read on proxy_refresh.PROXIES_ENABLEDenvSet to false to disable proxy logic and use direct requests. Default: enabled.
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 den-indance 验证,该账户拥有此仓库
- … 尚未检查
仍在维护
我们还没有从 GitHub 读取这个仓库
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与“营销与社交媒体”中的其他服务器比较i
- 星标数多于此分类中其他 3595 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 3595 个服务器的 9% 更新
- 基础检查结果等于或优于此分类中其他 3595 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
Google Trends MCP 安全吗?
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
你需要填写:PROXY_URL, PROXY_LIST
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于–,最新版本(1.0.0)于6个月前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
有什么可以替代它?
同一分类中有:MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Google Analytics MCP
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
BibiGPT YouTube Video Summarizer
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Google Trends MCP
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 fixed | Detail |
|---|---|
| Free public proxies don't work | We tested 64 — 0 survived. Bring your own rotating residential (Webshare/IPRoyal/Smartproxy free tier = ~46k requests on 1 GB) |
| Auto-retry on Google blocks | When 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 level | Other MCPs let JSON.parse crash with cryptic errors. We detect HTML before parsing |
| Honest about what doesn't work | get_trending_searches is intentionally not exposed — Google blocks dailyTrends/realTimeTrends aggressively without residential proxies. We don't pretend otherwise |
| Pool with fail-tracking | Proxies that fail 3 times get dropped automatically. Random rotation per request |
| Per-request rotation | Each request picks a random proxy from the pool — Google can't accumulate per-IP rate limits |
Quick Start
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):
{
"mcpServers": { "google-trends": { "command": "npx", "args": ["@den.dance/google-trends-mcp"], "env": { "PROXY_URL": "http://USER:PASS@gate.smartproxy.com:7000" } } } }
Or an explicit list (useful for Webshare-style per-port proxies):
{
"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:
{
"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 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
claude mcp add google-trends \
-e PROXY_URL="http://USER:PASS@gate.smartproxy.com:7000" \ -- npx @den.dance/google-trends-mcp
Environment Variables
| Variable | Required | Description |
|---|---|---|
PROXY_URL | recommended | Single rotating proxy endpoint. Provider handles IP rotation internally. No validation, no fallback |
PROXY_LIST | alternative | Comma-separated list of proxies (http://user:pass@host:port,...). Validated on startup, bad ones auto-dropped |
PROXY_LIST_FILE | alternative | Path to a file with one proxy per line (# comments and blank lines allowed). Validated on startup. Re-read on proxy_refresh |
PROXIES_ENABLED | no | Set 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'srelatedQueriesendpoint.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 inPROXY_URLmode.
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_ATTEMPTSintrends-client.jsif you need higher tolerance. - The underlying
google-trends-apilibrary 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
# 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
Project structure
server.js— MCP server entrypoint (stdio transport)trends-client.js— Google Trends API wrapper with retry-on-HTMLproxy-manager.js— proxy pool, validation, cache, source prioritytests/unit/— pure unit tests, no network (~40 tests, runs in ~2s)tests/integration/— real Google endpoint tests (gated byRUN_INTEGRATION=1)tests/e2e/— full MCP protocol tests via spawn (gated byRUN_E2E=1)
Security
- Never commit proxy credentials to version control. Use
PROXY_LIST_FILEpointing to achmod 600file outside the repo, or your secrets manager proxies.jsoncache (built from validated proxies) is gitignored and never published — re-generated on first run after install
License
MIT