Skip to main content
Glama
phalkmin

trendzeist-mcp

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-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; plus questions[] people ask

mine_questions

Long-tail questions about a seed from Google Autocomplete (how to, why, what is, vs …), deduped and angle-tagged — FAQ / AEO fuel

interest_over_time

0-100 interest curve with mean, peak, direction, growth_3m / growth_12m and a plain-English insight

compare_keywords

Head-to-head share and winner for 2-5 keywords

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

list_categories

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 (currently 1; bumped only when a field is removed or changes meaning) and _meta with requests_made, cache_hit, cache_hits, cache_misses for that call — so the model knows when to slow down.

  • angle is one of how-to | comparison | listicle | definition | news (or null) — 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 a reason.

  • Language follows the market. With TRENDZEIST_HL unset, geo="BR" queries Google with hl=pt-BR (≈50 countries mapped), so related queries come back in Portuguese. The effective language is echoed as query.hl.

  • Authority channels: pass gprop="news" or gprop="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

✅ 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

(unset → follows geo)

Pin the UI language for every query (e.g. en-US). When unset, the language is derived from each request's geo (BR → pt-BR, unknown → en-US)

TRENDZEIST_TZ

360

Timezone offset in minutes

TRENDZEIST_MIN_INTERVAL

2.0

Minimum seconds between every HTTP request to Google (cookie, token, data, RSS, Autocomplete)

TRENDZEIST_RETRIES

3

Retry attempts on transient errors

TRENDZEIST_BACKOFF

1.5

Exponential backoff factor

TRENDZEIST_PROXIES

—

Comma-separated proxy URLs. Rotated per request for explore calls; RSS and Autocomplete always use the first one

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 / 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_questions issues 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 as limit is met and returns partial results if Google starts refusing.

  • Values are Google's relative 0–100 index, not absolute search volume. growth_3m / growth_12m compare the mean of the last window with the window before it and are null when the timeframe is too short (use today 12-m / today 5-y).

  • Question prefixes in mine_questions are English; for native-language questions in a non-English market, pass a seed already phrased in that language.

  • 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 (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 tools
compare_keywordsA

Compare 2-5 keywords head-to-head: relative share, leader and trend direction for each. Use to pick the strongest angle among alternatives.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNo
gpropNo
categoryNo
keywordsYes
timeframeNotoday 12-m

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNo
gpropNo
categoryNo
timeframeNotoday 3-m
max_per_seedNo
seed_keywordsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNo
gpropNo
limitNo
categoryNo
keywordsYes
timeframeNotoday 12-m
resolutionNoCOUNTRY

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNo
gpropNo
categoryNo
keywordsYes
timeframeNotoday 12-m

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
searchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNo
seedYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.3.0
    • Addedmine_questions
  2. 9 tool updatesv0.2.1
    • First observedcompare_keywords
    • First observeddiscover_topics
    • First observedinterest_by_region
    • First observedinterest_over_time
    • First observedlist_categories
    • First observedrelated_queries
    • First observedrelated_topics
    • First observedsuggest_keywords
    • First observedtrending_now

TDQS

A3.8/5.0

Scored across 10 tools

Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides Google Search trend data as an MCP tool, with historical series, growth percentages, and live trending searches, no scraping or rate limits.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides 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.
    5
    102 npm
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP 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.
    7
    2
    MIT