DEV Community

Cover image for I couldn't find a good Google Trends MCP. So I just built one
Paulo Henrique
Paulo Henrique Subscriber

Posted on AI-assisted

I couldn't find a good Google Trends MCP. So I just built one

A free, local Google Trends MCP for AI-assisted SEO, content research, AEO, and GEO.

Content research and ideation, the way I used to do it, took a lot of time. Check Google Search Console results for a period; consult Google Analytics for better insights into interests; and then look up Google Trends for related searches or missing opportunities. All of that resulted in a spreadsheet I sent to the client with my considerations.

Today, AI can do most of the hard work, but you still need to serve the reports so it can analyze. So... what if I could use some MCPs instead, cutting some unnecessary effort?

Finding 100% free, up-to-date, open-source solutions for GA and GSC was fairly easy, but finding a good one for Google Trends was a challenge: At the time, I couldn't find a Google Trends MCP that fit what I wanted: free, open-source, local, and useful for an AI-driven content workflow.

I planned to use it on my site or for some clients, and I have a philosophy of always using a free and open-source solution unless there's no clear alternative. Well, if there are no alternatives, I can just create one, right?

Thus, Trendzeist was born.

And what is Trendzeist, you might ask?

Initially, it was just an MCP layer over pytrends-modern, but with a cool catch:
An LLM doesn't need another JSON dump; instead, it needs the data organized around the question it's trying to answer.
So, my MCP doesn't just return the results and suggestions; it analyzes everything in the context of what I asked for.

Trendzeist adds the MCP tools and prompt, request
throttling, a persistent disk cache, strict input validation, LLM-friendly JSON output, and the ranked discover_topics workflow.

Now, instead of well-formatted guesses, I can have better results for new topics and blog post ideas.

And why the name?

Before 0.1.0 went up, I noticed that this could be a public solution, open for anyone who wanted to use it and contribute. Obviously, it needed a cool name, right? So I brainstormed with Google Gemini until it landed on trendzeist: zeitgeist, spirit of the times, and a nod to the Year-End Google Zeitgeist reports that Google published from 2001 until it renamed them Year in Search.

OK, but what do I get when I use it?

You ask in plain language, and the assistant picks the tools:

You:   Give me blog post ideas about home espresso for US readers.
Agent: -> discover_topics(["espresso", "espresso machine"], geo="US")
       <- 1 breakout, 14 rising, 14 evergreen candidates, with growth %, angles and 6 questions
       -> mine_questions("espresso machine", geo="US")
       <- 30 long-tail questions: how-to 18, comparison 6, definition 4, listicle 2
       -> compare_keywords(["how to descale espresso machine", "best coffee beans for espresso"])
       <- "Interest in 'how to descale espresso machine' rose 120% ... (rising)."
       "1. How to Descale Your Espresso Machine (how-to, rising +120%, publish now) ..."
Enter fullscreen mode Exit fullscreen mode

The list comes back already sorted. Brand new spikes come first because they're the signals most worth investigating now. Then steadily rising topics, followed by evergreen candidates for the backlog.

Every topic comes with a suggested format (how-to, comparison, listicle) and the actual questions people type about it. That's your FAQ section, written by your own readers before you even start.

And every trend comes with a plain-English sentence explaining what happened, when it peaked, and where it's heading. The model reads the conclusion instead of doing math on a relative index and inventing one.

Now comes the cool part: GA + GSC + Trends

Remember that spreadsheet from the beginning? With the three MCPs connected, it turns into one conversation:

Pull my Search Console queries for the last 90 days, find pages ranking between positions 8 and 20, and use Trendzeist to check which of those topics are rising.

What comes back is the list I used to build by hand. On one side, posts worth refreshing because demand is climbing and I'm almost on page one. On the other, rising topics the site doesn't cover yet. Add GA to the same conversation, and you know which of those pages people actually stay on.

And this is where it gets more interesting.

Once Trends, GSC, and GA are available to the same agent, you're no longer limited to keyword research. You can start asking questions about topical authority and generative search visibility.

Identify topics where my website could become a strong authoritative source for AI-generated answers.

Use Trendzeist to identify emerging topics and questions.

Use Google Search Console to determine where my site already demonstrates topical relevance.

Use Google Analytics to identify topics where visitors demonstrate strong engagement.

For each topic, evaluate whether my existing content provides:

- a clear definition,
- authoritative explanations,
- original insights,
- examples,
- comparisons,
- structured answers,
- supporting evidence,
- related concepts,
- and comprehensive topical coverage.

Identify topics where I have strong existing authority but insufficient coverage.

Recommend the content changes most likely to strengthen topical authority and make the site a useful source for generative search answers.
Enter fullscreen mode Exit fullscreen mode

Run it on Claude Desktop or any other app that accepts MCP, and done. Of course, for the full power of Trendzeist, you'll also need to connect GA and GSC MCPs, at least for now.

screenshot showing the report on Claude Desktop

Writing for AEO, too

More and more people ask ChatGPT, Gemini, or Perplexity instead of Google, and those answers cite a handful of sources. aeo_opportunities exists to answer one question: which topics could my site become one of those sources for?

It groups the questions people ask about a seed, then scores each group from 0 to 100 based on whether demand is rising, who already covers it in Google News, and whether Wikipedia has an article on it. The score comes with its full breakdown, so when a client asks why one topic won, you have the full answer.

It also tells you which publishers to quote or pitch, and what kind of evidence each topic needs. That part is inspired by the GEO paper (Aggarwal et al.): their experiments found that GEO optimization techniques could improve visibility in generative-engine responses by up to 40%, with the effectiveness varying by domain. So a how-to gets told to bring steps and numbers; a comparison gets a table and quotes. Pair it with the answer_brief prompt and a single question becomes a ready-to-write outline.

It speaks your client's language

Ask about Brazil, and Trendzeist asks Google in Portuguese, so related searches come back in Portuguese, and the news comes from the Brazilian edition of Google News. Around 50 markets are mapped. International clients don't need a separate workflow.

What does it cost?

Nothing. Zero. Nil.

Trendzeist is MIT-licensed, runs on your own machine, and it needs no API key or account.

Two honest limits. The numbers are Google's relative interest index, so they show what's gaining ground, and you'll still need a volume tool to know how many clicks a keyword is worth. Also, Trendzeist analyzes search demand and content opportunities. It does not measure whether ChatGPT, Gemini, Perplexity, or other AI systems are currently citing your site.

Try it

uvx trendzeist-mcp
Enter fullscreen mode Exit fullscreen mode

Or pipx run trendzeist-mcp, pip install trendzeist-mcp, or Docker with ghcr.io/phalkmin/trendzeist-mcp.

For Claude Desktop, add this under mcpServers in claude_desktop_config.json:

"trendzeist": { "command": "uvx", "args": ["trendzeist-mcp"] }
Enter fullscreen mode Exit fullscreen mode

For Claude Code:

claude mcp add trendzeist -- uvx trendzeist-mcp
Enter fullscreen mode Exit fullscreen mode

Cursor, VS Code, and Codex use the same format. The repo also has an llms-install.md you can paste into your assistant so it does the setup for you. It takes less than ten minutes.

Want to help?

This is where I'd love some company.

Trendzeist relies on Google Trends endpoints that aren't part of a documented public API. That means Google can change them without notice, and something may eventually break. Also, I'm expanding it to new sources, so the final report is more accurate, and people willing to help will be appreciated.

If you find Trendzeist useful, a GitHub star is appreciated. If you find something broken, even better: open an issue and help me fix it.

Top comments (0)