Skip to main content

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, interest curves, related searches, regional demand and real-time trends. Free, local, private. No API key, no account, no browser.

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 %
       → compare_keywords(["how to descale espresso machine", "best coffee beans for espresso"])
       "1. How to Descale Your Espresso Machine (rising +120%, publish now) ..."

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
interest_over_time 0-100 interest curve with mean, peak and direction
compare_keywords Head-to-head share and winner for 2-5 keywords
related_queries Top & rising related searches with breakout flags
related_topics Top & rising Knowledge-Graph topics (best-effort)
interest_by_region Where demand lives: COUNTRY / REGION / CITY / DMA
suggest_keywords Disambiguate a term into Google entities (title, type, mid)
trending_now What's trending right now, with news headlines
list_categories Find Google Trends category ids to narrow any query

Prompt: blog_ideas_from_trends(topic, audience, geo) — a guided ideation workflow.

Why this one?

trendzeist-mcp typical alternatives
Ranked topic discovery in one call discover_topics ❌ raw primitives only
Guided ideation prompt blog_ideas_from_trends
Related queries + breakout detection often missing in hosted/paid servers
Cost / auth free, none API key, monthly quota
Browser required no Chrome for some Python libraries
Cache survives client restarts ✅ safe JSON disk cache usually in-memory or none
Rate-limit friendly ✅ throttled per HTTP request ❌ bursts, frequent 429s

Run from source

git clone https://github.com/phalkmin/trendzeist-mcp && cd trendzeist-mcp
uv sync --group dev
uv run pytest -q                 # offline tests
uv run pytest -q -m live         # optional: live canary against Google
uv run trendzeist-mcp              # stdio server
npx @modelcontextprotocol/inspector uv run trendzeist-mcp   # interactive debugging

Point a client at the clone with "command": "uv", "args": ["--directory", "/path/to/trendzeist-mcp", "run", "trendzeist-mcp"].

Configuration (env vars)

Variable Default Meaning
TRENDZEIST_HL en-US UI language for Google Trends
TRENDZEIST_TZ 360 Timezone offset in minutes
TRENDZEIST_MIN_INTERVAL 2.0 Minimum seconds between every HTTP request to Google (cookie, token, data, RSS)
TRENDZEIST_RETRIES 3 Retry attempts on transient errors
TRENDZEIST_BACKOFF 1.5 Exponential backoff factor
TRENDZEIST_PROXIES Comma-separated proxy URLs (rotated for explore calls; first one used for RSS)
TRENDZEIST_CACHE_DIR OS user cache dir Persistent JSON cache location (0700); off to disable
TRENDZEIST_LOG_LEVEL WARNING Python logging level (stderr)

Notes & limitations

  • Google rate-limits aggressively (HTTP 429). Every HTTP request is serialised and throttled; results are cached (15 min explore, 5 min RSS, 24 h categories) as plain JSON on disk so client restarts don't re-fetch. Memory cache is bounded and expired files are swept automatically. Errors come back as tool errors with guidance.
  • Values are Google's relative 0–100 index, not absolute search volume.
  • related_topics frequently returns nothing from Google; related_queries is reliable.
  • Google's legacy daily trending_searches endpoint is gone (404); trending_now uses the RSS feed.
  • Camoufox/browser mode from pytrends-modern is intentionally not used.

Disclaimer

This server talks to the same undocumented endpoints the trends.google.com frontend uses. They are unofficial and may change, rate-limit or disappear without notice. A weekly live canary runs in CI to catch breakage early. This project is not affiliated with, endorsed by, or sponsored by Google LLC. "Google Trends" is a trademark of Google LLC. You are responsible for complying with Google's terms of service in your jurisdiction.

Contributing

Issues and PRs welcome. Read AGENTS.md for architecture and conventions (also useful if you point a coding agent at the repo). Data-shape corrections after a Google change are the most valuable contribution — include the call you made and what came back.

License

MIT — see LICENSE. Built on pytrends-modern (MIT).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trendzeist_mcp-0.2.0.tar.gz (25.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trendzeist_mcp-0.2.0-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

Details for the file trendzeist_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: trendzeist_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 25.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for trendzeist_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 09d755d67fb38daf432e169945a643015abe4ba668f7fa53a655708a16417872
MD5 43bf0b7ae0262700bb0ba723db667ed5
BLAKE2b-256 64ef287267b2ef0041f639ff2bc4ce771d2df32da91c79617be3e2fb37ee003c

See more details on using hashes here.

Provenance

The following attestation bundles were made for trendzeist_mcp-0.2.0.tar.gz:

Publisher: publish.yml on phalkmin/trendzeist-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trendzeist_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: trendzeist_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for trendzeist_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 968f6cf19e1cb452eba66d3577691f19392003a7c01885891d361fde4a4981f5
MD5 ef566450c8bd1cdc49f48a189b208c77
BLAKE2b-256 f2c0fdcba4e2fc850d8e450eba76f3dfc913e3f8f2270418c128700f5ed0dc40

See more details on using hashes here.

Provenance

The following attestation bundles were made for trendzeist_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on phalkmin/trendzeist-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.1

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page