Google Trends MCP
Overview
Description from the maker (original English)
Google Trends MCP with proxy rotation, auto-retry on Google blocks, residential-proxy setup.
PopNx MCP’s three pillars
These three are never merged into one score: opinions, measurements and popularity are different things.
- User voiceiNo reviews yetReviews open together with accounts in a later step
- Our basic checksi1 of 1 passedChecked from public information; code not scanned yet
- UsageiVery new↓ 134/wk · ★ –
What you can do with it
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
- Connection: Runs on your computer
- Transport: stdio
- Category: Marketing & social media
- You need to fill in: PROXY_URL, PROXY_LIST
Install
Pick the AI app you use, then copy the settings.
Before you install
- Basic checks: 1 of 1 passed
- Runs on your computer with your user’s permissions (files, network, apps).
- You fill in yourself:
PROXY_URL,PROXY_LIST,PROXY_LIST_FILE,PROXIES_ENABLED
Values marked secret are keys to your account. Never share them or paste them into a chat.
You need
- npmNode.js installed (for the npx command)
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into 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"
}
}
}
}Run this in your terminal
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-mcpFill in the empty values before running it.
Or copy the settings yourself
Paste into .cursor/mcp.json in your project, or ~/.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"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Or copy the settings yourself
Paste into .vscode/mcp.json in your project
{
"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"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
Values you fill in
- 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.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
What it can do
Runs on your computer; the tool list appears in your AI app after you install it.
Basic checksi
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
- ✓ Pass
Maker matches the repo
The registry name was verified with the GitHub account den-indance, which owns the repo
- … Not checked yet
Still maintained
We have not read this repo from GitHub yet
- … Not checked yet
Has a licence
We have not read this repo from GitHub yet
- – Not applicable
Endpoint responds
This one runs on your computer; there is no internet endpoint
- – Not applicable
Sign-in with OAuth
Runs on your computer and uses local settings instead
- … Not checked yet
No hidden instructions in tool descriptions
Runs on your computer; we can only read tool lists from internet endpoints
Compared with others in Marketing & social mediai
- More stars than 0% of the other 3592 servers in this category
- Published to the registry more recently than 9% of the other 3592 servers in this category
- Basic checks equal to or better than 100% of the other 3592 servers in this category
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
Common questions
Is Google Trends MCP safe?
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
What keys or codes does it need?
You need to fill in: PROXY_URL, PROXY_LIST
Does it run on my computer or in the cloud?
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
Is it still maintained?
The GitHub repo last changed –, and the latest version (1.0.0) reached the registry 6 months ago.
Which apps can use it?
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
What can I use instead?
In the same category: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
Alternatives
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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 from the maker
Open the README
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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