Trendzeist – Google Trends for content ideation
Overview
Description from the maker (original English)
Free Google Trends MCP: ranked breakout/rising/evergreen topics for content ideas. No API key.
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
- UsageiEarly↓ 1.1K/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: TRENDZEIST_PROXIES
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:
TRENDZEIST_HL,TRENDZEIST_MIN_INTERVAL,TRENDZEIST_PROXIES
Values marked secret are keys to your account. Never share them or paste them into a chat.
You need
- PyPIPython’s uv installed (for the uvx 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": {
"trendzeist": {
"command": "uvx",
"args": [
"trendzeist-mcp"
],
"env": {
"TRENDZEIST_HL": "your-value",
"TRENDZEIST_MIN_INTERVAL": "your-value",
"TRENDZEIST_PROXIES": "your-value"
}
}
}
}Run this in your terminal
claude mcp add trendzeist --env TRENDZEIST_HL=your-value --env TRENDZEIST_MIN_INTERVAL=your-value --env TRENDZEIST_PROXIES=your-value -- uvx trendzeist-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": {
"trendzeist": {
"command": "uvx",
"args": [
"trendzeist-mcp"
],
"env": {
"TRENDZEIST_HL": "your-value",
"TRENDZEIST_MIN_INTERVAL": "your-value",
"TRENDZEIST_PROXIES": "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": {
"trendzeist": {
"type": "stdio",
"command": "uvx",
"args": [
"trendzeist-mcp"
],
"env": {
"TRENDZEIST_HL": "your-value",
"TRENDZEIST_MIN_INTERVAL": "your-value",
"TRENDZEIST_PROXIES": "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
TRENDZEIST_HLenvGoogle Trends UI language, e.g. en-US or pt-BR.TRENDZEIST_MIN_INTERVALenvMinimum seconds between requests to Google (rate-limit protection).- Optional comma-separated proxy URLs for rotation.
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 phalkmin, 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 3603 servers in this category
- Published to the registry more recently than 32% of the other 3603 servers in this category
- Basic checks equal to or better than 100% of the other 3603 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 Trendzeist – Google Trends for content ideation 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: TRENDZEIST_PROXIES
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 (0.2.1) reached the registry 2 months ago.
Which apps can use it?
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) 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.
trendzeist-mcp
Turn Google Trends into your next 10 blog posts — in one call.
trendzeist-mcp gives your AI assistant ranked breakout / rising / evergreen topics, the questions people actually ask, an AEO opportunity finder that scores question clusters with trend, news coverage, Wikipedia presence and citability hints, plus interest curves, regional demand, real-time trends, who covers a topic in Google News and Wikipedia attention. Free, local, private. No API key, no account, no browser.
*SEO and AEO:* find the questions people ask — and answer engines answer — then make your site the source they cite. Measuring your own visibility inside ChatGPT / Perplexity / AI Overviews is out of scope; this server tells you *what to write*, not *who cites you*.
You: Give me blog post ideas about home espresso for US readers.
Agent: → discover_topics(["espresso", "espresso machine"], geo="US") ← 1 breakout, 14 rising, 14 evergreen candidates with growth %, angles and 6 questions → mine_questions("espresso machine", geo="US") ← 30 long-tail questions: how-to 18, comparison 6, definition 4, listicle 2 → compare_keywords(["how to descale espresso machine", "best coffee beans for espresso"]) ← "Interest in 'how to descale espresso machine' rose 120% ... peaking 2026-08-30 (rising)." "1. How to Descale Your Espresso Machine (how-to, rising +120%, publish now) ..."
Built with
trendzeist-mcp is a thin MCP layer over [pytrends-modern](https://github.com/yiromo/pytrends-modern), which handles all Google Trends requests. Trendzeist adds the MCP tools and prompt, request throttling, a persistent disk cache, strict input validation, LLM-friendly JSON output and the ranked discover_topics workflow. Other runtime dependencies: mcp (official MCP Python SDK), pandas, platformdirs and requests. All MIT/BSD/Apache licensed. Google Autocomplete, Google News RSS and the Wikimedia REST API are called directly with requests (keyless).
Quick start
# any one of these
uvx trendzeist-mcp pipx run trendzeist-mcp pip install trendzeist-mcp && trendzeist-mcp docker run -i --rm ghcr.io/phalkmin/trendzeist-mcp
Claude Desktop — add under mcpServers in claude_desktop_config.json (macOS ~/Library/Application Support/Claude/, Windows %APPDATA%\Claude\, Linux ~/.config/Claude/):
"trendzeist": { "command": "uvx", "args": ["trendzeist-mcp"] }
Claude Code: claude mcp add trendzeist -- uvx trendzeist-mcp Cursor / VS Code / Codex: same command/args shape — see llms-install.md (written so you can paste it to an AI assistant and let it do the install).
Tools
| Tool | What you get |
|---|---|
discover_topics | Ranked blog topics from 1-5 seeds: breakout > rising > evergreen, deduped, each with a title angle and an explainable score; plus questions[] people ask, suspect[] spam-like rising queries and filtered_out[] rising queries unrelated to the seeds, both kept out of the ranking. Pass site_queries (what your site already ranks for) to mark each topic covered / partial / gap; seeds that name several entities get ambiguous + clarify (ask before writing) |
mine_questions | Long-tail questions about a seed from Google Autocomplete (how to, why, what is, vs …, localised for pt / es / fr / de / it / pl / nl when geo or TRENDZEIST_HL says so — prefix_language tells which), deduped, angle-tagged and ranked by a realness score; bare prefix + seed padding goes to filtered_out[] — FAQ / AEO fuel |
aeo_opportunities | Question clusters per seed × angle, scored with the seed's recent trend (direction_now, growth_3m over 12 months), Google News coverage (publishers to quote / pitch), Wikipedia presence, your site's coverage (site_queries) and citability hints — one call, partial failures per source; seeds that name several entities get ambiguous + clarify (ask before writing) |
what_changed | What moved since your last snapshot (1-90 days): new and promoted breakouts (*investigate now*), new rising (*consider*), cooled / dropped queries (*refresh existing post*, or *review* — verify with interest_over_time before retiring), rank moves and a direction_now flip — from the local observation archive. First run: first_seen[] (current state, *no history yet*); no snapshot old enough: compares with the oldest and says its real age |
seasonality | When demand peaks each year (5-year weekly data): peak_months, seasonal_strength, next_peak, publish_by (6 weeks before), one-sentence insight |
compare_channels | Where a topic grows: web / YouTube / News / Images / Shopping with growth_3m, direction_now, fastest_channel, momentum (growing / flat / all_declining) and a format_hint (video tutorial, buying guide, newsjacking piece …) |
trend_history | Everything the local archive has seen about a keyword: first_seen, breakout_episodes (separate runs; recurring = durable page) vs breakout_observations (polling count), direction_timeline per timeframe, seen_under_seeds — free, no requests |
recurring_topics | Topics that keep breaking out in the local archive (≥ min_episodes separate runs in days, runs that overlap or restart within 7 days, under any seed, count once): episodes, first/last breakout, seeds, and the action *one durable page, refreshed at each spike* — free, no requests |
news_coverage | Who covers a topic in Google News: headlines, publisher frequency table, recency histogram, coverage label |
wiki_attention | Exact-title Wikipedia article and daily pageviews (direction, growth); has_article=false and optional related_article when only a different search hit is found |
trendzeist_status | Health of every source (live / error / idle), cache usage, observation archive (rows, dates, last error), effective settings — free, no requests |
interest_over_time | 0-100 interest curve with mean, peak, direction (whole window), direction_now (recent slope), growth_3m / growth_12m and a plain-English insight |
compare_keywords | Head-to-head share for 2-5 keywords, each with a role (leader, rising challenger, declining, niche, steady) and a content_implication; winner = the term to target (a rising challenger beats a falling leader; null + winner_reason when nothing has measurable interest) plus a one-line seo_interpretation |
related_queries | Top & rising related searches with breakout flags, angles and questions[] |
related_topics | Top & rising Knowledge-Graph topics (best-effort) |
interest_by_region | Where demand lives: COUNTRY (worldwide), REGION (within a country), CITY / DMA (US or worldwide) |
suggest_keywords | Disambiguate a term into Google entities (title, type, mid) |
trending_now | What's trending right now, with news headlines; topic_filter keeps only trends mentioning your words |
list_categories | Find Google Trends category ids to narrow any query |
Prompts: blog_ideas_from_trends(topic, audience, geo) (guided ideation), content_brief(topic, audience, geo) (titles, outline, FAQ, regions, publishers), answer_brief(question, geo) (a citable answer: direct answer, statistic, quote, sources, FAQ, schema) and weekly_review(seeds, geo, site_queries) (content meeting: publish now / plan for a date / refresh / retire). A ready-made agent skill lives in SKILL.md.
Output conventions
- Every result carries
schema_version(currently3; bumped only when a field is removed or changes meaning) and_metawithrequests_made,cache_hit,cache_hits,cache_missesfor that call — so the model knows when to slow down._meta.archive_errorappears only when the local archive could not be written (the tool result is unaffected). - Explainable score.
discover_topics.topics[]andaeo_opportunities.opportunities[]carryscore(0-100) andscore_breakdownwith five components, each{points, max, reason}:demand25 (questions found or top-query popularity),momentum25 (direction_now+ breakout / rising),freshness15 (Google News, 0 when not fetched),gap20 (vs.site_queries: gap 20 / partial 10 / covered 0; neutral 10 without them),aeo15 (question-shaped; definition angle with no Wikipedia article). Compare scores within one call only. - Observation archive. Every fresh fetch (not cache hits) of related queries, trend labels, trending searches and mined questions becomes one snapshot (unique id; an empty Google answer is a snapshot too) with normalised rows in
archive.sqlite3next to the disk cache (stdlibsqlite3, 365-day retention, opened lazily). Related-query snapshots hold the *complete* lists regardless of a caller'slimit, so comparisons never invent drops.what_changed,trend_historyandrecurring_topicsread it;trendzeist_status.archivereports it. Suspect rising queries never enter it. Archive errors never fail a tool.TRENDZEIST_ARCHIVE=0turns it off. - Site coverage is conservative but not literal. An
aeo_opportunitiescluster iscoveredonly when *every* question in it is covered; a mix ispartial(seecoverage_counts), soexclude_coveredcan never hide an unanswered question. Tokens are compared after plural folding and a small tech synonym map (mac/macos, wp/wordpress, js/javascript …), so "claude code mac" is covered by a site query "claude code macos";matchednames the site query behind each verdict. Prefixes only match on 6-letter stems ("code" is not "codex"), and a one-word head term inside a longer site query ("claude" in "claude code macos") ispartial, not covered. Feeding the raw Search Console variants still helps. angleis one ofhow-to | comparison | listicle | definition | verdict | news(ornull) — the title format the query suggests. Pair it with evidence: how-to → steps + numbers, comparison → table + quotes, definition → cite a primary source, verdict (yes/no questions: "is it worth it", "does it work") → the verdict first, the deciding evidence, then caveats, news → dated publisher quotes.- Anything silently adjusted is reported: clamped limits add a
note, empty results add areason. - Two trend labels.
directioncompares the first and last third of the window (rising | falling | stable | new | no_interest | insufficient_data;new= no interest in the first third).direction_nowcompares the last quarter of the window with the quarter before it and answers "is it still growing *now*?". A topic that peaked mid-window readsdirection: rising(ornew) anddirection_now: falling; theinsightsentence says so. Composites (discover_topics,aeo_opportunities) always fetch the seed trend ontoday 12-m(echoed asquery.trend_timeframe) and score ondirection_now. - Suspect rising queries. Search-manipulation campaigns attach one name to many unrelated "Breakout" queries.
related_queriesflags such itemssuspect: truewith asuspect_reason(a flagged.comalso flags the queries carrying its name as words);discover_topicsmoves them tosuspect[];aeo_opportunitiesignores them. Google'sis_breakoutvalue is kept, only the trust changes. - Off-topic related queries. Under niche seeds Google lists unrelated searches ("how to bake a cake" under an AI-tool seed) as breakouts from a tiny base and at values 0-3 in the top list. A breakout, or a top query below 10, that shares no word with the seed, the call's other seeds or the seed's on-topic top queries is
off_topic: true(exact words after plural folding; generic words like make, work, best, github don't count).discover_topicsmov
Only the beginning is shown; read the rest in the repo