Google Trends MCP
Google Trends MCP
Ein lokaler MCP-Server, der Claude (oder jedem anderen MCP-Client) erlaubt, Google Trends direkt abzufragen — Suchinteresse im Zeitverlauf, verwandte Suchanfragen und Themen, regionale Aufschlüsselungen und Trend-Suchen in Echtzeit. So können Sie Marktforschung direkt in einem Gespräch betreiben, statt zu trends.google.com zu wechseln und Screenshots wieder einzufügen.
Entwickelt für persönliche Marktforschung. Kein API-Schlüssel erforderlich — Google Trends hat keine offizielle öffentliche API, daher kapselt dieses Projekt pytrends, den üblichen inoffiziellen Python-Client, in einen MCP-Server.
Werkzeuge
Alle Werkzeuge verwenden standardmäßig geo="IN" (Indien), sofern nicht anders angegeben — für weltweite Suchanfragen geo="E" (weltweit) setzen oder einen beliebigen ISO-Ländercode angeben ("US", "GB", usw.). timeframe akzeptiert das Pytrends-Format, z. B. "today 12-m", "today 5-y", "now 7-d" oder einen expliziten Zeitraum "2024-01-01 2024-06-01".
interest_over_time(time, timeframe="today 12-m", geo="IN")
Relatives Suchinteresse (0–100) im Zeitverlauf für bis zu 5 Suchbegriffe, nebeneinander verglichen. Weitere Suchbegriffe über den ersten fünf hinaus werden stillschweigend verworfen. Jeder Datensatz enthält isPartial – wenn dieser beim aktuellsten Datenpunkt true ist, bedeutet das, dass dieser Zeitraum noch nicht abgeschlossen ist und der Wert vorläufig; werten Sie einen Abfall an diesem Punkt nicht als echte Trendänderung.
related_queries(keyword, timeframe="today 12-m", geo="IN")
Top- und steigende verwandte Suchanfragen für ein einzelnes Keyword. Gibt {"top": [...], "rising": [... ]} zurück, jeweils eine Liste von Einträgen der Form {"query": ... , "value": ...}. top-Werte sind relatives Interesse von 0–100. rising-Werte sind die prozentuale Zunahme — **außer bei** einem Wert von 5000%`, der Googles „Breakout"-Marker für explosives Wachstum von einer Basis nahe null ist, und keine wörtliche Prozentangabe darstellt.
related_topics(keyword, timeframe="today 12-m", geo="IN")
Wie related_queries, nur mit Themen-Clustern (Googles eigenen Themen-Gruppierungen) anstelle roher Suchanfrage-Strings — Einträge enthalten topic_title und topic_type zusätzlich zu value. Für rising gilt die gleiche Breakout-Konvention.
interest_by_region(keyword, timeframe="today 12-m", geo="IN")
Suchinteresse für ein Keyword, nach Bundesland/Region innerhalb des angegebenen geo aufgeschlüsselt. Gibt eine Liste von Einträgen {"geoName": ..., "<keyword>": 0-100} zurück, einen pro Region.
trending_now(geo="india")
Die heutigen Top-Trendsuchen für ein Land. Beachten Sie: Das geo-Format ist hier anders – es ist ein vollständiger Ländername in Kleinbuchstaben ("india", "united_states"), nicht ein ISO-Code wie bei den anderen vier Werkzeugen. Dies ist eine echte Inkonsistenz in Googles eigenen Endpunkten, kein Bug.
Bekannte Einschränkung: Standjetzt schlägt
trending_nowmit HTTP 404 fehl. Google scheint die Legacy-Endpunkte (hottrends/dailytrends/realtimetrends), von denen pytrends' Trend-Suchmethoden abhängen, eingestellt zu haben – bestätigt durch Tests aller drei Varianten, die pytrends anbietio. Dies ist ein Upstream-Problem und in dieser Codebasis nicht behebbar; es meldet sich sauber mit einer lesbaren Fehlerzeichenfolge statt mit einem Crash. Die anderen vier Werkzeuge verwenden eine andere, weiterhin funktionale Endpunkt-Familie und sind nicht betroffen. Wenn Google den Endpunkt wiederherstellt oder pytrends einen Workaround liefert, wird dies ohne Änderungen hier wieder funktionieren.
Alle Werkzeuge fangen Fehler ab (Rate Limits, Netzwerkfehler, all das oben Genannte) und einen klaren Fehlerstring statt eines Crashes — Google Trends is a scraped endpoint, not a stable API, so this is expected behavior, not an exception.
Related MCP server: Google Trends MCP Server
Setup
Erfordert Python 3.10+ und uv.
git clone https://github.com/jain-eshan/google-trends-mcp.git
cd google-trends-mcp
uv syncBei Claude Code registrieren
claude mcp add google-trends -- uv run --directory /absolute/path/to/google-trends-mcp server.pyVerifizieren Sie die Verbindung:
claude mcp listSie sollten google-trends als ✔ Connected sehen. Starten Sie nach der Registrierung eine neue Claude-Code-Konversation — bereits laufende Sessions werden einen neu hinzugefügten Server nicht übernehmen.
Verwenung
Sobald registriert, einfach Claude sagen, es zu nutzen — z.B.:
„Nutze den google-trends MCP, um das Interesse an ‚lab grown diamonds' im Vergleich zu ‚diamond jewellery' in Indien über die letzten 12 Monaten zu vergleichen, und zeig mir verwandte Suchanfragen."
Optional: die /trends-Fähigkeit
Dieses Repository bietet eine Claude-Code-Fähigkeit unter .claude/skills/trends/SKILL.md, die die Rohwerkzeuge in einen Recherche-und-Synthese-Workflow einbindet – sie entscheidet, welche Werkzeuge für dein Thema relevant sind, und schreibt eine verständliche Zusammenfassung statt roher JSON-Ausgabe. Wenn Sie Claude Code verwenden, wird diese Fähigkeit automatisch aus diesem Repository übernommen; führen Sie einfach:
/trends <your topic>Hinweise zum Design
Nur Daten, keine Synthese im Server. Jedes Werkzeug liefert rohe, strukturierte Daten — die Interpretation (ist dieserTrend garantiert, was bedeutet eine Breakout-Markierung hier, was sollte hervorgehoben werden) passiert in der aufrufenden Konversation, nicht im Server. Das hält den Server einfach and lässt dem Aufrufer (Claude oder einem anderen MCP-Client) sein eigenes Urteil.
Keine Abhängigkeiten über
mcp[cli]undpytrendshinaus. Keine Datenbank, keino Konfigurations-datei, kein API-Schlüssel.Keine formale Testsuite. Das umhüllt einen gescrapten Drittanbieter-Endpunkt; eine Testsuite würde hauptsächlich pytrends und Googles aktuelle Antwortformat testen, nicht diesen Code. Stattdessen wurde jedes Werkzeug während der Entwicklung mit echten Google-Trends:-Daten verifiziert.
Lizenz
MIT — siehe LICENSE.
Available Tools
11 toolsapp_store_appsA
Existing iPhone/iPad apps matching a query, from Apple's public iTunes Search API - who already serves this need, and how many people rate them (rating count is a rough proxy for user base). No setup needed.
Args: query: search terms, e.g. "meal planner" or "invoice". country: ISO country code for the store, e.g. "US" (default), "IN", "GB". limit: max apps, capped at 50.
Returns: A list in App Store relevance order, each with "name", "developer", "rating", "rating_count", "price", "genre", "released", "last_updated", "url".
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| country | No | US |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden and does so well: it names the public API source, states no setup is needed, explains that results are in App Store relevance order, and caps the limit at 50. It does not mention rate limits, data freshness, or error behavior, but for a read-only search tool the disclosed behavior is reasonably complete.
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 organized with clear Args and Returns sections and keeps each parameter explanation short. The opening sentence is slightly awkward and could be tightened, but there is no redundant filler and the most important details are front-loaded.
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 three-parameter search tool with no output schema and no annotations, the description is quite complete: it documents all parameters, explains the return fields, and notes ordering and the rating-count proxy. It could add edge-case behavior like empty results or country-specific quirks, but nothing essential is missing for calling it correctly.
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 fully compensates by documenting every parameter: query with examples, country with ISO code format and default, and limit with its 50 cap. This adds meaningful semantics beyond the raw JSON schema types and defaults.
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 existing iPhone/iPad apps matching a query from Apple's public iTunes Search API. It conveys the search behavior and domain, though it lacks a crisp verb like 'search' and does not explicitly differentiate from sibling tools. The odd phrasing 'who already serves this need' slightly weakens clarity but does not obscure the purpose.
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?
It explains the use case: finding apps that already serve a need and using rating count as a proxy for user base, plus 'No setup needed' signals ease of use. It does not provide explicit when-not-to-use guidance or name alternative tools, but the sibling list contains no direct app-store alternative, so the implied context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
builder_activityA
Are people actually building and shipping in this space? Hacker News stories
(launches, Show HNs, debates) plus GitHub repositories - a builder signal, as opposed
to search interest or community chatter. Works with no setup; a GITHUB_TOKEN saved via
/gutcheck setup raises GitHub's limit from 10 to 30 searches a minute.
For Product Hunt launches, use web search restricted to producthunt.com instead - Product Hunt's API has no search endpoint.
Args: query: search terms, e.g. a product category ("habit tracker") or problem.
Returns: {"hn": {"total": int, "stories": [...]}, "github": {"total": int, "repos": [...]}}. Each story: title, points, num_comments, url, created_at. Each repo (top 10 by stars): name, description, stars, last_push, url.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It openly describes the data sources, optional GITHUB_TOKEN requirement, rate-limit implications, and return structure including that GitHub results are the top 10 by stars. It does not mention edge cases or failure modes, but it is substantially transparent for a read-style search 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 well-structured with a clear purpose statement, setup note, alternative routing, and an Args/Returns breakdown. Every sentence contributes useful information, and the return format is compactly documented. It earns its length.
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 a single parameter, no annotations, and no output schema, the description is remarkably complete. It explains the query semantics, the result shape, per-item fields, the GitHub top-10 behavior, rate limits, and an important alternative for Product Hunt. An agent has enough information to invoke the tool correctly and interpret its response.
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 fully explain the single query parameter. It does so clearly: 'search terms, e.g. a product category ("habit tracker") or problem.' This adds meaningful semantic guidance beyond the bare schema's type and required flag.
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's function: combining Hacker News stories and GitHub repositories into a 'builder signal'. It distinguishes itself from sibling tools by contrasting with 'search interest or community chatter' and mentions specific sources, making it easy for an agent to disambiguate from tools like related_topics or interest_over_time.
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 gives useful context for when to use the tool: when there is interest in real building/shipping activity rather than search interest or chatter. It also provides an explicit exclusion and alternative for Product Hunt launches, directing users to web search instead. It does not exhaustively enumerate when not to use it versus every sibling, but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_registrationA
Company registration lookup via OpenCorporates - registration facts only (incorporation date, status, company number). Does NOT cover funding, valuation, or traction data - no free API exists for that (see README for why).
Requires a free OpenCorporates API token: as of 2026 OpenCorporates requires a
token on every request, even on the free tier (roughly 50 requests/day, 200/month).
Register at https://opencorporates.com/api_accounts/new and save it as
OPENCORPORATES_API_TOKEN via /gutcheck setup.
Args: name: company name to search for. jurisdiction: optional OpenCorporates jurisdiction code (e.g. "in", "us_de") to narrow results.
Returns: A list of up to 5 matches, each containing "company_name", "jurisdiction_code", "incorporation_date", "company_number", "current_status", "opencorporates_url". Empty list if no matches. A setup-instructions string if OPENCORPORATES_API_TOKEN is unset, or OpenCorporates' own rejection message if the token is invalid/expired.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| jurisdiction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden, and it succeeds: it discloses token requirements, rate-limit context (~50/day, 200/month), behavior when the token is unset or invalid, return format, match limit, and empty-list behavior. This gives the agent a reliable model of tool behavior.
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 longer than average but every sentence serves a purpose: scope, exclusions, auth setup, arguments, and return contract. It is front-loaded with the core purpose and structured so an agent can quickly extract what it needs.
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?
Despite having no output schema, the description specifies the exact returned fields, the cap of 5 matches, the empty-list case, and error/setup responses. For a lookup tool with only two parameters and one sibling-group mismatch, nothing material is missing for correct invocation.
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 define the parameters, and it does: it explains that name is the company name to search, and jurisdiction is optional with concrete examples like 'in' and 'us_de'. This adds real meaning beyond the raw schema.
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 states a specific verb and resource ('Company registration lookup via OpenCorporates') and immediately scopes it to registration facts only. It also explicitly distinguishes itself from funding/valuation/traction data, so an agent can tell exactly what this tool is and is not for.
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 explains when to use it (registration lookup) and when not to use it (funding, valuation, or traction data), noting that no free API exists for those. It also gives setup prerequisites for the required token, which is essential operational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interest_by_regionA
Search interest for a keyword broken down by state/region within a country, or by country when geo is "" (worldwide).
Args: keyword: a single search term. timeframe: pytrends timeframe string, e.g. "today 12-m". geo: ISO country code (e.g. "US", "IN"), or "" for worldwide (default). response_format: "concise" (default) returns only the top 10 regions by interest, rounded to whole numbers. "full" returns every region, unrounded.
Returns: A list of records, one per state/region within the specified geo, each containing: - "geoName": the state/region name (e.g. "California"), or the country name when worldwide - A column with the keyword name as the key: relative search interest (0-100 scale) for that region. Higher values indicate higher relative interest in that region compared to others in the same country. This is Google Trends' standard region-relative scale.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | ||
| keyword | Yes | ||
| timeframe | No | today 12-m | |
| response_format | No | concise |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the output format, the scale (0-100) and its meaning, and the difference between 'concise' and 'full' response formats. It also notes the relative nature of interest scores. It does not mention potential limitations (e.g., rate limits, data availability), but the core behavior is 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?
The description is well-organized with a clear opening purpose, followed by args and returns. It is detailed but not verbose; every sentence adds value. The structure is logical, though the args/returns section is somewhat lengthy, but that is justified given the need to explain the output format.
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 4 parameters, no output schema, and no annotations. The description covers all parameters, explains the output structure precisely, and gives examples. It is complete enough for an agent to call correctly without further information. No critical information is missing.
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 explain all parameters. It does so thoroughly: keyword (single search term), timeframe (with example 'today 12-m'), geo (ISO codes, '' for worldwide), and response_format (with definitions of 'concise' and 'full'). It adds meaning well beyond the schema's bare types.
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's purpose: searching interest for a keyword broken down by state/region within a country, or by country when geo is empty. This is a specific verb+resource combination that distinguishes it from sibling tools like interest_over_time (time series) and related_topics (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 clearly indicates when to use this tool: when you need regional breakdown of interest within a country, or by country worldwide. It does not explicitly state when not to use it, but the context is clear and the parameter descriptions (geo, timeframe) provide implicit guidance. The return format explanation further clarifies usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interest_over_timeA
Relative Google search interest (0-100) over time for up to 5 keywords, compared side by side.
Args: keywords: 1-5 search terms to compare. Only the first 5 are used; additional keywords are silently dropped. timeframe: pytrends timeframe string, e.g. "today 12-m", "today 5-y", "now 7-d", or "YYYY-MM-DD YYYY-MM-DD". geo: ISO country code (e.g. "US", "IN", "GB"), or "" for worldwide (default). response_format: "concise" (default) covers the whole requested timeframe, thinned to about 26 evenly spaced points (first and last always kept) and rounded to whole numbers, so the shape of the window is intact at a low token cost. "full" returns every point unrounded - use it when you need week-by-week detail.
Returns: A list of records, one per date, each containing: - "date": ISO date string - "isPartial": present and true only when the period is incomplete (most recent point) - omitted when false in "concise" mode, since false is the common case. - One numeric key per keyword (0-100 relative interest value)
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | ||
| keywords | Yes | ||
| timeframe | No | today 12-m | |
| response_format | No | concise |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure. It reveals key quirks: extra keywords beyond 5 are silently dropped, 'concise' mode thins to ~26 evenly spaced points with rounding, and 'isPartial' appears only for incomplete periods. This is unusually transparent and useful for an agent.
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 long but every section earns its place: purpose, parameter semantics, and return format. It is front-loaded with the core purpose and structured into Args/Returns, making it easy for an agent to scan.
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?
There is no output schema, so the return-structure explanation is essential and provided in detail: date, isPartial semantics, and per-keyword interest values. All four parameters are covered, and the behavioral nuances are disclosed. Nothing critical is missing for an agent to invoke the tool correctly.
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%, so the description must document all parameters. It does so comprehensively: keywords with the 1-5 limit and drop behavior, timeframe with pytrends string examples, geo with country-code examples and default, and response_format with both modes fully explained.
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 states a specific verb and resource: it retrieves relative Google search interest (0-100) over time for up to 5 keywords. It also communicates the comparative, time-series nature that distinguishes it from siblings like interest_by_region or related_topics.
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 clearly conveys the tool's context: search-interest trends over time, compared across keywords, with geographic filtering. It also gives specific guidance on when to use 'concise' vs 'full' response formats. It does not explicitly name alternatives or exclusion conditions, but the intended use is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_coverageA
Recent news coverage from Google News - is the press writing about this, and what angle are they taking? Useful for spotting funding rounds, regulation, launches, and whether a topic is getting more or less attention. No setup needed.
Args:
query: search terms.
geo: ISO country code for the news edition, e.g. "US" (default), "IN", "GB".
recent: how far back - "7d", "1m", "1y" (default). Uses Google News' own when: filter.
limit: max headlines to return (Google returns up to ~100; "total" counts all of them).
Returns: {"total": int, "last_30_days": int, "headlines": [{"title", "source", "published", "url"}]}, newest first. "total" and "last_30_days" are counts within Google's capped result set, so treat them as a rough attention gauge, not an exact article count.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | US | |
| limit | No | ||
| query | Yes | ||
| recent | No | 1y |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure, and it delivers: it explains the data source (Google News), the capped result set, how 'total' and 'last_30_days' should be interpreted as rough gauges rather than exact counts, the newest-first ordering, and the use of Google News' `when:` filter. This is strong transparency beyond the bare schema.
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 well-structured with a clear lead sentence, an Args section, and a Returns section. It is somewhat longer than strictly necessary, but the extra details (cap caveat, newest first, rough attention gauge) are genuinely useful and not redundant 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?
Even with no output schema, the description fully specifies the return structure, field semantics, and important caveats about counts. It also covers setup expectations ('No setup needed') and the tool's intended analytical uses, so an agent has enough context to select and invoke it correctly.
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, and it does thoroughly: query is defined as search terms, geo as an ISO country code with examples, recent as a time range with the underlying filter explained, and limit as a max-headline count with a note about Google's ~100 cap. It adds meaning and usage guidance that the schema alone does not provide.
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 opens with a specific verb and resource: 'Recent news coverage from Google News' and immediately frames the purpose ('is the press writing about this, and what angle are they taking?'). The use cases (funding rounds, regulation, launches, attention trends) make it clear what this tool does and how it differs from the sibling tools like related_topics or interest_over_time.
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 gives clear context for when to use the tool ('Usable for spotting funding rounds, regulation, launches, and whether a topic is getting more or less attention') and notes 'No setup needed.' It does not explicitly name alternatives or say when not to use it, but the stated use cases are sufficient orientation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_signalA
What real people on Reddit are saying, asking, or complaining about - qualitative community signal, as opposed to Trends/Wikipedia's passive search/reading numbers.
Works with no setup via Reddit's public search feed (which returns post text but not
scores, and rate-limits after a burst of requests). If REDDIT_CLIENT_ID and
REDDIT_CLIENT_SECRET are saved via /gutcheck setup, uses the official API instead,
which adds score and comment counts.
Args: query: search terms. subreddits: optional subreddit names to restrict the search to (e.g. ["startups", "SaaS"]). limit: max results, capped at 100. time_filter: "week", "month", "year" (default), or "all".
Keep the query short (2-4 words) and pass subreddits when obvious communities exist.
Reddit's keyless search matches loosely on long questions, so results that share no
meaningful word with the query are dropped and the rest are ranked by how many query
words they match.
Returns: A list of records with "title", "subreddit", "snippet" (first ~300 chars of the post body), "url", "created". "score" and "num_comments" are included only in API mode.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| subreddits | No | ||
| time_filter | No | year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly: it discloses rate limits, mode differences (public feed omits scores; API adds score and comment counts), setup prerequisites via /gutcheck setup, and the loose-matching/ranking behavior of the keyless search. This is strong behavioral disclosure beyond typical one-line definitions.
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?
Despite length, the description is front-loaded (purpose first) and every section earns its place: signal type, mode setup, args, querying heuristics, and return format. The structured Args/Returns layout makes the extra behavioral context navigable rather than bloated.
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?
Because there is no output schema, the description supplies the return record fields and mode-dependent omission of score/num_comments, which is essential. It also covers prerequisites, rate limiting, and parameter behaviors, leaving little an agent needs to infer before calling.
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, and it defines all four parameters: query as search terms, subreddits as optional restriction with examples, limit as max results capped at 100, and time_filter with valid values and default. The only schema-default it omits is limit's 25, which the schema itself exposes.
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 sentence identifies the resource (Reddit), the kind of data (qualitative posts by real people), and explicitly contrasts it with 'Trends/Wikipedia's passive search/reading numbers,' making sibling differentiation obvious. The query argument and return record names make it clear this is a Reddit post-search/signal tool.
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?
It positions the tool as qualitative community signal versus Trends/Wikipedia numeric data and gives concrete query/subreddit guidance ('Keep the query short (2-4 words) and pass subreddits when obvious communities exist'). It clearly explains when API mode will be used versus the keyless feed, but it never states an explicit 'use when / do not use when' rule, so no hard exclusion is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wikipedia_pageviewsA
Monthly Wikipedia pageview counts for an article - a free, no-auth reference/reading interest signal that complements Google Trends' search-interest signal. The two diverging (e.g. a term trending in search but flat on Wikipedia) can itself be a signal worth flagging.
Args: article: an English Wikipedia article title, e.g. "Artificial_intelligence" or "Machine learning" (spaces are handled automatically). timeframe: how far back to request, as a simple duration - "P1Y" (1 year, default), "P6M" (6 months), "P90D" (90 days). Only whole Y/M/D forms are supported. response_format: "concise" (default) returns only the most recent 12 months. "full" returns the entire requested timeframe.
Returns: A list of records, one per month, each containing: - "month": "YYYY-MM" - "views": total pageviews that month (all access methods, human traffic only - bot traffic is excluded by Wikimedia's "user" agent filter)
| Name | Required | Description | Default |
|---|---|---|---|
| article | Yes | ||
| timeframe | No | P1Y | |
| response_format | No | concise |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so thoroughly. It discloses free/no-auth access, monthly granularity, human-only traffic (bot traffic excluded by Wikimedia's 'user' agent filter), all access methods, and the behavior of response_format. It also notes automatic space handling and supported duration forms.
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 well-structured: purpose first, then usage context, then parameter details, then return format. Every sentence contributes useful information without filler or redundancy, and the sections are easy to parse.
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 no output schema and no annotations, the description is operationally complete. It specifies all inputs with defaults, explains the output record structure, and documents behavioral caveats such as bot filtering and response format differences. An agent can invoke it correctly without additional documentation.
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%, but the description fully compensates. For article it gives title format and space-handling behavior; for timeframe it lists duration examples, the default, and supported forms; for response_format it explains 'concise' vs 'full' and the default. This adds significant meaning beyond the bare schema.
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 opens with a specific verb and resource: 'Monthly Wikipedia pageview counts for an article.' It further distinguishes itself from Google Trends' search-interest signal by framing it as a free, no-auth reference/reading-interest signal, making its purpose and differentiation clear.
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?
It clearly positions the tool as complementary to Google Trends and explains that divergence between the two signals can be worth flagging, giving the agent context on when to use it. It does not explicitly name sibling tools or state when not to use it, but the guidance is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_videosA
YouTube videos matching a query, with view and comment counts - shows how much people watch content about a topic (tutorials, reviews, "I tried X" videos), which is often a stronger consumer-interest signal than search volume.
Requires a free YOUTUBE_API_KEY (Google Cloud, YouTube Data API v3), saved via
/gutcheck setup. Each call uses about 101 of the free 10,000 daily quota units.
Args: query: search terms. limit: max videos, capped at 25. published_after_days: only videos from the last N days; omit for any time.
Returns: A list in YouTube relevance order, each with "title", "channel", "published", "views", "likes", "comments", "url". A setup-instructions string if no key is saved.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| published_after_days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the required YOUTUBE_API_KEY, quota consumption of about 101 units per call, and the fallback behavior of returning setup instructions if no key is saved. It does not cover API error cases, but the main behavioral traits are 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?
The description is well organized into purpose, preconditions, arguments, and return value, with the main purpose front-loaded. There is slight redundancy in repeating view/comment counts in both the opening and the Returns section, but overall it is compact and scannable.
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 3-parameter tool with an output schema, the description is complete: it covers setup, quota, parameter semantics, return shape, and the no-key fallback. An agent has enough context to select and invoke the tool correctly without needing additional documentation.
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 Args section is essential and fully compensates. It defines query as search terms, explains limit is capped at 25, and clarifies published_after_days filters to the last N days or can be omitted for any time period. This adds real meaning beyond the bare schema types and defaults.
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 opens with a specific verb and resource: 'YouTube videos matching a query, with view and comment counts.' It also clarifies the tool's role as a consumer-interest signal compared to search volume, making it distinct from unrelated siblings like reddit_signal, news_coverage, and related_topics.
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?
It provides clear use context: to measure how much people watch content about a topic, with examples like tutorials and reviews, and notes this is often stronger than search volume. It includes the important API-key prerequisite, but does not explicitly say when to prefer an alternative sibling or when not to use this tool.
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.
12 tool updates
v1.0.0- Added
app_store_apps - Added
builder_activity - Added
company_registration - Changed
interest_by_region2 fields changed- changed
Input schema / properties / geo / defaultPrevious value: -"IN"New value: +"" - added
Input schema / properties / response_formatAdded value: +{ + "default": "concise", + "title": "Response Format", + "type": "string" +}
- Changed
interest_over_time2 fields changed- changed
Input schema / properties / geo / defaultPrevious value: -"IN"New value: +"" - added
Input schema / properties / response_formatAdded value: +{ + "default": "concise", + "title": "Response Format", + "type": "string" +}
- Added
news_coverage - Added
reddit_signal - Changed
related_queries2 fields changed- changed
Input schema / properties / geo / defaultPrevious value: -"IN"New value: +"" - added
Input schema / properties / response_formatAdded value: +{ + "default": "concise", + "title": "Response Format", + "type": "string" +}
- Changed
related_topics2 fields changed- changed
Input schema / properties / geo / defaultPrevious value: -"IN"New value: +"" - added
Input schema / properties / response_formatAdded value: +{ + "default": "concise", + "title": "Response Format", + "type": "string" +}
- Removed
trending_now - Added
wikipedia_pageviews - Added
youtube_videos
5 tool updates
v0.1.0- First observed
interest_by_region - First observed
interest_over_time - First observed
related_queries - First observed
related_topics - First observed
trending_now
TDQS
Scored across 11 tools
Each tool targets a distinct data source or dimension: Google Trends topics, queries, time series, regional breakdown, plus Wikipedia, OpenCorporates, Reddit, HN/GitHub, Google News, App Store, and YouTube. Even within Trends, related_topics vs related_queries are clearly separated by content type. No ambiguity.
All tool names follow a consistent snake_case noun phrase pattern (e.g., interest_over_time, reddit_signal, builder_activity). No mixing of conventions or verb styles, making the set predictable and easy to navigate.
With 11 tools covering a wide but focused range of market research signals, the count is well-scoped. Each tool contributes a unique data source, and none feel redundant or missing for the server's stated purpose.
The surface covers search interest, related topics/queries, regional data, reference interest (Wikipedia), community chatter (Reddit), builder activity (HN/GitHub), news coverage, app ecosystem, and YouTube viewership. Minor gaps exist (e.g., no global 'trending now' without a keyword, no multi-keyword regional comparison), but core workflows are well supported.
Maintenance
Related MCP Connectors
Google Trends: Search, Images, News, Shopping over time, growth metrics. Free key at trendsmcp.ai
Cross-platform social media intelligence. Trend volume and growth signals. Free key at trendsmcp.ai
Your agent needs to know where a brand or a phrase is being talked about across the web — with the trend line, the sentiment and the ratings attached. **What you can ask for** • "Where is our brand cited across the web this quarter, and is that rising?" • "What is the sentiment around this phrase?" • "How do ratings for this product distribute?" • "Which categories is this topic trending in?" • "Summarise everything published about this term." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-content/mcp and sign in with OAuth — there is no key to create or paste. 10 tools: content search, summary, phrase and category trends, sentiment analysis, rating distribution, plus the filters, categories, languages and locations behind them. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find where you are mentioned here, then ask the same agent who links to those pages — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.
Related MCP Servers
- AlicenseBqualityFmaintenanceProvides access to Google Trends data including status, trending questions, and trending topics via MCP tools.316 npm28MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access Google Trends data for comparing keywords, discovering trending searches, and analyzing regional interest through natural language.2MIT
- 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.5232 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query Google Trends data, including search interest over time, regional breakdowns, trending searches, and keyword ideas.MIT