n8n shines when each node has a clean contract. Trends MCP supplies one HTTP surface and one MCP endpoint for Google, YouTube, TikTok, Reddit, Amazon, and more, so workflows can branch on real momentum instead of brittle scrapers.
Updated 2026-08-19
Trends MCP is the data layer. n8n is a workflow runner that should treat it as JSON over HTTP most of the time, and as MCP only when an Agent node must pick tools. REST lives at POST https://api.trendsmcp.ai/api with Authorization: Bearer YOUR_API_KEY. MCP-aware nodes use https://api.trendsmcp.ai/mcp with the same header. History on REST is mode: "get_time_series" (alias get_trends). MCP still names that tool get_trends. Growth is get_growth. Live feeds are get_top_trends. Free plans include 100 requests per month. Starter is $19 per month. n8n is the right client when the clock, the branch, and the destination (Slack, BigQuery, Notion) matter more than an IDE chat.
A scheduler plus HTTP Request is the default. Method POST, URL https://api.trendsmcp.ai/api, header Authorization = Bearer YOUR_API_KEY, body such as:
{
"mode": "get_growth",
"source": "google search",
"keyword": "electric bike",
"percent_growth": ["7D", "3M", "12M"]
}
Parse the JSON, then If/Switch on results[].growth. Store the raw payload. That graph is testable without an LLM.
An MCP Client or Agent node is for exploratory branches: the model may call get_top_trends when the sheet has no keyword yet, then get_growth once a name exists. Point that node at https://api.trendsmcp.ai/mcp, not at https://www.trendsmcp.ai/mcp. The www host is OAuth for Claude.ai Connectors. n8n is a Bearer client. Mixing Cursor’s transport JSON into an n8n credential object is wasted time; n8n wants URL, method, and header fields.
The API reference lists required body fields. Cursor remains the interactive twin of the same account when someone needs to debug a keyword by hand.
n8n wins at repetition. Monday 07:00, read a Google Sheet of SKUs, POST get_growth for amazon and google shopping, write rows, Slack only on a threshold. Make.com and Zapier can do similar graphs. n8n is the better fit when the team already versions workflows as JSON, self-hosts, or needs Function nodes for custom slope logic. Zapier is the better fit when the operators refuse to leave a Zap editor. Cursor is the better fit when there is no clock, only a developer asking a question.
Scrapers inside n8n (community Google Trends templates, headless browsers) fail on markup and blocks. Trends MCP does not return HTML. If the legal team requires archived page captures, keep a separate capture pipeline. Do not pretend the trend API is that archive.
Trigger: cron. Read yesterday’s priority keywords from a sheet. HTTP Request: get_growth with percent_growth ["7D", "3M"] and sources the campaign actually uses. If both windows are positive, post Slack with keyword, percents, and dates. If either window is negative, create a ticket for content refresh. Swap sources to tiktok and youtube for social teams.
Discovery branch (optional, Agent or a second HTTP node): get_top_trends with type TikTok Trending Hashtags and limit 20, then intersect with the brand list. Cap that branch. Each feed page is a request. REST get_top_trends may omit type to pull many feeds at once, which is expensive; MCP requires type. Prefer one named feed in n8n.
History branch: only for keywords that already alerted. POST get_time_series with one source and one keyword, write the array to a warehouse. Do not pull five-year series for 200 idle keywords every night on Free.
Free is 100 requests per month. A workflow that runs daily against 10 keywords and 2 sources is about 600 get_growth calls (10 keywords, 2 sources, roughly 30 days), which needs Starter ($19, 1,000) or Pro ($49, 5,000). Extra percent_growth windows are free relative to request count. Extra sources are not. Deduplicate keywords in a Function node before HTTP. Cache identical tuples in n8n Data Store for 24 hours.
429 rate_limited should stop the workflow, notify a human, and skip retries. Retrying a quota error spends nothing useful and can hammer logs. Pricing is the upgrade path.
Credentials belong in n8n’s credential store, not in a Function node string, not in git. Rotate the tmcp_liv key if a workflow export was shared.
Series are about five years of weekly points. Alerting on 7D can still be noisy when the underlying series is weekly. Pair short windows with a human filter or a minimum baseline volume when volume_available is true. not_found should mark the row and continue. invalid_source means the sheet has a display name instead of google search.
n8n will happily POST in a loop. Trends MCP will count every success. Legal and platform rules still apply to whatever happens after the If node (auto-tweets, auto-price changes). The API is read-only on purpose.
Error branches deserve their own nodes. Map HTTP 401 to a “fix the credential” Slack path, 429 to a “upgrade or slow the cron” path, and 400 invalid_source to a Sheet row that flags the bad label. A single generic Catch node that retries everything will turn a typo into a quota hole. Pin n8n’s retry count at zero for this credential.
Self-hosted n8n must keep outbound HTTPS to api.trendsmcp.ai open. Air-gapped runners cannot reach the API; they should fail at start, not queue a week of empty executions.
n8n is the deterministic scheduler for the shared Trends MCP server. It is not an IDE, not Claude.ai OAuth, and not a scraper farm.
FAQ