A trends dashboard is only as good as its data pipeline. Most attempts fail at the data layer - scrapers that break, single-source coverage, or relative-only values that cannot be meaningfully compared. This guide covers how to build a live trends dashboard using Trends MCP as the data source: what to query, how to structure the data, and how to display it with consistent cross-platform comparisons.
A trends dashboard sounds simple: chart some trend lines, add growth percentages, ship it. The reality is that most early attempts collapse at the data layer within a few weeks. The scraper breaks. The data from different sources uses incompatible scales. The refresh runs into rate limits. This guide walks through building a dashboard that does not have those problems.
The most common mistake is starting with the visualization (choosing a chart library, designing the layout) before solving the data problem. Design the UI last. First, answer:
Trends MCP as a backend simplifies questions 1-3 significantly. One connection gives your data pipeline access to Google, TikTok, Reddit, YouTube, Amazon, Wikipedia, news, web traffic, app downloads, npm, and Steam - all normalized to a consistent 0-100 scale. You still need to answer question 4 based on your stack.
get_trendsFor the main trend line charts, use get_trends with data_mode='weekly'. This returns up to 5 years of weekly data per keyword per source. Query each keyword-source pair you want to display and store the results.
For most dashboards, querying multiple sources for each keyword gives you a richer picture. The response structure is consistent across sources - the same date/value/volume format regardless of whether you are querying Google or TikTok.
Practical note: One get_trends call covers one source. If you want to show Google, TikTok, and Reddit lines for the same keyword, that is three calls. Plan your daily query budget accordingly.
get_growthGrowth rate numbers (30-day, 90-day, 1-year) are the most-read data points on any trend dashboard. Use get_growth with source='all' to get cross-platform growth in a single call - this is the most efficient query pattern for dashboard scorecards.
The response includes percentage change, start/end volumes, direction (up/down/flat), and a data quality score for each source. The data quality score is useful for suppressing or flagging low-confidence values in your UI rather than displaying misleading growth figures.
get_ranked_trendsMost dashboards have a fixed keyword list and a discovery section. For the discovery section, run get_ranked_trends once per day on your primary source, sorted by wow_pct_change (week-over-week percent change) or yoy_pct_change. This surfaces keywords growing fastest that week, which you can present as "trending this week" cards and allow users to add to their tracked list.
get_top_trendsFor a "trending right now" section with no fixed keyword list, get_top_trends requires no seed keyword and returns what is actually trending at query time. This is the appropriate source for a live feed of breakout topics rather than monitored keyword lists.
All Trends MCP values are normalized to 0-100 per platform. This is designed for cross-platform comparison on a shared axis. When plotting multiple sources for the same keyword, you can put them on the same chart without a second Y-axis or any transformation.
What you should not do is mix normalized values and absolute volume estimates on the same axis. If you display absolute volume, keep it to single-source charts. If you display normalized values, you can legitimately compare across sources.
See the normalization methodology page for a full explanation of how the 0-100 scale is calibrated across platforms.
Daily refresh for time series: Run a scheduled job (e.g., cron at 2am UTC) that re-fetches the weekly time series for all tracked keywords. Store results in a database or object store. This keeps your charts current without continuous polling.
Real-time for live trending: get_top_trends can be refreshed every 15-60 minutes for a "trending now" section. The underlying data updates frequently for sources like TikTok and Reddit.
Cache growth scorecards for 24 hours: get_growth results change slowly - a 30-day growth figure on Monday and Tuesday is nearly identical. Serving cached results with a timestamp ("updated 6 hours ago") is accurate enough and reduces unnecessary queries.
Mixing relative and absolute values: Google Trends' native 0-100 scale is relative to the peak in your query window. Trends MCP's 0-100 is normalized differently (consistently calibrated across time and sources). Do not mix these. If you are importing data from multiple sources and some comes from pytrends, the scales are not compatible.
Querying too many keywords on initial load: Dashboard load time degrades quickly if you query all keywords on page load. Pre-fetch and cache data server-side; serve stale-while-revalidate. Users should see charts instantly from cache, with a background refresh.
Ignoring data quality scores: Trends MCP returns a data_quality_score with each data point. A score below ~0.4 usually means sparse data or low platform coverage for that keyword. Displaying these values without flagging them misleads users. Either suppress low-quality data points or show them grayed out with a "limited data" indicator.
Single-source dashboards: If your dashboard only shows Google Trends, it is showing 1 of 15+ available signals. Users who rely on it for decisions are missing the 2-4 week lead time that TikTok and Reddit signals provide before Google Search catches up. Multi-source is not complexity - it is the minimum for a trustworthy trend picture.
The fastest path to a working trends dashboard:
get_growth(keyword='your keyword', source='all', percent_growth=['1M', '3M', '1Y']) for your keyword list to populate scorecard numbersget_trends(keyword='your keyword', source='google', data_mode='weekly') for each keyword to build time series chartsget_ranked_trends(source='google', sort='wow_pct_change', limit=20) for a discovery sectionThis four-query pattern covers the core of a production-grade trends dashboard. Add sources, additional keywords, and scheduled refresh once the baseline is working.
FAQ