tiktok-trends-mcp
Provides trend data from Amazon, including time-series volume, growth rates, and trending topics.
Provides trend data from Google Search, including time-series volume, growth rates, and trending topics.
Provides trend data from npm, including time-series volume, growth rates, and trending topics.
Provides trend data from Reddit, including time-series volume, growth rates, and trending topics.
Provides trend data from Steam, including time-series volume, growth rates, and trending topics.
Provides TikTok hashtag trend data, including volume, growth rate, historical time series, and top trending topics.
Provides trend data from Wikipedia, including time-series volume, growth rates, and trending topics.
Provides trend data from YouTube, including time-series volume, growth rates, and trending topics.
Click on "Install 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., "@tiktok-trends-mcpwhat's trending on TikTok today?"
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.
TikTok Trends MCP
Live trend data for AI agents. Google, TikTok, YouTube, Amazon, Reddit, and 30+ other sources. One MCP connection, one API key.
Get a free API key · Docs · Pricing · Data sources · PyPI · Glama
You: Using TrendsMCP, compare 6-month growth for GLP-1 on Google, TikTok, and Amazon.
Agent: Google Search +84%
TikTok +212%
Amazon +61%Three tools. Normalized 0–100 where the pipeline supports it. No per-platform keys. No scraping on your side.
Quick install
Same four clients as the site hero. Get a free key first (100 req/mo). Claude and ChatGPT sign you in with OAuth. Cursor and VS Code: click, then put your key from /account if the deeplink used a placeholder.
Client | After you click |
Claude | Connector name and URL are prefilled ( |
Cursor | Approve the MCP install. Replace |
ChatGPT | Enable Developer mode (Profile → Settings → Security). Name |
VS Code | Sign in on the account page and use the VS Code button so the key is included. |
Then ask: Using TrendsMCP, what's trending on Google right now?
Tools · Sources · Feeds · REST · Install in other clients
Related MCP server: tiktok-trends-mcp
What this is
Hosted MCP at https://api.trendsmcp.ai/mcp. Same Bearer key for POST https://api.trendsmcp.ai/api. This repo also has a stdio adapter for Glama and local hosts.
Tool | Use when | Needs a keyword? |
| History for one keyword on one source | Yes |
| Percent change over 7D–5Y (several windows in one call) | Yes |
| What is ranking on a platform right now | No |
Install in other clients
Replace YOUR_API_KEY with the key from your account.
claude mcp add --scope user --transport http trends-mcp https://api.trendsmcp.ai/mcp \
--header "Authorization: Bearer YOUR_API_KEY"~/.cursor/mcp.json (Windows: %USERPROFILE%\.cursor\mcp.json)
{
"mcpServers": {
"trends-mcp": {
"url": "https://api.trendsmcp.ai/mcp",
"transport": "http",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}.vscode/mcp.json or Command Palette → MCP: Add Server. Prefer the account-page VS Code button so the key is wired for you.
{
"servers": {
"trends-mcp": {
"type": "http",
"url": "https://api.trendsmcp.ai/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Uses serverUrl, not Cursor’s url + transport. File: ~/.codeium/windsurf/mcp_config.json.
{
"mcpServers": {
"trends-mcp": {
"serverUrl": "https://api.trendsmcp.ai/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Remote server, type exactly streamableHttp. See llms-install.md.
{
"mcpServers": {
"trends-mcp": {
"type": "streamableHttp",
"url": "https://api.trendsmcp.ai/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" },
"disabled": false
}
}
}{
"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" }
}
}
}Settings → Connectors → add https://www.trendsmcp.ai/mcp. This path uses OAuth on www.trendsmcp.ai. Do not put a Bearer key in that connector config.
Hosted HTTP is still the product default. This process lists tools with no key; paid calls need TRENDSMCP_API_KEY and bill the same quota.
pip install -e .
python -m trends_mcp_server{
"mcpServers": {
"trends-mcp": {
"command": "python",
"args": ["-m", "trends_mcp_server"],
"env": { "TRENDSMCP_API_KEY": "YOUR_API_KEY" }
}
}
}Say “using TrendsMCP” so the model picks these tools instead of web search. More clients: docs.
Tools
Always-current parameter lists: docs.
get_time_series
Weekly (or daily) history for one source + keyword. Same name on MCP and REST (mode: "get_time_series"). REST also accepts get_trends as an alias.
Argument | Required | Notes |
| yes | Format depends on source (table below) |
| yes | One source per call. Lowercase catalog names |
| no | REST only. |
Index is 0–100 where the pipeline supports it (100 = peak in the returned window). volume is present when that source has an absolute series.
get_growth
Point-to-point percent change. Several windows in one call still count as one request for that source + keyword.
Argument | Required | Notes |
| yes | Same formats as |
| yes | One source, or a comma-separated list ( |
| no | Default |
Presets: 7D 14D 30D 1M 2M 3M 6M 9M 12M 1Y 18M 24M 2Y 36M 3Y 48M 60M 5Y MTD QTD YTD.
get_top_trends
Live ranked list. No keyword. On MCP, type is required and must match the feed name exactly (including capitals). On REST, omit type only if you intend to pull every feed (billed per feed).
Argument | Required on MCP | Notes |
| yes | See live feeds |
| no | Default 25, max 200 |
| no | Pagination |
| for some types | Amazon / Google Trends / Top Websites / Substack / TikTok hashtag category boards |
| no |
|
| no | With |
Prompts that route correctly
Using TrendsMCP, what's trending on Google right now?
Using TrendsMCP, what are the hottest Reddit posts right now?
Using TrendsMCP, compare 6-month growth for creatine gummies on Google, TikTok, and Amazon.
Using TrendsMCP, show Google Search history for protein soda.
Via TrendsMCP, pull npm download history for langchain.
Using TrendsMCP, show Steam concurrent players for Elden Ring.
Via TrendsMCP, Android downloads for com.openai.chatgpt.
Using TrendsMCP, fastest-climbing Amazon best sellers in Toys Games this week.Keyword sources
source on get_time_series / get_growth. Not the same strings as type on live feeds.
| Signal |
|
| Search volume | Any phrase |
| Image search volume | Any phrase |
| News-tab volume | Any phrase |
| Shopping-tab volume | Any phrase |
| YouTube search volume | Any phrase |
| Hashtag volume | Hashtag or topic ( |
| Subreddit attention | Name only, no |
| Product search volume | Product or category |
| Page views | Article title or topic |
| Mention volume | Any phrase |
| News tone | Any phrase |
| Android downloads | Play bundle id, e.g. |
| Android chart position | Bundle id |
| Weekly downloads | Exact package name ( |
| Monthly concurrent players | Game display name ( |
source: "Google Trends" is invalid. Use google search for history and type: "Google Trends" for the live board.
Live feeds
type on get_top_trends. Copy the name exactly.
| Board |
| Google searches now |
| Needs |
| Google News stories |
| Hashtags |
| Needs |
| In-app searches |
| Videos |
| Topics on X |
| Front page |
| r/worldnews |
| Most-viewed articles |
| Top-rated sellers |
| Needs |
| iOS charts |
| Play chart |
| Global traffic rank; optional |
| Podcasts |
| Live players |
| Newsletters |
| Daily trending repos |
| Movie activity |
| Books |
Category name lists: docs.
iOS charts, GitHub repos, Spotify, IMDb, Open Library, Substack, and Top Websites are feeds, not source values. There is no source: "web traffic".
REST API
curl -sS -X POST https://api.trendsmcp.ai/api \
-H "Authorization: Bearer $TRENDSMCP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"get_top_trends","type":"Google Trends","limit":5}'import os, requests
r = requests.post(
"https://api.trendsmcp.ai/api",
headers={"Authorization": f"Bearer {os.environ['TRENDSMCP_API_KEY']}"},
json={"mode": "get_growth", "source": "google search", "keyword": "bitcoin", "percent_growth": ["3M", "12M"]},
)
print(r.json())Python client: pip install trendsmcp.
Limits and errors
Plan | Requests / month | Price |
Free | 100 | $0 |
Starter | 1,000 | $19 |
Pro | 5,000 | $49 |
Business | 25,000 | $199 |
Annual billing is 20% less. Same source catalog on every plan. Free history and “top N” caps are on pricing. Failed calls are not billed. Over quota returns 429 / rate_limited (no surprise overages).
One billed request:
get_time_series: one source + keywordget_growth: one source + keyword (all windows in that call included)get_top_trends: pertype(and pagination as documented)
Status | Meaning |
400 | Bad or missing |
401 | Missing or invalid key |
404 | No series for that keyword + source |
429 | Monthly cap |
500 | Upstream or internal error |
Do not commit keys. Claude.ai connectors use OAuth; other clients use Authorization: Bearer ….
What this does not do
Region / geo breakdown, related queries, or related topics
Hourly series
get_time_seriesacross several sources in one call (useget_growthwith a comma-separatedsourcelist, or severalget_time_seriescalls)Inventing feed names: MCP
typemust match the table
Develop this repo
pip install -e .
python -m trends_mcp_serverCI: .github/workflows/ci.yml. Security: SECURITY.md. Issues: github.com/trendsmcp-ai/tiktok-trends-mcp/issues.
Links
TrendWatch (alerts in your own GitHub repo)
MIT © Trends MCP
Available Tools
3 toolsget_growthARead-onlyIdempotentInspect
Point-to-point growth for a keyword on one or more sources. Each window is a preset string (12M, 3M, YTD, and the other listed periods). Values are on a 0-100 scale, plus absolute volume when available. Prefer this over get_time_series for growth questions. app downloads and app rankings are keyword sources (Android bundle ID). They are not the App Store / Google Play live boards on get_top_trends. If the request is rate limited or the monthly quota is used up, tell the user their plan limit is reached.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | One source, or comma-separated sources (e.g. 'amazon, tiktok, youtube'). Valid: 'google search', 'google images', 'google news', 'google shopping', 'youtube', 'wikipedia', 'tiktok', 'reddit', 'amazon', 'news sentiment', 'news volume', 'npm', 'python', 'steam', 'app downloads', 'app rankings'. | |
| keyword | Yes | What to look up. The string format is required by source. Standard sources (google search, google images, google news, google shopping, youtube, wikipedia, tiktok, reddit, amazon, news sentiment, news volume): any name or phrase, e.g. 'nike'. npm: exact npmjs.com package name, case-sensitive. Right: 'react', '@babel/core'. Wrong: 'React', 'React.js'. python: exact PyPI project name. Right: 'pandas', 'requests'. Wrong: 'Pandas'. steam: game display name in plain English, not a Steam App ID. Right: 'Elden Ring', 'CS2'. First Steam store search result wins, so use an unambiguous name. app downloads and app rankings: Android bundle ID only (the id= value on Google Play). Right: 'com.openai.chatgpt', 'com.whatsapp'. Wrong: 'ChatGPT', 'WhatsApp', an iOS App Store ID, or a bundle ID that is not Android. Find it at play.google.com/store/apps/details?id=THIS_PART. If the request includes app downloads or app rankings with other sources, keyword must still be the Android bundle ID. | |
| percent_growth | No | Growth windows. Default if omitted: ['12M']. Each item must be a preset string: '7D', '1W', '14D', '2W', '30D', '1M', '2M', '3M', '6M', '9M', '12M', '1Y', '18M', '24M', '2Y', '36M', '3Y', '48M', '4Y', '60M', '5Y', 'MTD', 'QTD', 'YTD'. Every preset is a two-date comparison. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, but the description adds meaningful behavioral detail beyond these: values are on a 0-100 scale, absolute volume is included when available, windows are preset strings, and rate-limit/quota failures should be reported as a plan limit reached. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, followed by output-scale details, sibling preference, source clarification, and error handling. It is slightly long and some points duplicate schema content, but every sentence earns its place by clarifying usage or behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description does not need to explain return structure. It covers what the tool does, when to choose it over siblings, source constraints, output scaling, and the rate-limit failure mode. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides rich documentation: source lists valid values and comma-separated behavior, keyword specifies per-source formats, and percent_growth enumerates all preset windows. The description reinforces the preset-window idea and Android bundle ID requirement but adds little genuinely new parameter information beyond what the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Point-to-point growth for a keyword on one or more sources.' It also explicitly distinguishes itself from siblings by saying to prefer it over get_time_series for growth questions and clarifying that app sources are not the live boards on get_top_trends. This makes the tool's unique purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives direct guidance: 'Prefer this over get_time_series for growth questions' and clarifies that app downloads/app rankings sources are not the App Store/Google Play live boards on get_top_trends. It also tells the agent what to do on rate limiting or quota exhaustion, which is practical usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_time_seriesARead-onlyIdempotentInspect
Full historical series for one keyword and one source (0-100 values, plus volume when available). Use for charting or custom math. Not for live 'what's trending now' boards (use get_top_trends). For most growth questions, use get_growth. If the request is rate limited or the monthly quota is used up, tell the user their plan limit is reached.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Exactly one source per request. Valid: 'google search', 'google images', 'google news', 'google shopping', 'youtube', 'wikipedia', 'tiktok', 'reddit', 'amazon', 'news sentiment', 'news volume', 'npm', 'python', 'steam', 'app downloads', 'app rankings'. | |
| keyword | Yes | What to look up. The string format is required by source. Standard sources (google search, google images, google news, google shopping, youtube, wikipedia, tiktok, reddit, amazon, news sentiment, news volume): any name or phrase, e.g. 'tesla'. npm: exact npmjs.com package name, case-sensitive. Right: 'react', '@babel/core'. Wrong: 'React', 'React.js'. python: exact PyPI project name. Right: 'pandas', 'requests'. Wrong: 'Pandas'. steam: game display name in plain English, not a Steam App ID. Right: 'Elden Ring', 'CS2'. First Steam store search result wins, so use an unambiguous name. app downloads and app rankings: Android bundle ID only (the id= value on Google Play). Right: 'com.openai.chatgpt', 'com.whatsapp'. Wrong: 'ChatGPT', 'WhatsApp', an iOS App Store ID, or a bundle ID that is not Android. Find it at play.google.com/store/apps/details?id=THIS_PART. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral details beyond the readOnly/openWorld/idempotent annotations: the series is limited to 0-100 values, volume is included 'when available,' and there is a clear instruction on how to handle rate limits or quota exhaustion. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each earning its place: the first defines output, the second gives usage context and alternatives, and the third provides error-handling behavior. It is front-loaded with the core purpose and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, a fully self-documenting source parameter schema, and rich annotations, the description covers everything an agent needs to select and invoke the tool correctly. It even includes quota/rate-limit handling, which is often missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the source parameter already carries extensive, source-specific validation guidance. The description adds only the general constraint of 'one keyword and one source,' which is helpful but does not materially expand parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Full historical series for one keyword and one source (0-100 values, plus volume when available).' It also explicitly differentiates itself from sibling tools by naming get_top_trends and get_growth, so an agent can distinguish it immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: 'Use for charting or custom math.' It also provides exclusions: 'Not for live trending boards (use get_top_trends)' and 'For most growth questions, use get_growth.' The rate-limit handling instruction adds operational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_trendsARead-onlyIdempotentInspect
Live top-trending board for exactly one feed type. No keyword. For 'Amazon Best Sellers by Category', 'Google Trends by Category', 'Top Websites', and 'Substack by Category', always pass category. Default sort is current rank. Use sort='rank_change' for climbers vs a prior snapshot (window 1d, 3d, 7d, 14d, or 30d). App Store Top Free, App Store Top Paid, and Google Play are live store boards, not keyword lookups. For an app's history use get_growth or get_time_series with source app downloads or app rankings and an Android bundle ID. Do not use get_time_series for live boards. If the request is rate limited or the monthly quota is used up, tell the user their plan limit is reached.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | How to rank the board. 'rank' (default): current leaders. 'rank_change': biggest climbers vs a prior snapshot. Mover rows include rank, keyword, prev_rank, and rank_change. | rank |
| type | Yes | Exactly one live feed. Valid: 'Amazon Best Sellers Top Rated', 'Amazon Best Sellers by Category', 'App Store Top Free', 'App Store Top Paid', 'GitHub', 'Google News Top News', 'Google Play', 'Google Trends', 'Google Trends by Category', 'IMDb MOVIEmeter', 'Open Library Trending Books', 'Reddit Hot Posts', 'Reddit World News', 'Top Websites', 'Spotify Top Podcasts', 'Steam Most Played', 'Substack', 'Substack by Category', 'TikTok Trending Hashtags', 'TikTok Trending Searches', 'Wikipedia Trending', 'X (Twitter) Trending', 'YouTube Trending'. | |
| limit | No | Max rows to return. Default 25, min 1, max 200. | |
| offset | No | Rows to skip for pagination. Default 0. | |
| window | No | Lookback used only when sort is 'rank_change'. One of '1d', '3d', '7d', '14d', '30d'. Default '30d'. Short windows only work on daily feeds; weekly and monthly feeds return a note pointing to a longer window. | 30d |
| category | No | Pass this whenever type is 'Amazon Best Sellers by Category', 'Google Trends by Category', 'Top Websites', or 'Substack by Category'. Use the official name. Without it those feeds mix every board. Only omit on a first pull to learn the official names. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, open-world, and idempotent. The description adds meaningful behavioral context beyond that: 'No keyword', default sort behavior, the rank_change/window mechanics, the fact that store boards are not keyword lookups, and how to respond when rate limits or quota are exhausted. This is exactly the kind of extra operational behavior an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average, but every sentence earns its place: purpose, category constraint, sort behavior, app-store nuance, sibling routing, and rate-limit handling. It is front-loaded with the core purpose and keeps the content organized so no sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters, an output schema, and rich annotations, the description covers everything an agent needs: when to use it, how to select the right feed, how sort and window interact, which siblings to route to, and how to handle quota failure. The schema handles the valid enum-like type values and output structure, so the description does not need to repeat them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by clarifying parameter interplay: category is mandatory for specific types, sort has two meaningful modes, window applies only to rank_change, and store feed types are live boards rather than keyword searches. It slightly exceeds the schema's own parameter descriptions without fully re-explaining every field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ('get') with a clear resource ('live top-trending board') and adds a sharp scope constraint: exactly one feed type and no keyword. It also draws an explicit line against the sibling tools by pointing to get_growth/get_time_series for app history, so an agent can distinguish this from the alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit routing: use category for certain feed types, use sort='rank_change' for climbers, and use get_growth or get_time_series for app history instead of this tool. It even says 'Do not use get_time_series for live boards,' which gives a clear exclusion. The rate-limit/quota instruction also tells the agent what to do in a failure case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.1.0- First observed
get_growth - First observed
get_time_series - First observed
get_top_trends
TDQS
Each tool addresses a distinct retrieval pattern: get_growth handles window-over-window comparisons for keyword sources, get_time_series provides full historical data for charting, and get_top_trends targets current live boards without a keyword. The descriptions explicitly cross-reference each other and state when one is preferred, so an agent should be able to select correctly.
All three tool names follow the same get_ + noun pattern using snake_case, making the collection predictable. There are no mixed conventions or vague verbs.
Three tools is well-scoped for a trends data server: one for growth comparisons, one for full history, and one for live top lists. Each tool provides a distinct high-level capability without redundancy or bloat.
The read-only trend surface is broadly covered: live boards, point-to-point growth, and historical series cover the main ways trends data would be requested. A minor gap is that there is no explicit discovery tool for available sources/categories, though the descriptions document them sufficiently for most workflows.
Maintenance
Related MCP Connectors
TikTok hashtag volume over time, with growth for any hashtag. Free key at trendsapi.ai
Short-form video analytics and trend intelligence for TikTok, YouTube, and Instagram
Cross-platform social trend signals from TikTok, YouTube, Reddit and X. Free key at trendsapi.ai
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to download TikTok videos without watermarks, analyze creator metrics and audience insights, track trending content and hashtags, and search videos, users, and sounds through RapidAPI integration.-
- AlicenseNot gradedqualityBmaintenanceProvides TikTok hashtag trend data including volume growth, viral spikes, and historical time series, enabling AI assistants to spot emerging trends before they go mainstream.MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to access TikTok organic analytics including video performance, engagement metrics, and profile insights via the TikTok Developer API.523MIT

Upriver MCPofficial
AlicenseNot gradedqualityCmaintenanceProvides AI applications with real-time, evidence-backed context on creators, audiences, brands, trends, and sponsorships, including breakout topic search and browsing tools.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/trendsmcp-ai/tiktok-trends-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server