# TrendFlow (remote · trendflow.mory.dev)

Google Trends data: interest over time, by region, related queries, and trending now.

- Trust score: 64/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-20

## Components

- remote · `trendflow.mory.dev`: 64/100 (this document), [markdown](https://verifymcp.io/servers/dev-mory-trendflow/trendflow.md), [page](https://verifymcp.io/servers/dev-mory-trendflow/trendflow)

## Channel facts

- Endpoint: `https://trendflow.mory.dev/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-20.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 8 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1909 tokens (~238/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability check failed: schema churn in the 4 days we've observed: 0 tool removals, 0 breaking changes, 1 auth/transport breaks, 2 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### Claude

```bash
claude mcp add --transport http dev-mory-trendflow https://trendflow.mory.dev/mcp
```

### Codex

```toml
[mcp_servers.dev-mory-trendflow]
url = "https://trendflow.mory.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-mory-trendflow": {
      "type": "remote",
      "url": "https://trendflow.mory.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add dev-mory-trendflow --url https://trendflow.mory.dev/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  dev-mory-trendflow:
    url: "https://trendflow.mory.dev/mcp"
```

### Other

```json
{
  "mcpServers": {
    "dev-mory-trendflow": {
      "type": "http",
      "url": "https://trendflow.mory.dev/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-18 (score 64, −1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] Schema quality: 152 → 238
- [functional] New tool “list_regions”
- [functional] New tool “research_bulk”
- [cosmetic] “get_interest_by_region” added an optional parameter “category”
- [cosmetic] “get_interest_by_region” added an optional parameter “searchProperty”
- [cosmetic] “get_interest_by_region” added an optional parameter “timeframe”
- [cosmetic] “get_interest_over_time” added an optional parameter “category”
- [cosmetic] “get_interest_over_time” added an optional parameter “searchProperty”
- [cosmetic] “get_related_queries” added an optional parameter “category”
- [cosmetic] “get_related_queries” added an optional parameter “region”
- [cosmetic] “get_related_queries” added an optional parameter “searchProperty”
- [cosmetic] “get_related_queries” added an optional parameter “timeframe”
- [cosmetic] “get_interest_by_region” reworded the description of “region”
- [cosmetic] “get_interest_over_time” reworded the description of “region”
- [cosmetic] “get_interest_over_time” reworded the description of “timeframe”
- [cosmetic] “get_trending_now” reworded the description of “region”
- [cosmetic] “research_trend” reworded the description of “region”

### 2026-08-17 (score 65, −13)

- [security regression] Stability: unverified → fail
- [security regression] Authorization: pass → unverified

### 2026-08-16 (score 78)

First indexed and scored.

## MCP tools (8)

### `list_regions` (~113 tokens)

List regions

Returns the geo codes Google Trends accepts. With no argument it lists every country; given a country code it lists that country's sub-regions — US states, German states, UK nations — each as a code and a name.

Any code returned here can be passed as the `region` argument of the other tools.

Input parameters:

- `country`: Country code such as "US", "GB", "TH"; a sub-region such as "US-CA"; or a US metro code such as "807". Empty string means worldwide.

### `search_topics` (~141 tokens)

Search topics

Resolves a name — a company, product, person, technology, or concept — to its Google Trends topic id (`mid`), with a `type` field that distinguishes same-name entities such as Nike the company from Nike the goddess.

A topic aggregates every spelling and translation of one concept, so it measures considerably more search activity than a literal phrase: the topic for "artificial intelligence" scores 62 where the literal string scores 1. The other TrendFlow tools accept a topic id anywhere they accept a keyword.

Input parameters:

- `query` (string, required): A search term, or a topic id from search_topics (e.g. "/m/0mkz").

### `get_interest_over_time` (~319 tokens)

Interest over time

Get relative search interest for one or more terms over a historical period. Use this when the user asks how popular something is, whether it is rising or falling, or how several things compare — passing multiple keywords compares them on one scale. Values are normalized relative interest (0-100 within the result set), not absolute search volume.

Input parameters:

- `category` (integer): Google Trends category id to restrict the query to; 0, the default, is every category. Narrowing disambiguates a word with several meanings without needing a topic id.
- `keywords` (array, required): 1-5 search terms. Pass several to compare them against each other. Accepts topic ids from search_topics (e.g. "/m/0mkz") as well as literal phrases.
- `region`: Country code such as "US", "GB", "TH"; a sub-region such as "US-CA"; or a US metro code such as "807". Empty string means worldwide.
- `searchProperty` (string): Which Google surface to measure: empty for web search, or images, news, youtube, or froogle (Shopping). These are separate indexes, so values from different properties are not comparable to each othe…
- `timeframe`: Time range. A preset, or a custom range as two ISO dates: "2023-01-01 2023-06-30". The range also sets granularity — hourly ranges return minute-level points and "all" returns monthly ones, so a long…

### `get_interest_by_region` (~292 tokens)

Interest by region

Break down search interest for one term by geography. Use this when the user asks where something is popular, or wants a regional or city-level comparison. Values are normalized relative interest (0-100 within the result set).

Input parameters:

- `category` (integer): Google Trends category id to restrict the query to; 0, the default, is every category. Narrowing disambiguates a word with several meanings without needing a topic id.
- `keyword` (string, required): A search term, or a topic id from search_topics (e.g. "/m/0mkz").
- `region`: Country code such as "US", "GB", "TH"; a sub-region such as "US-CA"; or a US metro code such as "807". Empty string means worldwide.
- `resolution` (string): Geographic granularity of the breakdown.
- `searchProperty` (string): Which Google surface to measure: empty for web search, or images, news, youtube, or froogle (Shopping). These are separate indexes, so values from different properties are not comparable to each othe…
- `timeframe`: Time range. A preset, or a custom range as two ISO dates: "2023-01-01 2023-06-30". The range also sets granularity — hourly ranges return minute-level points and "all" returns monthly ones, so a long…

### `get_related_queries` (~290 tokens)

Related queries

Find the top and rising searches related to a term. Use this for keyword discovery, SEO and content research, and spotting breakout queries. `top` is ranked by volume; `rising` is ranked by growth, where "Breakout" means growth too large to measure.

Input parameters:

- `category` (integer): Google Trends category id to restrict the query to; 0, the default, is every category. Narrowing disambiguates a word with several meanings without needing a topic id.
- `keyword` (string, required): A search term, or a topic id from search_topics (e.g. "/m/0mkz").
- `region`: Country code such as "US", "GB", "TH"; a sub-region such as "US-CA"; or a US metro code such as "807". Empty string means worldwide.
- `searchProperty` (string): Which Google surface to measure: empty for web search, or images, news, youtube, or froogle (Shopping). These are separate indexes, so values from different properties are not comparable to each othe…
- `timeframe`: Time range. A preset, or a custom range as two ISO dates: "2023-01-01 2023-06-30". The range also sets granularity — hourly ranges return minute-level points and "all" returns monthly ones, so a long…

### `get_trending_now` (~196 tokens)

Trending now

Lists the searches surging right now in a country, for questions about what is spiking without a term being named, and for news and real-time context.

The `backend` parameter selects the source: "rpc" returns around 50 entries with growth percentages and a relative volume index; "rss" returns 10 entries together with the news articles behind each one; "auto" tries rpc and falls back to rss.

Input parameters:

- `backend` (string): Source to use. "rpc" returns ~50 items with growth percentages; "rss" returns 10 with the news articles behind each trend; "auto" tries rpc then falls back to rss.
- `limit` (integer): Maximum number of results to return.
- `region`: Country code such as "US", "GB", "TH"; a sub-region such as "US-CA"; or a US metro code such as "807". Empty string means worldwide.

### `research_trend` (~155 tokens)

Research a trend

Returns a full picture of one term in a single call: interest over time, where it is most searched, and the queries people search alongside it. Suited to open-ended research on a topic rather than one narrow question.

Each section is fetched independently, so a partial result is normal: any section that fails carries an `error` instead of data and the rest still returns.

Input parameters:

- `keyword` (string, required): A search term, or a topic id from search_topics (e.g. "/m/0mkz").
- `region`: Country code such as "US", "GB", "TH"; a sub-region such as "US-CA"; or a US metro code such as "807". Empty string means worldwide.

### `research_bulk` (~220 tokens)

Research many trends

Researches up to 10 topics in a single call, each with the same full picture as `research_trend`: interest over time, where it is most searched, and related queries. Each topic is looked up on its own scale, so they are not comparable to one another.

Use this when you need data across many topics — a long or rich research pass — instead of one tool call per topic. Each section is fetched independently, so a partial result is normal: any section that fails carries an `error` instead of data and the rest still returns.

Input parameters:

- `region`: Country code such as "US", "GB", "TH"; a sub-region such as "US-CA"; or a US metro code such as "807". Empty string means worldwide.
- `topics` (array, required): 1-10 topics (terms or topic ids) to research. Each is looked up on its own scale, so they are not comparable to one another. Use this to gather data across many topics in one call instead of one tool…

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/dev-mory-trendflow/trendflow#diagnostics

## Score history

- 2026-08-20: 64
- 2026-08-19: 64
- 2026-08-18: 64
- 2026-08-17: 65
- 2026-08-16: 78

## Links

- Remote endpoint: https://trendflow.mory.dev/mcp
- Repository: https://github.com/dariomory/trendflow-js
- Website: https://trendflow.mory.dev/docs/mcp
- Changelog RSS feed: https://verifymcp.io/servers/dev-mory-trendflow/trendflow.xml
- Changelog JSON feed: https://verifymcp.io/servers/dev-mory-trendflow/trendflow.json
- HTML version of this page: https://verifymcp.io/servers/dev-mory-trendflow/trendflow
