MCP Server

Python trends API

The most common Python approach to trend data is pytrends - an unofficial Google Trends scraper that works until it does not. Trends MCP is accessible via standard HTTP from any Python script, returns structured JSON with absolute volume estimates and data quality scores, covers 15+ sources, and does not break when Google updates its frontend. No SDK required, no special library, just an HTTP call with an Authorization header.

Get your free API key

100 free requests per month. No credit card, no setup fee.

API calls served
MR AK JL TS +
Loved by developers
MR
Marco R.
Quant Developer

Replaced my manual Google Trends scraper in an afternoon. The data is clean and the latency is surprisingly low for a free tier.

2 weeks ago
JL
Jamie L.
SEO Lead @ Growth Agency

We use it for keyword trend reports. The free monthly quota keeps us batching queries for weekly digests. Upgrading is there when we need more headroom.

3 weeks ago
SR
Stella R.
Product Designer
3 weeks ago
AK
Aisha K.
Full-stack Developer

Hooked it into my MCP server in like 20 minutes. The JSON response is well-structured and the docs are solid. Exactly what I needed.

5 days ago
DP
Daniel P.
Data Engineer @ Fintech

We pipe weekly series into BigQuery for a few brand cohorts. Compared to maintaining our old Selenium job, this is boring in the best way. Uptime has been solid.

Yesterday
NS
Nina S.
Product Manager, B2B SaaS

Great for slide-ready trend screenshots when leadership asks why we are prioritizing a feature. I wish the dashboard had saved views, but the API side is great.

4 days ago
MA
Miguel A.
Frontend Developer
4 days ago
TW
Tom W.
Indie Maker

Running it from Cursor with the MCP config took one try. I am not a trends person, but my side project now emails me when a niche keyword spikes hard week over week.

1 week ago
RK
Ravi K.
Research Analyst

Using the growth endpoints to sanity-check retail names before I write up notes. Occasionally the normalization differs from what I see in the raw Google UI, but it is consistent run to run.

6 days ago
LC
Laura C.
ML Engineer

Pulling multi-source ranked lists into a notebook is straightforward. Error payloads are actually readable when I fat-finger a parameter, which matters more than people admit.

10 days ago
KN
Keiko N.
Graduate Student
10 days ago
BH
Ben H.
Freelance DevOps

Does what it says. I knocked a star because onboarding assumed I already knew MCP wiring; a copy-paste block for Claude Desktop would have saved me 15 minutes.

2 months ago
EM
Elena M.
Growth PM

We track TikTok hashtag momentum against paid spend in a Looker sheet. Not glamorous work, but it is the first tool my team did not argue about during rollout.

12 days ago
JF
Jordan F.
Backend Developer

Retries are predictable and I have not seen weird HTML in responses (looking at you, scrapers). Would pay for a team key rotation flow, but for now we rotate manually.

18 days ago
SO
Sam O.
Hedge Fund Associate

Quick checks on retail buzz before we dig into filings. Not a silver bullet, but it is faster than opening twelve browser tabs and reconciling by hand.

3 weeks ago
VL
Victor L.
IT Support
3 weeks ago
GV
Greta V.
Content Strategist

Helpful for spotting whether a topic is a one-day meme or sticking around. I still cross-check with Search Console, but this gets me 80% of the signal in one call.

9 days ago
YT
Yuki T.
DevRel Contractor

I demo this in workshops when people ask how to ground LLM answers in something fresher than training data. The MCP angle lands well with engineers who hate glue code.

1 month ago
CD
Chris D.
Agency Tech Lead

Solid for client reporting. Billing is clear enough that finance stopped asking me what line item this is. Minor nit: peak hours can feel a touch slower, still acceptable.

22 days ago
AM
Amir M.
Open Source Maintainer

I wired this behind a small CLI for contributors who want trend context in issues. Keeping the surface area tiny matters for OSS, and the schema has not churned on me yet.

16 days ago
KL
Kendra L.
BI Analyst

Daily pulls for a 30-day window go straight into our internal scoreboard. Stakeholders finally stopped debating whose screenshot of Trends was newer.

8 days ago
BT
Brooke T.
Demand Gen
8 days ago
PG
Priya G.
Startup Founder

We are pre-revenue, so free tier discipline matters. I hit the cap once during a brainstorm where everyone wanted to try random keywords. Learned to batch smarter.

11 days ago
HW
Henrik W.
Solutions Architect

Security review passed without drama: HTTPS, scoped keys, no bizarre third-party redirects in the chain we could find. That is rarer than vendors think.

27 days ago
IZ
Isaac Z.
Mobile Developer

I do not need this daily, but when App Store rank shifts look weird, having Reddit and news context in one place saves me from context switching across six apps.

19 days ago
VA
Vera A.
Journalist / Newsletter Writer

I use it to see if a story is genuinely blowing up or just loud on one platform. It is not a replacement for reporting, but it keeps my ledes honest.

14 days ago
QB
Quinn B.
Staff Engineer

We moved off a brittle Playwright script that broke every time Google shuffled markup. Same data shape every week now, which is all I wanted from life.

3 days ago
AC
Alan C.
Hobbyist Developer
3 days ago
FS
Fatima S.
E-commerce Director

Seasonal demand spikes line up with what we see in Amazon search interest here. Merch team stopped sending me screenshots from random tools that never matched.

5 days ago
OR
Owen R.
Analytics Consultant

Solid for client decks. I docked one star only because I still export to Sheets manually; a direct connector would be nice someday.

7 days ago
MJ
Marcus J.
Game Studio Producer

Steam concurrents plus Reddit chatter in one workflow beats our old spreadsheet ritual before milestone reviews.

13 days ago
LN
Leah N.
UX Researcher

Quick pulse on whether a feature name is confusing people in search before we ship copy. Cheap sanity check compared to a full survey.

17 days ago
DW
Diego W.
SRE

Monitored from Grafana via a thin wrapper. p95 stayed under our SLO budget last month. One noisy day during a holiday but nothing alarming.

24 days ago
TC
Tessa C.
Brand Strategist

Narrative fights in meetings got shorter once we could point at the same trend line everyone agreed on. Sounds silly until you have lived through it.

20 days ago
UH
Uma H.
PhD Candidate, CS

Using normalized series as a weak prior in a forecasting experiment. Citation-friendly timestamps in the payload made reproducing runs less painful.

29 days ago
XE
Xavier E.
IT Manager

Approved for our pilot group after a quick vendor review. Would love SAML, not a blocker for our size.

33 days ago
DK
Daria K.
Operations Consultant
33 days ago
NP
Nina P.
Creator Economy Analyst

YouTube search interest plus TikTok hashtags in one place helps me explain why a sponsor should care about a vertical without hand-waving.

15 days ago
GK
Gabe K.
Automation Engineer

Cron job hits the API before standup; Slack gets a compact summary. Took an afternoon to wire, has been stable for two quarters.

41 days ago
SY
Sofia Y.
Policy Researcher

Useful for public-interest topics where search interest is a rough proxy for attention. I still triangulate with primary sources; this is one signal among several.

26 days ago
RB
Raj B.
Cloud Architect

Runs in a VPC egress-only subnet with allowlisted domains. Fewer exceptions to explain to auditors than our last vendor.

35 days ago
CF
Clara F.
Community Manager

Spotting when a topic is about to flood Discord saves my team from reactive moderation fires. Not perfect, but directionally right often enough.

21 days ago
MZ
Mei Z.
Research Associate
21 days ago
WL
Wes L.
Fractional CMO

For lean teams the ROI story writes itself. I would not build an in-house scraper for this anymore unless compliance forced it.

31 days ago
IK
Ingrid K.
Technical Writer

Examples in the docs match what the MCP actually returns. You would be surprised how rare that is in this category.

6 days ago
JV
Jon V.
Night-shift NOC Tech

Pager stayed quiet. When something upstream flaked once, the error string told me which parameter to fix without opening logs first.

45 days ago
AE
Avery E.
University Lab Manager

Students use it for coursework demos. Budget is tight so free tier matters; we coach them to cache aggressively.

38 days ago
ZM
Zoe M.
Investor Relations Associate

Helps prep talking points when retail interest in our name swings after earnings. Not material disclosure, just context for Q&A prep.

23 days ago
HT
Hassan T.
Web Performance Lead

Response sizes stay small enough for mobile hotspots. I hate APIs that dump megabytes for a sparkline.

4 days ago

What are you working on?

How will you connect?

Python developers who need trend data have historically had one main option: pytrends. It is free, widely documented, and integrates well with pandas. It is also an unofficial scraper built on reverse-engineered Google Trends endpoints, which means its status as a reliable production dependency is always conditional.

Trends MCP is a different approach. It is a managed HTTP API with a consistent JSON schema, no scraping, absolute volume estimates, and 15+ data sources. From Python, calling it requires nothing more than the requests library.

The pytrends reliability problem

pytrends has been widely used since 2015. The problem is not that it fails often - it works fine most of the time. The problem is the failure mode when it does break.

Google updates its Trends frontend 1-4 times per year in ways that break pytrends. When this happens, every pipeline using pytrends starts returning errors overnight, with no warning. The fix depends on the open-source community identifying the change, writing a patch, merging it, and releasing a new version. This process has historically taken anywhere from a few days to several weeks, depending on the severity of the change and maintainer availability.

For a research notebook, waiting a week for a fix is inconvenient. For a production pipeline that feeds a dashboard or a model, it is a hard outage. Trends MCP is a managed service - infrastructure issues are handled on the provider side.

Calling Trends MCP from Python

The endpoint is a standard HTTPS URL accepting POST requests with JSON-RPC bodies. Authentication is an Authorization Bearer header with your Trends MCP API key.

import requests

API_KEY = "your_api_key"
ENDPOINT = "https://api.trendsmcp.ai/mcp"

def call_trends_mcp(tool_name: str, params: dict) -> dict:
    payload = {
        "jsonrpc": "2.0",
        "method": "tools/call",
        "params": {
            "name": tool_name,
            "arguments": params
        },
        "id": 1
    }
    response = requests.post(
        ENDPOINT,
        json=payload,
        headers={"Authorization": f"Bearer {API_KEY}"}
    )
    return response.json()

result = call_trends_mcp("get_trends", {
    "keyword": "large language models",
    "source": "google",
    "data_mode": "weekly"
})

The response follows the MCP JSON-RPC schema. The actual trend data is inside result["result"]["content"][0]["text"], which is a JSON string that you parse to get the time series array.

Building a pandas DataFrame from get_trends

Once you have the time series, loading it into pandas is straightforward:

import json
import pandas as pd

trend_json = json.loads(result["result"]["content"][0]["text"])
time_series = trend_json.get("data", [])

df = pd.DataFrame(time_series)
df["date"] = pd.to_datetime(df["date"])
df = df.set_index("date")

The data_quality_score column is worth using immediately. Filtering out rows where data_quality_score < 0.4 removes low-confidence data points before any analysis, which is better than discovering them as outliers later.

Multi-source growth comparison

get_growth with multiple sources in a single call returns all platform growth rates at once. This is the most efficient pattern for building cross-platform feature sets:

growth_result = call_trends_mcp("get_growth", {
    "keyword": "electric vehicles",
    "source": "google, tiktok, reddit, amazon, youtube",
    "percent_growth": ["1M", "3M", "6M", "1Y"]
})

growth_data = json.loads(growth_result["result"]["content"][0]["text"])

One request, five sources, four time periods each. The equivalent in pytrends would require five separate Google Trends calls, scraping a different site for Reddit and TikTok, and manual normalization before any comparison was valid.

For AI agent frameworks

For Python AI agent frameworks that support MCP (LangChain, CrewAI, PydanticAI, AutoGen), Trends MCP integrates as a tool definition. The agent can call get_trends, get_growth, get_ranked_trends, and get_top_trends in response to natural language instructions - no custom wrapper code required once the MCP connection is configured.

For frameworks that use MCP tool definitions natively, the server URL is https://api.trendsmcp.ai/mcp with HTTP transport. The tool schemas are exposed via the MCP tools/list endpoint.

Add to your AI in 30 seconds

An API key is required to connect. Get your free key above, then copy the pre-filled config for your client.

Cursor

Cursor SettingsTools & MCPAdd a Custom MCP Server

"trends-mcp": {
  "url": "https://api.trendsmcp.ai/mcp",
  "transport": "http",
  "headers": { "Authorization": "Bearer YOUR_API_KEY" }
}

+ Add to Cursor
Or paste into Mac / Linux — ~/.cursor/mcp.json
Windows — %USERPROFILE%\.cursor\mcp.json

↑ Get your free key above first — the config won't work without it.

Claude Desktop

UserSettingsDeveloperEdit Config — add inside mcpServers

"trends-mcp": {
  "command": "npx",
  "args": [
    "-y",
    "mcp-remote",
    "https://api.trendsmcp.ai/mcp",
    "--header",
    "Authorization:${AUTH_HEADER}"
  ],
  "env": {
    "AUTH_HEADER": "Bearer YOUR_API_KEY"
  }
}

Mac — ~/Library/Application Support/Claude/claude_desktop_config.json
Windows — %APPDATA%\Claude\claude_desktop_config.json

Fully quit and restart Claude Desktop after saving.

Claude Code (CLI)

claude mcp add --transport http trends-mcp https://api.trendsmcp.ai/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Windsurf

SettingsAdvanced SettingsCascadeAdd custom server +

"trends-mcp": {
  "url": "https://api.trendsmcp.ai/mcp",
  "transport": "http",
  "headers": { "Authorization": "Bearer YOUR_API_KEY" }
}

Mac / Linux — ~/.codeium/windsurf/mcp_config.json
Windows — %USERPROFILE%\.codeium\windsurf\mcp_config.json
Or: Command Palette → Windsurf: Configure MCP Servers

VS Code

Extensions sidebar → search @mcp trends-mcpInstall — or paste manually into .vscode/mcp.json inside servers

"trends-mcp": {
  "type": "http",
  "url": "https://api.trendsmcp.ai/mcp",
  "headers": { "Authorization": "Bearer YOUR_API_KEY" }
}

Paste into .vscode/mcp.json, or:
Command Palette (⇧⌘P / Ctrl+Shift+P) → MCP: Add Server

What you can query

All data is normalized to a 0-100 scale for consistent cross-platform comparison.

What your AI can call

Four tools, organized by how you start. With a keyword, track history and growth. Without one, use discovery to see ranked movers or what is live right now.

Track

You already have a keyword.

Chart how it moves over time and compare growth across sources.

get_trends
Historical time series
Retrieve a full 5-year weekly time series for any keyword and source - returns a JSON array of date/value/volume objects ready for pandas DataFrame construction.
get_trends(keyword='electric vehicles', source='google', data_mode='weekly')
get_growth
Growth metrics
Compute period-over-period growth rates for any keyword across multiple sources in one call - returns a flat dict of source: {growth_rate, start_volume, end_volume} for direct use as model features.
get_growth(keyword='electric vehicles', source='google, tiktok, reddit, amazon', percent_growth=['1M', '3M', '1Y'])
Discovery

No keyword required.

Ranked lists on one source with a growth sort you choose, or a live snapshot of what is trending across platforms.

get_ranked_trends
Ranked trend lists
Retrieve ranked lists of the fastest-growing keywords on any platform - useful for generating keyword candidate sets without manual curation.
get_ranked_trends(source='google', sort='yoy_pct_change', limit=50)
get_top_trends
Live trending now
Pull what is trending right now with no seed keyword - for pipelines that need to capture current trending topics on a schedule.
get_top_trends(type='TikTok Trending Hashtags', limit=30)

What you get back

Normalized value
0-100 scale, consistent across all platforms
Absolute volume
Raw search / view counts where available
Growth %
Period-over-period change with exact dates
Time series
Up to 5 years of weekly data per keyword
Data quality
Coverage score and zero-value detection
Multi-source
get_growth supports 'all' or comma-separated sources in one call

Common questions

pytrends is an unofficial library that reverse-engineers the Google Trends web interface. It has worked for years, but it has three persistent problems for Python developers: reliability (it breaks when Google changes its frontend, typically multiple times per year, requiring a community patch you wait for), data quality (returns relative 0-100 values only, not absolute volume, making keyword-to-keyword comparisons statistically unreliable without additional calibration), and rate limits (Google aggressively rate-limits the scraping IP, producing 429 errors at moderate query volumes that require exponential backoff logic). For one-off notebook queries, these are manageable. For production pipelines, they are not.
Trends MCP is accessible via standard HTTPS POST requests with an Authorization header containing your API key. The request body is JSON-RPC formatted, and the response is structured JSON. No SDK, no MCP library, no special setup - just the requests library and an API key from trendsmcp.ai. The response schema is consistent and documented, so it integrates directly into pandas workflows or any data pipeline.
Trends MCP does not currently have a Python-specific SDK. The HTTP API is designed to be simple enough that an SDK is not necessary - the requests library plus a simple wrapper function covers all four tools. For AI-agent workflows in Python frameworks like LangChain or CrewAI, Trends MCP integrates via MCP tool definitions, which those frameworks support natively.
Data science notebooks that need multi-source trend time series for analysis or modeling. ETL pipelines that collect weekly trend data for dashboards or databases. Research scripts comparing trend signals across Google, TikTok, Reddit, and other sources. AI agent frameworks (LangChain, CrewAI, PydanticAI) where trend data is one tool the agent can call. Any Python workflow that currently uses pytrends and needs reliability, absolute volume, or multi-platform coverage.

Protected by reCAPTCHA — Privacy & Terms