trendzeist-mcp
This server provides MCP tools that turn Google Trends data into blog topic ideas, search questions, and trend insights.
Discover blog topics from 1–5 seed keywords, ranked as breakout/rising/evergreen with title angles and related questions.
Mine long-tail questions people actually ask (how-to, why, what is, vs, etc.) for FAQ and AEO content.
Get interest over time with 0–100 curves, growth percentages, and plain-English insights.
Compare keywords head-to-head to pick the strongest angle.
Find related queries and topics with breakout flags and question-shaped items.
See interest by region — country, region, city, or DMA — to localize content.
Discover trending searches right now, with news headlines, for newsjacking.
Suggest and disambiguate keywords into Google entities with titles, types, and mids.
List Google Trends categories to narrow queries.
Use a guided ideation prompt (
blog_ideas_from_trends) that walks an AI assistant from topic to a ranked content plan.Filter by geography, category, and channel (web, news, YouTube, images, shopping) without an API key or browser.
Provides access to Google Trends data, enabling topic discovery, keyword comparison, interest-over-time analysis, related queries and topics, geographic breakdowns, and real-time trending searches.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@trendzeist-mcpGive me blog post ideas about home espresso for US readers."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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, a title angle per idea, plain-English trend insights, interest curves, regional demand and real-time trends. 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,
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.
Related MCP server: google-search-trends-mcp
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-mcpClaude 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 |
| Ranked blog topics from 1-5 seeds: breakout > rising > evergreen, deduped, each with a title |
| Long-tail questions about a seed from Google Autocomplete ( |
| 0-100 interest curve with mean, peak, direction, |
| Head-to-head share and winner for 2-5 keywords |
| Top & rising related searches with breakout flags, angles and |
| Top & rising Knowledge-Graph topics (best-effort) |
| Where demand lives: COUNTRY (worldwide), REGION (within a country), CITY / DMA (US or worldwide) |
| Disambiguate a term into Google entities (title, type, mid) |
| What's trending right now, with news headlines |
| Find Google Trends category ids to narrow any query |
Prompt: blog_ideas_from_trends(topic, audience, geo) — a guided ideation workflow.
Output conventions (since 0.3.0)
Every result carries
schema_version(currently1; 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.angleis one ofhow-to | comparison | listicle | definition | news(ornull) — the title format the query suggests. Pair it with evidence: how-to → steps + numbers, comparison → table + quotes, definition → cite a primary source, news → dated publisher quotes.Anything silently adjusted is reported: clamped limits add a
note, empty results add areason.Language follows the market. With
TRENDZEIST_HLunset,geo="BR"queries Google withhl=pt-BR(≈50 countries mapped), so related queries come back in Portuguese. The effective language is echoed asquery.hl.Authority channels: pass
gprop="news"orgprop="youtube"to any explore tool to see what news outlets and video audiences are searching for — the sources answer engines cite most.gprop="images"and"froogle"(Shopping) also work.
Why this one?
trendzeist-mcp | typical alternatives | |
Ranked topic discovery in one call | ✅ | ❌ raw primitives only |
Guided ideation prompt | ✅ | ❌ |
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 debuggingPoint a client at the clone with
"command": "uv", "args": ["--directory", "/path/to/trendzeist-mcp", "run", "trendzeist-mcp"].
Configuration (env vars)
Variable | Default | Meaning |
| (unset → follows | Pin the UI language for every query (e.g. |
|
| Timezone offset in minutes |
|
| Minimum seconds between every HTTP request to Google (cookie, token, data, RSS, Autocomplete) |
|
| Retry attempts on transient errors |
|
| Exponential backoff factor |
| — | Comma-separated proxy URLs. Rotated per request for explore calls; RSS and Autocomplete always use the first one |
| OS user cache dir | Persistent JSON cache location ( |
|
| 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 / Autocomplete) 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.
mine_questionsissues up to 16 Autocomplete requests per uncached call (one per question prefix); at the default 2 s interval that is ~30 s worst case. It stops as soon aslimitis met and returns partial results if Google starts refusing.Values are Google's relative 0–100 index, not absolute search volume.
growth_3m/growth_12mcompare the mean of the last window with the window before it and arenullwhen the timeframe is too short (usetoday 12-m/today 5-y).Question prefixes in
mine_questionsare English; for native-language questions in a non-English market, pass a seed already phrased in that language.related_topicsfrequently returns nothing from Google;related_queriesis reliable.Google's legacy daily
trending_searchesendpoint is gone (404);trending_nowuses 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
(plus Google Autocomplete for mine_questions). 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).
Available Tools
10 toolscompare_keywordsA
Compare 2-5 keywords head-to-head: relative share, leader and trend direction for each. Use to pick the strongest angle among alternatives.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | ||
| gprop | No | ||
| category | No | ||
| keywords | Yes | ||
| timeframe | No | today 12-m |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the core behavior (comparison, relative share, leader, trend direction) but doesn't mention limitations like data availability, normalization, or how 'leader' is determined. It's adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and output, followed by a clear use case. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are covered. However, with no annotations and 0% schema coverage, the description should explain more about the optional parameters and any constraints (e.g., keyword count limits, required format). It's adequate for a simple comparison tool but leaves some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'keywords' parameter implicitly (2-5 keywords) but doesn't explain 'geo', 'gprop', 'category', or 'timeframe'. The description adds some meaning for the main parameter but leaves the optional parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compare') and resource ('keywords head-to-head'), and clearly states what it produces: relative share, leader, and trend direction for each keyword. It also distinguishes itself from siblings by focusing on comparison rather than single-keyword trends or related queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Use to pick the strongest angle among alternatives.' This gives clear context for selection. It doesn't explicitly name alternatives or exclusions, but the sibling list and the comparison-focused wording make the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_topicsA
One-shot topic discovery for blog ideation. For 1-5 seed keywords, pulls
trend direction plus rising/top related queries, de-duplicates and ranks
candidates as breakout > rising > evergreen, each tagged with a title angle.
questions collects question-shaped searches across seeds. Partial failures
are reported per seed in errors instead of failing the call.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | ||
| gprop | No | ||
| category | No | ||
| timeframe | No | today 3-m | |
| max_per_seed | No | ||
| seed_keywords | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so thoroughly: it discloses de-duplication, ranking logic, angle tagging, question aggregation, and per-seed partial failure reporting. This goes well beyond a generic summary and tells the agent what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler. The use case is front-loaded, followed by output behavior and failure semantics, and every clause contributes actionable detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output behavior is well covered and an output schema exists, so return values are not a gap. However, the optional filtering parameters (geo, gprop, category, timeframe) are not explained, and there is no guidance on when to prefer a sibling tool. Adequate for default calls but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It adds useful semantics only for seed_keywords ('1-5') and indirectly for max_per_seed ('per seed'), while geo, gprop, category, and timeframe are left unexplained; gprop in particular is opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific composite behavior: one-shot topic discovery that pulls trend direction and related queries, de-duplicates, and ranks candidates as breakout > rising > evergreen with an `angle` tag. This distinguishes it from siblings like related_queries and related_topics by describing an aggregated, ranked, blog-oriented result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the tool as 'one-shot topic discovery for blog ideation' and constrains input to 1-5 seed keywords, giving clear context for when to use it. It does not explicitly name sibling alternatives or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interest_by_regionB
Where a keyword is searched most. resolution: COUNTRY (geo='' only), REGION (states/provinces within geo), CITY and DMA (US metro areas; geo='US' or worldwide only). Non-US countries support REGION only.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | ||
| gprop | No | ||
| limit | No | ||
| category | No | ||
| keywords | Yes | ||
| timeframe | No | today 12-m | |
| resolution | No | COUNTRY |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose the important constraint matrix between resolution and geo, including the non-US REGION-only limitation. It says nothing about read-only nature, rate limits, pagination, or error behavior, so it is only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core purpose front-loaded and no filler. The shorthand notation ('geo='' only') is dense but readable, and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with 0% schema description coverage and no annotations, the description covers only the resolution/geo interaction. The return shape is arguably handled by the output schema, but the remaining call-critical parameters are left entirely unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 7 parameters, so the description must compensate. It explains the semantics and valid values of resolution and its coupling to geo, but says nothing about keywords, timeframe, gprop, category, or limit, leaving most parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening phrase 'Where a keyword is searched most' states the resource and the breakdown dimension (geography) clearly, which separates it from the time-oriented sibling interest_over_time. It is not a clean verb+resource statement and no sibling is named explicitly, so it lands just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The resolution/geo compatibility rules ('COUNTRY (geo='' only)', 'CITY and DMA ... geo='US' or worldwide only') effectively tell the caller when a given configuration is legal, which is real usage guidance. However, there is no guidance on when to choose this tool over interest_over_time or related_queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interest_over_timeB
Search-interest time series (0-100) for 1-5 keywords, with per-keyword summary (mean, latest, peak, direction, growth_3m/growth_12m % and a plain-English insight). Long series are downsampled to ~60 points. gprop: '' (web), 'news', 'youtube' (authority channels answer engines cite), 'images', 'froogle'.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | ||
| gprop | No | ||
| category | No | ||
| keywords | Yes | ||
| timeframe | No | today 12-m |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does a solid job: it discloses the 0-100 scale, downsampling to ~60 points, the summary fields, and valid gprop values. It does not mention error behavior or rate limits, but it provides meaningful operational detail beyond a bare verb phrase.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core output and keyword constraint stated first. The gprop list is efficient, and the parenthetical rationale for youtube adds useful context without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since an output schema exists, the return value shape is handled externally. However, the description lacks guidance on geo/category semantics and does not explain valid timeframe formats beyond the default, leaving some ambiguity for an agent making a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It explains the gprop choices and limits keywords to 1-5, but it does not clarify geo, category, or timeframe formats beyond schema defaults, leaving part of the parameter surface undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns search-interest time series with per-keyword summary metrics, which conveys the core function of a time-series tool. It is distinct enough from siblings like interest_by_region and related_queries by emphasizing the temporal dimension, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as compare_keywords, interest_by_region, or trending_now. The time-series nature is implied, but no exclusions, prerequisites, or routing advice are provided, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesA
Browse/search Google Trends category ids (e.g. 'coffee' -> Food & Drink >
Coffee & Tea). Pass the id as category to other tools to narrow results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| search | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries full responsibility for disclosing behavior. It does strongly indicate a read/browse/search action and gives an example of the output form. However, it says nothing about how the limit parameter behaves, whether the empty search returns all categories, or if the list is sorted—a moderate gap for a read-only tool with no pre-existing annotation context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description fits into two sentences and carries immediate value. The first word is the primary verb, a concrete example is embedded naturally, and the final sentence tells exactly what to do with the result. No repetition or filler—every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to explain return fields. It sufficiently covers what the tool's purpose, how to invoke it, and how to apply results in the broader tool set. The only real gaps are the unresolved semantic of the limit parameter and some search matching details, which lower the score from a perfect context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must take on the burden of explaining parameters. It gives an example of what 'search' is for ('coffee' -> category path) and implies 'browse' covers the limit case, but it never mentions the limit parameter by name or explains its behavior. With only 2 parameters, both undocumented at schema level, a clear explanation of one is not enough; this is a meaningful gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Browse/search Google Trends category ids.' It gives a concrete example ('coffee' -> Food & Drink > Coffee & Tea) and explicitly explains its output is used by passing the id to other tools. This clearly distinguishes the function from its trend-analysis siblings, which operate on time series and related terms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use the tool: when you need category IDs to narrow other tools' results. It does not explicitly mention when not to use it or name alternate siblings like suggest_keywords, but the use case is clear enough. It provides a strong implication of usage but leaves exclusions and alternatives unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mine_questionsA
Long-tail questions people type about a seed, from Google Autocomplete ('how to', 'why', 'what is', 'vs' ... expansions), de-duplicated and tagged with a title angle. Feeds FAQ sections and answer-engine (AEO) content. Up to ~16 throttled requests per call; results cached 24 h. limit: 1-100.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | ||
| seed | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It mentions throttling (up to ~16 requests per call), 24-hour caching, de-duplication, and tagging with a title angle. These are concrete behaviors that help the agent understand side effects and constraints. It does not mention read-only nature, but that is implied by the operation. The coverage is strong for a read-only mining tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that packs purpose, examples, behavioral details, and limit into a compact form. It is front-loaded with the core purpose. While it could be split for readability, every clause adds useful information, and it avoids redundancy. It is appropriately concise for the amount of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are covered. However, the description lacks parameter semantics and explicit usage guidance. It does not explain how 'seed' and 'geo' affect results, nor does it mention any ordering or filtering behavior. The behavioral details (throttling, caching) are good, but the missing parameter explanations and sibling differentiation make the tool incomplete for an agent to call it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter explanations. It only mentions 'limit: 1-100' in the description, providing a range for that parameter. However, it does not explain what 'seed' refers to (beyond being a starting topic) nor the meaning or possible values of 'geo'. With three parameters and 0% schema coverage, this is a significant gap that leaves the agent guessing about required input semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool mines long-tail questions from Google Autocomplete for a given seed, with explicit examples of expansions ('how to', 'why', 'what is', 'vs'). It distinguishes itself from siblings like related_queries or suggest_keywords by focusing on question-form queries and mentions the downstream use (FAQ, AEO content). The verb 'mine' plus resource 'questions' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning 'Feeds FAQ sections and answer-engine (AEO) content', which tells the agent when this tool is relevant. However, it does not explicitly contrast with sibling tools (e.g., related_queries, suggest_keywords) or state when not to use it. The context is present but not explicit, so the agent must infer the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_keywordsA
Google's entity suggestions for a keyword (title, type, mid). Use to disambiguate ambiguous terms or find the canonical topic id.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses that this is a read-style suggestion API and what it returns. It does not mention errors, limits, or external dependencies, but for this simple tool the core behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no wasted words: output shape first, then concrete usage scenarios.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with an output schema, the description covers purpose, response fields, and usage context. It stops short of documenting edge cases or output size limits, but the core calling context is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema gives no parameter descriptions, so the description compensates by clarifying that the keyword is used to retrieve entity suggestions and can disambiguate ambiguous terms. It could add input format details, but the one-parameter surface is simple.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete operation—returning Google entity suggestions for a keyword—and identifies the response fields (title, type, mid), distinguishing it from trend/time-series siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit use cases: disambiguate ambiguous terms or find the canonical topic ID. It doesn't name sibling tools or when not to use the tool, but the guidance is still actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trending_nowA
Real-time trending searches (last ~24h) for a country or US state, with approximate traffic and linked news headlines. Good for newsjacking.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | US | |
| max_articles | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It reveals the ~24h freshness window, geographic scoping, approximate traffic, and linked headlines. It does not cover data caveats or response behavior in depth, but provides a reasonable baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the core behavior, scope, and output contents, followed by a practical use case. Every sentence adds value and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-oriented tool with an output schema and optional parameters, the description supplies enough context: time range, geo scope, output elements, and intended use. Minor gaps remain around exact geo format and max_articles semantics, but these are not blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that geo refers to a country or US state and hints at max_articles through 'linked news headlines', but it never explicitly ties max_articles to the number of headlines returned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning real-time trending searches for a country or US state, with approximate traffic and linked news headlines. This distinguishes it from sibling tools like interest_over_time or related_queries, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Good for newsjacking' gives a clear, actionable use case and implies the tool is for time-sensitive, content-relevant trend discovery. It does not mention exclusions or alternatives, but the context is sufficient for basic routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.3.0- Added
mine_questions
9 tool updates
v0.2.1- First observed
compare_keywords - First observed
discover_topics - First observed
interest_by_region - First observed
interest_over_time - First observed
list_categories - First observed
related_queries - First observed
related_topics - First observed
suggest_keywords - First observed
trending_now
TDQS
Scored across 10 tools
Each tool clearly targets a distinct Google Trends data slice—time series, geography, related queries, autocomplete, real-time trends—so most choices are unambiguous. However, related_topics, related_queries, discover_topics, and mine_questions all serve neighboring discovery use cases)Skip the_surface. An agent must read descriptions closely to avoid picking the wrong discovery tool.
Several tools follow a clean verb_noun pattern (compare_keywords, list_categories, suggest_keywords, discover_topics, mine_questions), but others use noun or adjective-first names (related_topics, related_queries, interest_over_time, interest_by_region, trending_now). The pattern is readable but genuinely mixed.
Ten tools is a well-scoped count for a Google Trends/keyword-research server. Each tool maps to a distinct capability and none feels redundant or unnecessary.
The surface covers the core lifecycle of trend research: comparing keywords, tracking interest over time, geo breakdowns, category filtering, related topics/queries, keyword suggestions, question mining, topic discovery, and real-time trending. There are no obvious dead ends for the server's stated purpose.
Maintenance
Related MCP Connectors
Google Trends: Search, Images, News, Shopping over time, growth metrics. Free key at trendsmcp.ai
Bulk Google Trends: interest over time, regions, rising queries and plain-English trend summaries.
Google Trends Scraper API: Interest and Trending Now
Related MCP Servers
- AlicenseBqualityFmaintenanceProvides access to Google Trends data including status, trending questions, and trending topics via MCP tools.357 npm29MIT
- AlicenseNot gradedqualityBmaintenanceProvides Google Search trend data as an MCP tool, with historical series, growth percentages, and live trending searches, no scraping or rate limits.1MIT
- AlicenseAqualityDmaintenanceProvides free Google Trends data (interest over time, term comparison, related queries, trending now, regional breakdown) to MCP-compatible AI clients without needing an API key.5102 npm2MIT
- AlicenseAqualityBmaintenanceMCP server providing access to Google Trends, YouTube listings, Google Ads Transparency, and Google Play reviews via plain HTTP, with no API key required. It caches results and paces requests to work within Google's informal rate limits.72MIT