Google Trends MCP Server
This server lets AI clients (Claude, Cursor, VS Code, Codex, etc.) query Google Trends and get worked-out analysis — trending topics, keyword interest, seasonality, momentum and share of search — with no API key or browser required.
Discover what's trending now — full Trending Now lists per country/region with search volume, growth, start time, category, status and the queries inside each trend (
trending_now,trend_details,trending_feed,trending_across_countries,match_trends).Explore keywords — interest over time (up to 5 terms, from 1 hour to 2004–today), interest by country/region/city/metro, related queries and topics, period-over-period and location comparisons (
interest_over_time,interest_by_region,related_queries,related_topics,compare_periods,compare_locations,keyword_overview).Get analysis, not charts — growth verdicts (breakout/rising/stable/declining), yearly seasonality and peak months, publishing calendars, brand share of search vs competitors, ranked comparisons of 6–25 terms, spike detection and long daily history (
trend_momentum,seasonality,content_calendar,share_of_search,compare_many,find_spikes,daily_history,keyword_ideas).Build history Google doesn't keep — snapshot trending lists before Google drops them (~1 week), search that saved history, maintain a watchlist and get direction reports, and run read-only SQL over the local data file (
snapshot_trending,trending_history,watchlist_add,watchlist_remove,watchlist_report,history_sql).Look up codes and stay healthy — resolve locations, categories and topics; check capabilities, endpoints and session/cache state; clear cache (
find_location,find_category,find_topic,get_capabilities,check_endpoints,clear_cache).Reuse ready-made workflows — four MCP prompts (
trend_report,newsjacking_brief,seasonal_content_plan,market_comparison) plus guide resources for newsjacking, content planning and market comparison.Run flexibly and safely — works over stdio or HTTP, offline from cache, with pacing/back-off/caching to avoid blocks, honest 0–100 index labelling, and no sign-in or Google account needed (except optionally for
related_topics).
Provides tools for accessing Google Trends data, including trending searches with real search volumes, interest over time, interest by region, related queries and topics, seasonality, momentum, share of search, and historical snapshots. Supports Web, YouTube, News, Images, and Shopping search types within Google Trends.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Trends MCP Server what's trending in the United States right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Trends MCP Server — gtrends-mcp-full
The complete MCP server for Google Trends. Ask Claude, Cursor, Windsurf, VS Code, Codex or any other MCP client what people are searching, where, when, and what is taking off right now — and get analysis back, not a chart to squint at.
32 tools · Trending Now with real search volumes · interest over time, by region and related searches · seasonality, momentum and share of search · no API key, no browser, no sign-in.
Project page · Quick start · Tools · Prompts · Configuration · How it stays unblocked · FAQ · Docs
What you get
✅ Complete | Everything the Google Trends website shows: the full Trending Now list (hundreds of trends per country, with search volume, growth, start time, category and the queries inside each one), the news behind a trend, interest over time down to the minute, interest by country, region, city and metro area, related queries and topics, every category and location, Web, YouTube, News, Images and Shopping search. |
🔑 Nothing to set up | No API key, no Google Cloud project, no sign-in, no headless browser. Install it and ask. |
🧠 Answers, not charts | Is it growing or fading? When does it peak, and when must the content be live? Who is winning share of search? What suddenly jumped, and when? Worked out for you and returned as short tables your AI can reason about. |
📈 Past the limits of the website | Compare 25 terms on one scale instead of five. Daily data over years instead of nine months. Trending Now history kept for as long as you like instead of one week. |
🛡️ Built to keep working | Paced requests, a persistent session, back-off instead of hammering, and a cache that still answers — and says so — when Google will not. Related-searches and chart requests are budgeted separately, so a limit on one never takes down the rest. |
🎯 Honest numbers | Every value is labelled for what it is: Google's 0–100 index, never a search count. Partial periods are marked. A failure is an error with its reason and what to do next, never an empty result. |
💸 Free and light | MIT licensed. Two dependencies. Runs on your machine; nothing is sent anywhere but Google. Tested on Linux, macOS and Windows with Python 3.10–3.13. |
Works with: Claude Desktop · Claude Code · Cursor · Windsurf · VS Code (Copilot agent mode) · OpenAI Codex CLI · any MCP client over stdio or HTTP.
Related MCP server: Google Trends MCP
Tools
32 tools in 5 groups. You don't call them yourself — ask in plain language and your AI picks the right one.
🗄️ works on the local data file, no request to Google
🔥 Trending now
Tool | What it gives you | Ask it like this |
| The full Trending Now list for a country or region: search volume, growth, start time, still active or over, category, and the other queries people type for the same story. Filter by category, status, volume or text | "What's trending in Germany in the last 4 hours?" · "Active sports trends in the US above 100K searches" |
| One trend in full: every query inside it, the news articles behind it, and its hour-by-hour curve for the past week | "Why is 'pentobarbital' trending?" |
| The top daily trends with headlines and links — the fastest answer to "what's in the news there today" | "Give me today's top searches in Iran with the headlines" |
| Trends that are live in several countries at once, grouped even when titles differ | "What is trending in both the US and the UK right now?" |
| Which current trends touch your subjects, brands or products — for newsjacking | "Is anything about electric cars, Tesla or charging trending today?" |
🔎 Explore a keyword
Tool | What it gives you | Ask it like this |
| The whole Trends page in one call: curve, direction, top places, rising and top related queries | "Give me the Google Trends picture for 'heat pump' in the UK" |
| The main chart for up to 5 terms on one scale — any range from one hour to 2004-today, any location, category and search type, with operators ( | "Compare tesla and byd over 5 years in Germany" · "YouTube interest in 'lofi' this week" |
| Where a term matters most: countries, regions, cities or metro areas. With several terms: who leads where | "Which US states search 'tesla' the most?" · "Where does byd beat tesla?" |
| What else people search around a term — the top queries and the rising ones, with breakouts flagged | "What are the rising searches around 'solar panels'?" |
| The people, brands and things searched alongside a term, with topic ids | "Which topics are related to 'tesla'?" |
| One term in two time ranges on one scale: this year against last, this quarter against the one before | "Is 'sunscreen' ahead of last summer?" |
| One term in up to 5 countries or regions side by side | "Compare interest in cricket in India, the UK and Australia" |
🧠 Analysis
Tool | What it gives you | Ask it like this |
| A verdict per term — breakout, rising, stable, declining or new — with year-over-year change, last quarter vs the one before, long-run slope and distance from its peak | "Which of these eight product ideas is actually growing?" |
| The yearly rhythm: a month-by-month index, peak and low months, how reliably it repeats, year-by-year growth, the next six months, and the date content should be live | "When do people search for air conditioners, and when should I publish?" |
| A publishing calendar for up to 8 topics, sorted by what is due first; evergreen topics listed separately | "Build me a content calendar for these topics" |
| Your brand's share of searches against up to 4 competitors — overall, at the start, at the end, and the change in points | "What's Toyota's share of search against Honda, Ford and Tesla?" |
| 6 to 25 terms ranked on a single scale, past the five-term limit of the website | "Rank these 20 car brands by search interest in the US" |
| The moments a term jumped: when each spike began, peaked and ended, and how many times the usual level it reached | "When did searches for 'earthquake' spike in the last five years?" |
| Day-by-day interest over years (the website stops at about nine months), plus the weekday pattern | "Daily interest in 'pizza delivery' for 2024 and 2025 — which weekday is biggest?" |
| Rising and top related queries for up to 5 seeds, merged and de-duplicated, breakouts first | "Give me keyword ideas around 'electric bike' and 'e-scooter'" |
🗄️ History that Google does not keep
Tool | What it gives you | Ask it like this |
| Saves the current Trending Now list to a local file. Google drops a trend after about a week; this keeps it | "Save today's trends for the US, UK and Germany" |
| Searches everything saved: when something trended, how big it got, how long it lasted | "Did anything about 'iphone' trend in the US last month?" |
| Puts terms on a watchlist, per location, with a note | "Watch 'heat pump' and 'solar panels' in the UK" |
| The watchlist measured now: direction, what changed since the last report, and whether a term is trending today | "How is my watchlist doing?" |
| Takes terms off the watchlist | "Stop watching 'fax machine'" |
| Read-only SQL over the saved trends, snapshots, watchlist and readings | "Which categories trended most in Germany this month?" |
🧭 Lookups and utilities
Tool | What it gives you | Ask it like this |
| The code for any country, region, state or metro area, or the list of places inside one | "What's the Google Trends code for Tehran province?" |
| Category ids, to pin an ambiguous word to one meaning | "Limit 'jaguar' to cars" |
| Google's topics for a name — one id that covers every language and spelling of a thing | "Use the company Tesla, not the word" |
| Settings, session state, cache and history coverage, the tool list | "Is the Trends server set up correctly?" |
| Asks each Google Trends endpoint one question and reports which still answer | "Why did the last Trends call fail?" |
| Drops saved answers, optionally resets the session | "Refresh the trending data" |
The full reference with every parameter is in docs/tools.md — generated from the code, so it is never out of date.
Prompts
Four ready-made workflows that appear in your client's prompt menu. Each chains several tools and says what the finished answer must contain.
Prompt | What it produces |
| A full read on one keyword: direction, seasonality, the events behind its spikes, rising themes, and what to do about it |
| Today's trends that fit your subjects, the story behind each, the queries to target, an angle and a risk note |
| A twelve-month publishing plan for a list of topics |
| Share of search for a brand against its competitors, who wins where, and what is rising around each |
Two reference pages are also exposed as MCP resources: gtrends://guide (how to read the numbers, time ranges, operators, topics) and gtrends://trending-categories.
Quick start
You need Python 3.10 or newer and uv (or pip).
1. Add it to your client
Nothing to download first: uvx fetches the package from PyPI and runs it.
Claude Code
claude mcp add gtrends -- uvx gtrends-mcp-fullClaude Desktop, Cursor, Windsurf, VS Code — add this to the client's MCP configuration:
{
"mcpServers": {
"gtrends": {
"command": "uvx",
"args": ["gtrends-mcp-full"],
"env": {
"GTRENDS_GEO": "US",
"GTRENDS_TIMEZONE": "America/New_York"
}
}
}
}Both env entries are optional. There is nothing else to configure: no key, no sign-in.
2. Check it
uvx gtrends-mcp-full doctordoctor asks every Google Trends endpoint one question; all eight should say OK. On the very first run a chart endpoint may report that the session is still being validated — that passes after a minute and a half and does not come back.
3. Ask
What's trending in the US right now, and which of it is about technology? Is "heat pump" growing in the UK? When does it peak? Rank these 15 car brands by search interest in Germany. What is Toyota's share of search against Honda and Ford this year?
From the command line
With the package installed (uv tool install gtrends-mcp-full or pip install gtrends-mcp-full):
gtrends-mcp-full doctor # configuration and endpoint check
gtrends-mcp-full trending US # print what is trending now
gtrends-mcp-full snapshot US,GB,DE # save Trending Now to the local history (for cron)
gtrends-mcp-full --transport streamable-http --port 8000 # serve over HTTP instead of stdioKeep a trending history by scheduling the snapshot, for example every six hours:
0 */6 * * * gtrends-mcp-full snapshot US,GB,DEReading the numbers
Everything Google Trends returns is an index from 0 to 100, not a search count: the share of all searches a term had, rescaled so the highest point in that one request is 100. Three things follow, and the tools are built around them:
Only terms in the same request are comparable.
compare_many,share_of_search,compare_periodsandcompare_locationsbuild one scale for you.Across places it is a share of local searches. A small country can outrank a large one.
The last point of a range is usually incomplete. It is marked, and left out of averages.
The exception is Trending Now, which carries real — bucketed — search volumes ("200K+").
A search term is matched literally. To count two wordings as one, join them in a single term with + (e-mail + email); for the name of a thing, find_topic gives a topic id that Google resolves across languages and spellings.
Configuration
Every setting is optional.
Variable | Default | What it does |
| worldwide | Default location code ( |
|
| Language of the names Google returns (locations, categories, topics) |
| this machine's | IANA timezone for times in results and for hourly data, e.g. |
| none | HTTP(S) proxy URL for requests to Google |
|
| Seconds between requests to Google |
|
| Seconds a chart answer is reused |
|
| Seconds a Trending Now answer is reused |
|
| Seconds one tool call may spend waiting on Google before it reports back |
| none | A signed-in Google session (raw |
| off | Answer from the cache only, never contact Google |
|
| Where the data file and session cookie live |
|
| The data file: cache, trending history, watchlist |
| none | Host names allowed in HTTP mode behind a reverse proxy. HTTP mode has no authentication and will not start on a public address without this — see Security |
How it stays unblocked
Google Trends has no public API for general use, so this server speaks to the same endpoints as the Trends website. Those endpoints are rate-limited and unforgiving of scripts that behave like scripts. What the server does about it:
One long-lived session. Google refuses the chart endpoints without its session cookie, and turns away a cookie it has only just issued for the first minute and a half. The server fetches one cookie when it starts, lets it mature in the background, stores it, and reuses it on every later run. The endpoints that work without a cookie — Trending Now, the feed, lookups — never wait for it.
Pacing. Requests are spaced: 1.5 s by default, 2 s for charts, and 6 s between two related-searches requests, the touchiest endpoint. After a refusal the gap widens for five minutes.
Back-off, then silence. A real rate limit is retried a few times with growing delays. If it persists, the server stops asking that group of endpoints for a few minutes instead of making the block worse — the other groups keep working.
A cache with a fallback. Every answer is stored. Ask twice, one request. When Google refuses, an older answer is served and labelled with its age.
Fewer requests by design. One chart request can carry five terms; a second chart for the same question reuses the first one's tokens.
A time budget. A tool call reports back within the budget with what it has, naming what is missing, rather than hanging your client.
check_endpoints (or gtrends-mcp-full doctor) tells you at any moment which endpoints answer, and whether a failure is a rate limit, a changed endpoint or the network.
FAQ
Is this the official Google Trends API?
No. Google announced an official API in 2025, but it is a closed alpha for approved testers. This server uses the endpoints behind the Trends website, which need no key. They are undocumented and can change; when one does, check_endpoints says which, and the fix is a package update.
Do I need a Google account?
No. One tool, related_topics, returns an empty list to anonymous sessions — Google withholds it — and says so. Supplying a signed-in cookie unlocks it; everything else works without.
Can it give me search volumes? Trending Now carries real volumes, in buckets (2K+, 200K+). Everything else is the 0–100 index, which measures relative interest. No tool pretends otherwise.
I asked for the same thing twice and one number moved by a point. Google Trends is computed from a sample of searches, so repeated requests can differ slightly. The cache returns the same answer within its lifetime.
A tool says Google is rate-limiting.
Wait a few minutes; cached answers keep working. If it happens often, ask for several keywords in one call instead of one call each, raise GTRENDS_MIN_INTERVAL, or set GTRENDS_PROXY.
A tool says the session is still being validated. That is the first ninety seconds after the very first start. Trending tools work in the meantime, and it does not happen again: the session is stored.
Why does a small country outrank a big one? Because the index is a share of that place's own searches, not a count.
Where is my data?
In one SQLite file on your machine (~/.config/gtrends-mcp-full/trends.sqlite): cached answers, the Trending Now snapshots you saved, and your watchlist. Nothing is sent anywhere except the requests to Google Trends.
Development
uv venv && uv pip install -e ".[dev]"
uv run pytest # no network needed: the tools run against a fake Google Trends
uv run ruff check src tests
python scripts/gen_tools_doc.py # after changing a tool's signature or docstring
python scripts/record_fixtures.py # re-record the real answers the contract tests replay (about 15 requests to Google)See CONTRIBUTING.md and CHANGELOG.md.
Related
gsc-mcp-full — the companion Google Search Console MCP server: 37 tools, every API endpoint, hourly data and history beyond 16 months.
License
MIT. Not affiliated with or endorsed by Google. Google Trends is a trademark of Google LLC. Use of Google Trends data is subject to Google's terms of service.
Available Tools
32 toolscheck_endpointsARead-onlyIdempotent
Ask each Google Trends endpoint one small question and report which ones answer.
Google Trends has no public API; this server uses the endpoints of the Trends website, which can change without notice. Run this when a tool fails unexpectedly: it separates "Google is rate-limiting me" from "this endpoint changed" from "the network is down". Sends about 12 requests and never answers from the cache.
Inputs: no named parameters. Returns: result
clear_cacheAIdempotent
Delete saved answers so the next call asks Google again.
what: "expired" (default — only answers too old to be used even as a fallback), "all", or one kind: trending, timeseries, regions, related, explore. reset_session: also forget the stored session cookie and any back-off, for a clean start after a block. Saved Trending Now history and the watchlist are never touched.
Inputs: what, reset_session. Returns: result
compare_locationsBRead-onlyIdempotent
One term in up to 5 countries or regions side by side: where it matters more, and whether the curves move together.
geos: comma-separated location codes (US, GB, DE) — countries or regions, not worldwide. The values say how large a share of each place's own searches the term takes, so a small country can score above a large one; they are not search counts.
Inputs: geos (required), keyword (required), points, category, +2 more. Returns: result
compare_manyARead-onlyIdempotent
Rank 6 to 25 terms on one scale — past Google Trends' limit of five per comparison.
Google rescales every comparison to its own maximum, so two separate five-term charts cannot be read against each other. This tool runs the terms in groups that all contain one shared anchor term and uses it to bring every group onto a single scale.
anchor: the shared term. Blank = chosen automatically (a mid-sized term among the first five, which keeps both large and small terms measurable). Returns each term's average, peak and latest value, where the largest average is 100. Costs two requests per group of four terms.
Inputs: keywords (required), geo, anchor, category, +2 more. Returns: result
compare_periodsARead-onlyIdempotent
One term in two time ranges on the same scale: this year against last year, this quarter against the one before.
period: the range to look at (3m, 12m, 2026, 2026-03, or explicit dates; not hours). against: "year_before" (same dates a year earlier), "previous" (the range just before), or another range. The two curves are aligned by position, so day 10 of one sits beside day 10 of the other.
Inputs: keyword (required), geo, period, points, +3 more. Returns: result
content_calendarBRead-onlyIdempotent
A publishing calendar from seasonality: for up to 8 topics, when each peaks and the date its content must be live.
Each term's five-year rhythm is measured; the result is sorted by what needs publishing soonest. Terms without a yearly pattern are listed as evergreen. lead_weeks: how long before demand starts to climb the content should be published.
Inputs: keywords (required), geo, category, property, +1 more. Returns: result
daily_historyARead-onlyIdempotent
Day-by-day interest over a long range — Google Trends itself only gives daily data for up to ~9 months.
The range is fetched as overlapping 8-month windows and the windows are joined on one 0-100 scale using the days they share. Up to about 4 years (8 windows, two requests each). Also returns the weekday pattern: which days of the week the term is searched most.
start, end: YYYY-MM-DD; end defaults to today. points: rows to return (the daily series is averaged down to this many); the summary is always given.
Inputs: start (required), keyword (required), end, geo, +3 more. Returns: result
find_categoryARead-onlyIdempotent
Find the id of a Google Trends category ("Autos & Vehicles" = 47) to narrow a term to one meaning.
A category limits a search term to searches Google files under that subject — "jaguar" in
Autos & Vehicles is the car, in Pets & Animals the cat. Pass the id as category to the explore tools.
With no keyword at all, a category id shows interest in the whole subject.
Inputs: query (required), limit. Returns: result
find_locationARead-onlyIdempotent
Find the location code (geo) for a country, region, state or metro area by name.
query: part of a name ("tehran", "calif", "bavaria") or a code ("IR").
inside: a code whose sub-locations to list instead ("IR" → its provinces, "US-CA" → its metro areas).
Codes look like IR, US, US-CA, US-CA-807. Every other tool takes them as geo; blank means worldwide.
Inputs: limit, query, inside. Returns: result
find_spikesARead-onlyIdempotent
The moments a term suddenly jumped: when each spike started, when it peaked, how long it lasted and how big it was.
A spike is a run of points at least threshold times the term's usual level around that
date (its median over the surrounding year). Use it to date events, launches, outages and
news cycles, or to tell a one-off burst from real growth.
Inputs: keyword (required), geo, limit, category, +3 more. Returns: result
find_topicARead-onlyIdempotent
Find the Google Trends topics for a piece of text and the ids that select them.
A search term ("tesla") counts only searches containing that exact wording, in one language. A topic ("Tesla — Automotive company", id /m/0dr90d) counts every search about the thing, in any language and spelling, and leaves out other meanings (the band, the inventor). Pass a topic id wherever a keyword is expected.
Inputs: text (required). Returns: result
get_capabilitiesARead-onlyIdempotent
Version, settings, session and cache state, saved history and the list of tools. Call this first when unsure.
Inputs: no named parameters. Returns: result
history_sqlARead-onlyIdempotent
Run a read-only SQL SELECT on the local data file, for questions the other history tools do not cover.
Tables: trending(geo, title, qkey, started, ended, volume, growth, categories, breakdown, first_seen, last_seen) — one row per saved trend; times are unix seconds UTC; categories and breakdown are JSON lists. snapshots(id, taken_at, geo, hours, trends) — one row per snapshot_trending run. watchlist(keyword, geo, note, added_at) readings(keyword, geo, taken_at, latest, average, yoy, label) — one row per watchlist_report measurement. Example: SELECT title, volume, datetime(started,'unixepoch') FROM trending WHERE geo='US' ORDER BY volume DESC LIMIT 20
Inputs: query (required), limit. Returns: result
interest_by_regionARead-onlyIdempotent
Where a term is most popular: countries, regions, cities or metro areas ranked by interest.
With one term, each place gets 0-100 relative to the strongest place — interest as a share of that place's own searches, so a small region can outrank a large one. With 2-5 terms, each place shows how its interest splits between them (percentages), i.e. who wins where.
geo: blank = worldwide (ranks countries); a country ranks its regions; a region its cities. resolution: auto, country, region, city, or dma (US metro areas). include_low_volume: also list places with little search volume.
Inputs: keywords (required), geo, limit, category, +4 more. Returns: result
interest_over_timeARead-onlyIdempotent
Search interest over time for up to 5 terms on one shared scale — the main Google Trends chart.
keywords: comma-separated terms or topic ids (find_topic). Operators work inside a term:
a + b either wording, a -b excluding b, "a b" exact phrase. Blank with a category
measures the whole category.
timeframe: 1h, 4h, 1d, 7d, 1m, 3m, 12m, 5y, all; any 6m / 2y / 45d; a year 2024; a month
2024-03; or explicit dates "2024-01-01 2024-12-31". Short ranges come back by the minute
or hour, up to ~9 months daily, up to 5 years weekly, longer monthly.
geo: location code (find_location); blank = default location, usually worldwide.
category: category id (find_category) to pin down an ambiguous term.
property: web, youtube, news, images or shopping.
points: rows of data to return (longer series are averaged down); 0 = summary only.
Inputs: geo, points, category, keywords, +2 more. Returns: result
keyword_ideasBRead-onlyIdempotent
Keyword ideas from what people actually search next: rising and top related queries for up to 5 seed terms, merged.
The same query coming from several seeds is listed once; each idea shows which seeds it came from — an idea related to several seeds sits at the centre of the subject. Rising ideas are sorted breakouts first: these are the searches that did not exist a period ago. Costs two paced requests per seed.
Inputs: seeds (required), geo, limit, category, +2 more. Returns: result
keyword_overviewARead-onlyIdempotent
The whole Google Trends page for one term in a single call: curve, direction, top places, related searches.
Use it as the first look at a keyword. It makes four requests; a part that Google refuses is reported and the rest is still returned.
Inputs: keyword (required), geo, category, property, +1 more. Returns: result
match_trendsARead-onlyIdempotent
Which current trends touch your subjects — for newsjacking and timely content.
terms: comma-separated words or phrases that define your niche (brands, products, people, subjects). A trend matches when its title or any query inside it contains one of them as whole words, in any letter case: "ai" finds «ai news», not «rain». geo: country or region code; blank = the default location, else US.
Inputs: terms (required), geo, hours, limit. Returns: result
seasonalityARead-onlyIdempotent
The yearly rhythm of a term: which months it peaks and dips, how reliably, and when to publish for it.
Uses five years of data by default ("all" goes back to 2004). Growth or decline is removed first, so a rising term is not mistaken for a seasonal one. Returns a month-by-month index (100 = an average month), the peak and trough, how consistent the pattern is from year to year, year averages, the months ahead on the current rhythm, and a publishing date.
lead_weeks: how long before demand starts to climb the content should be live.
Inputs: keyword (required), geo, category, property, +2 more. Returns: result
snapshot_trendingAIdempotent
Save the current Trending Now list to the local history, so it can still be searched after Google drops it.
Google shows a trend for about a week; after that there is no way to ask what was trending.
Each call stores every trend for the given countries (a trend seen again is updated, not
duplicated). Run it on a schedule — gtrends-mcp-full snapshot US,GB from cron does the
same — and use trending_history to query the result.
geos: comma-separated country or region codes (up to 12); blank = the default location, else US. hours: look-back window to save, 1-191. 24 is right for a daily schedule.
Inputs: geos, hours. Returns: result
trend_detailsARead-onlyIdempotent
Everything about one current trend: every query in it, the news behind it, and its hour-by-hour curve.
trend: the trend's title, or any words it contains. geo: country or region code; blank = the default location, else US. with_chart: also fetch the last 7 days of hourly interest for the title (two more requests).
Inputs: trend (required), geo, news, hours, +1 more. Returns: result
trending_across_countriesARead-onlyIdempotent
Trends that are live in several countries at once — the stories that travel.
Pulls Trending Now for each country and groups trends that are the same search (the same title, or one country's title appearing among another's queries).
geos: comma-separated country codes, up to 12. Blank = US, GB, CA, AU, IN, DE, FR, BR. min_countries: only show trends found in at least this many of them.
Inputs: geos, hours, limit, min_countries. Returns: result
trending_feedARead-onlyIdempotent
The top daily search trends with the news stories behind each — Google's public trending feed.
Lighter than trending_now (about 10-20 trends, one request) and it carries headlines and links, which makes it the quickest answer to "what is in the news in today". geo: country code; blank = the default location, else US.
Inputs: geo, limit. Returns: result
trending_historyARead-onlyIdempotent
Search the saved Trending Now history: when something trended, how big it got and how long it lasted.
Works on what snapshot_trending has stored — no network. With no filter it lists the biggest saved trends of the period.
contains: text the trend's title or queries must contain, as whole words. geo: one location code; blank = every saved location. days: how far back to look, counted from the trend's start.
Inputs: geo, days, limit, contains, +1 more. Returns: result
trending_nowARead-onlyIdempotent
What people are searching right now: the full Trending Now list for a country or region.
Each trend has its search volume, growth, start time, whether it is still active, its category and the other queries people type for the same story.
geo: country or region code (US, GB, DE, IR, US-CA). Blank = the default location, else US. hours: look-back window — 4, 24, 48 or 168 (any value 1-191). category: filter by name, e.g. "sports", "technology", "business" (see the header of the result). status: "active" (still trending), "ended" or "all". sort_by: "volume", "growth" or "recent". contains: keep trends whose title or queries contain this text, as whole words.
Inputs: geo, hours, limit, status, +4 more. Returns: result
trend_momentumBRead-onlyIdempotent
Is each term growing, fading, flat or exploding — with the numbers behind the verdict.
Each term (up to 8) is measured on its own scale, so a small term's shape is not flattened by a large one. Per term: year-over-year change of the last quarter, last quarter against the quarter before, the long-run slope, where it stands against its own peak, and a label: breakout, rising, stable, declining or new.
Inputs: keywords (required), geo, category, property, +1 more. Returns: result
watchlist_addAIdempotent
Put terms on the watchlist so watchlist_report tracks their direction over time.
keywords: comma-separated terms or topic ids. geo: the location to track them in (blank = default). note: an optional label, e.g. the client or campaign they belong to.
Inputs: keywords (required), geo, note. Returns: result
watchlist_removeADestructiveIdempotent
Take terms off the watchlist. Blank geo removes them from every location; their past readings are kept.
Inputs: keywords (required), geo. Returns: result
watchlist_reportAIdempotent
The watchlist measured now: each term's direction, what changed since the last report, and whether it is trending today.
Every run stores a reading per term, so the next report can say "was stable, now rising".
Terms are measured over five years, one at a time (two requests each): limit terms per
call, offset to continue. Also checks today's Trending Now list for each term.
Inputs: geo, limit, offset. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 32 tools
Most tools target clearly distinct operations, and descriptions go to lengths to distinguish them (e.g. trending_now vs trending_feed vs trend_details). However there is a dense cluster of time-series analysis tools (interest_over_time, daily_history, compare_periods, compare_many, trend_momentum, find_spikes, seasonality) whose boundaries, while documented, still invite misselection.
Nearly all names are snake_case and readable, with some verb_noun forms (find_location, compare_locations, clear_cache) and some noun phrases (seasonality, daily_history, content_calendar). Conventions are mixed in verb/noun ordering but no camelCase or chaos, so it stays predictable.
At 32 tools this sits at the heavy end for a single-domain server. The breadth of Google Trends analysis justifies many of them, but several analysis tools (seasonality vs content_calendar, related_queries vs keyword_ideas) overlap enough that consolidation would help.
The surface covers trending now, historical trending via snapshots, over-time and by-region interest, related queries/topics, multi-term and multi-period comparisons, seasonality, momentum, spikes, share of search, watchlists and raw SQL. Core Trends workflows and edge cases (anonymous-session limitations, endpoint health) are all addressed with no obvious dead ends.
Maintenance
Related MCP Connectors
Google Trends: Search, Images, News, Shopping over time, growth metrics. Free key at trendsmcp.ai
Claude connector and ChatGPT connector for trend data: Google, TikTok, YouTube, Reddit, Amazon
Google Trends for agents: interest over time, by region, rising queries, Trending Now. No API key.
Bulk Google Trends: interest over time, regions, rising queries and plain-English trend summaries.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access Google Trends data for comparing keywords, discovering trending searches, and analyzing regional interest through natural language.2MIT
- AlicenseBqualityDmaintenanceEnables Claude to query Google Trends data such as keyword interest, related queries, and regional popularity, with robust proxy rotation to bypass Google's anti-bot measures.5108 npm1MIT
- 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.5143 npm2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query Google Trends data, including search interest over time, regional breakdowns, trending searches, and keyword ideas.MIT