Google Trends MCP
Google Trends MCP
A local MCP server that lets Claude (or any MCP client) query Google Trends directly — search interest over time, related queries and topics, regional breakdowns, and real-time trending searches — so you can do market research inside a conversation instead of tab-switching to trends.google.com and pasting screenshots back in.
Built for personal/self-use market research. No API key required — Google Trends has no official public API, so this wraps pytrends, the standard unofficial Python client, in an MCP server.
工具
所有工具默认使用 geo="IN"(印度),除非另有说明 —— 传入 geo="" 表示全球范围,或任意一个 ISO 国家/地区代码(如 "US"、"GB" 等)。timeframe 接受 pytrends 的格式,例如 "today 12-m"、"today 5-y"、"now 7-d",或一个明确的区间,如 "2024-01-01 2024-06-01"。
interest_over_time(keywords, timeframe="today 12-m", geo="IN")
相对搜索兴趣(0–100)随时间的变化,最多支持 5 个关键词并排对比。第 6 个及之后的关键词会被静默丢弃。每条记录都包含 isPartial —— 最近一个数据点上的 true 表示该周期尚未完成,其值是临时值;不要把该点的下降解读为真实的趋势变化。
related_queries(keyword, timeframe="today 12-m", geo="IN")
单关键词的热门和相关查询。返回 {"top": [...], "rising": [...]},每个字段都是 {"query": ..., "value": ...} 记录的列表。top 的值是 0–100 的相对兴趣。rising 的值是百分比增长 —— 但是,当值为 5000% 时是 Google 的 Breakout 标记,表示从近乎为零的基数上爆发的增长,而不是字面意义的百分比。
related_topics(keyword, timeframe="today 12-m", geo="IN")
与 related_queries 相同,但返回的是主题分组(Google 自己的主题聚类),而不是原始查询字符串 —— 记录中除了 value 之外,还包含 topic_title 和 topic_type。rising 同样适用 Breakout 约定。
interest_by_region(keyword, timeframe="today 12-m", geo="IN")
在给定的 geo 范围内,按州/地区细分关键词的搜索兴趣。返回一个由 {"geoName": ..., "<keyword>": 0-100} 组成的列表,每个地区一条记录。
trending_now(geo="india")
某个国家的今日热门搜索。请注意,这里的 geo 格式不同 —— 它是完整的小写国家名称("india"、"united_states"),不是像其他四个工具那样的 ISO 代码。这是 Google 自身端点的真实不一致,而不是 bug。
已知限制: 截至撰写本文时,
trending_now遇到 HTTP 404 而失败。Google 似乎已弃用了 pytrends 的 trending-search 方法所依赖的旧端点(hottrends/dailytrends/realtimetrends)——这一结论已通过测试 pytrends 提供的全部三种变体得到确认。这是上游问题,无法在此代码库中修复;它以干净的、可读的错误字符串失败,而不是崩溃。其他 4 个工具使用另一组仍然可用的不同端点,因此不受影响。如果 Google 恢复该端点、或 pytrends 提供补丁,这里无需任何改动即可恢复工作。
所有工具都会捕获失败情况(接口限流、网络错误、上述情况)并返回普通的错误字符串而不是崩溃 —— Google Trends 是一个被爬取的公网端点,不是稳定的 API,因此这是预期行为,不是例外情况。
Related MCP server: Google Trends MCP Server
设置
需要 Python 3.10+ 和 uv。
git clone https://github.com/jain-eshan/google-trends-mcp.git
cd google-trends-mcp
uv sync注册到 Claude Code
claude mcp add google-trends -- uv run --directory /absolute/path/to/google-trends-mcp server.py验证连接:
claude mcp list你应该会看到 google-trends 被列为 ✔ Connected。在注册后新的 Claude Code 对话中开始使用 —— 已经运行的会话不会检测到新添加的服务器。
使用
注册后,只需让 Claude 使用它即可 —— 例如:
“使用 google-trends MCP 对比印度过去 12 个月中 ‘lab grown diamonds’ 与 ‘diamond jewellery’ 的装机兴趣,并展示相关查询。”
可选:/trends 技能
本仓库包含一个位于 .claude/skills/trends/SKILL.md 的 Claude Code 技能,它会将原始工具包装成一个研究、总结工作流 —— 该技能决定哪些工具与你的主题相关,并写出一份通俗易懂的总结,而不是输出原始 JSON。如果你在使用 Claude Code,该技能会自动从本仓库加载;只需运行:
/trends <your topic>设计说明
只提供数据,服务器内不做总结。 每个工具只返回原始的、结构化数据 —— 如何解读(这个趋势是否真实、这里的
Breakout标记意味着什么、什么值得标记)发生在调用它的对话中,而不是内建在服务器里。这让服务器保持简单,并让任何调用者在里面做出自己的判断。依赖只有
mcp[cli]和pytrends。 没有数据库、没有配置文件、没有 API 密钥。没有正式的测试套件。 它封装的是一个被爬取的第三方端点;只有测试套件大多只是测试 pytrends 和 Google 当前的响应结构,并不是测试这段代码。开发期间,每个工具都在真实的 Google Trends 数据上验证过。
许可证
MIT —— 见 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