Google Trends MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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) |
| related_queriesA | Top and rising related search queries for a single keyword. 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 of each list, sorted by "value" descending, rounded to whole numbers. "full" returns every row Google Trends provides (often 25), unrounded. Returns: A dict with two keys, each containing a list of query records: - "top": most-searched related queries. Each record has "query" and "value" (0-100 relative interest on Google Trends scale). - "rising": fastest-growing related queries. Each record has "query" and "value" (percent increase in search interest). IMPORTANT: a value of 5000% is Google's "Breakout" marker, indicating explosive new growth from near-zero baseline, NOT a literal 5000% increase. This is Google's way of saying the data cannot be assigned a meaningful numeric value. |
| related_topicsA | Top and rising related topics (Google's topic clusters, not raw query strings) for a single keyword. 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 of each list, sorted by "value" descending, rounded to whole numbers. "full" returns every row, unrounded. Returns: A dict with two keys, each containing a list of topic records: - "top": most-searched related topics. Each record has "topic_title", "topic_type", "value" (0-100 relative interest on Google Trends scale). - "rising": fastest-growing related topics. Each record has "topic_title", "topic_type", "value". IMPORTANT: a value of 5000% is Google's "Breakout" marker, indicating explosive new growth from near-zero baseline, NOT a literal 5000% increase. This is the same convention as "rising" queries. |
| 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. |
| 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) |
| 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 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. |
| 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 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 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. |
| 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
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. |
| 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 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. |
| app_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". |
| 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
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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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.