# Google News & Trends MCP (pypi · mcp-trendpulse)

Query Google News RSS feeds and search interest over time via Google Trends.

- Trust score: 77/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- pypi · `mcp-trendpulse`: 77/100 (this document), [markdown](https://verifymcp.io/servers/akzar1el-mcp-trendpulse/mcp-trendpulse.md), [page](https://verifymcp.io/servers/akzar1el-mcp-trendpulse/mcp-trendpulse)

## Channel facts

- Registry: `pypi`
- Package: `mcp-trendpulse`
- Version: `0.2.25`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-09-20.

- **Supply Chain Security**: 99/100
  - No malware found by supply-chain analysis.
  - A known CVE affects nltk, but no fixed version has been published, so there is nothing to upgrade to.
  - Runs setuptools.build_meta at install time, a recognised native-build step with no shell scripting around it.
  - 8 of 57 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: no license is declared.
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2150 tokens (~134/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 70/100
  - Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **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.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 16 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Google News & Trends MCP server?

Google News & Trends MCP runs locally as a PyPI package, launched with uvx mcp-trendpulse. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add akzar1el-mcp-trendpulse -- uvx mcp-trendpulse
```

### Cursor

```json
{
  "mcpServers": {
    "akzar1el-mcp-trendpulse": {
      "command": "uvx",
      "args": [
        "mcp-trendpulse"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "akzar1el-mcp-trendpulse": {
      "command": "uvx",
      "args": [
        "mcp-trendpulse"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add akzar1el-mcp-trendpulse -- uvx mcp-trendpulse
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "akzar1el-mcp-trendpulse": {
      "type": "local",
      "command": [
        "uvx",
        "mcp-trendpulse"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add akzar1el-mcp-trendpulse --command uvx --arg mcp-trendpulse
```

### Hermes

```yaml
mcp_servers:
  akzar1el-mcp-trendpulse:
    command: "uvx"
    args: ["mcp-trendpulse"]
```

### Netclaw

```json
{
  "McpServers": {
    "akzar1el-mcp-trendpulse": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "mcp-trendpulse"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add akzar1el-mcp-trendpulse -t stdio -c uvx -a mcp-trendpulse
```

### Other

```json
{
  "mcpServers": {
    "akzar1el-mcp-trendpulse": {
      "command": "uvx",
      "args": [
        "mcp-trendpulse"
      ]
    }
  }
}
```

## 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-09-20 (score 77, +41)

- [security regression] Malware scan: pass → unverified
- [security improvement] Injection markers: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.70
- [functional] Package version: 0.2.19 → 0.2.25
- [functional] Package version: 0.2.19 → 0.2.24
- [functional] Package version: 0.2.13 → 0.2.22
- [functional] Package version: 0.2.19 → 0.2.20

### 2026-09-19 (score 36, −40)

- [security regression] Tool safety: pass → unverified
- [security regression] Stability: 0.63 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] Package version: 0.2.13 → 0.2.19
- [functional] Package version: 0.2.13 → 0.2.18
- [functional] Package version: 0.2.13 → 0.2.17
- [functional] Package version: 0.2.13 → 0.2.16
- [functional] Package version: 0.2.13 → 0.2.15

### 2026-09-18 (score 76, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-09-17 (score 61, −14)

- [security regression] Malware scan: pass → unverified

### 2026-09-15 (score 75, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-09-14 (score 59, −15)

- [security regression] Malware scan: pass → unverified

### 2026-09-13 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-11 (score 73, +16)

- [security improvement] Malware scan: unverified → pass

## MCP tools (16)

### `get_news_by_keyword` (~146 tokens)

Find recent Google News articles for a free-form keyword or phrase. Use this for ad-hoc subject searches; use get_news_by_topic for a predefined topic category or get_news_by_site for one publisher.

Input parameters:

- `full_data` (boolean): Return full data for each article. If False a summary should be created by setting the summarize flag
- `keyword` (string, required): Search term to find articles.
- `max_results` (integer): Maximum number of results to return.
- `period` (integer): Number of days to look back for articles.
- `summarize` (boolean): Generate a summary of the article, will first try LLM Sampling but if unavailable will use nlp

Output parameters:

- `result` (array)

### `get_news_by_location` (~145 tokens)

Find recent Google News articles about a place-focused location such as a city, state, or country. Use this when geography is the primary filter; use get_news_by_keyword for general subject searches.

Input parameters:

- `full_data` (boolean): Return full data for each article. If False a summary should be created by setting the summarize flag
- `location` (string, required): Name of city/state/country.
- `max_results` (integer): Maximum number of results to return.
- `period` (integer): Number of days to look back for articles.
- `summarize` (boolean): Generate a summary of the article, will first try LLM Sampling but if unavailable will use nlp

Output parameters:

- `result` (array)

### `get_news_by_topic` (~145 tokens)

Find recent Google News articles from a predefined Google News topic category. Use this for topic category browsing such as BUSINESS, TECHNOLOGY, or SPORTS; use get_news_by_keyword for a free-form query.

Input parameters:

- `full_data` (boolean): Return full data for each article. If False a summary should be created by setting the summarize flag
- `max_results` (integer): Maximum number of results to return.
- `period` (integer): Number of days to look back for articles.
- `summarize` (boolean): Generate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
- `topic` (string, required): Topic to search for articles.

Output parameters:

- `result` (array)

### `get_top_news` (~136 tokens)

Return general headline and top-news stories from Google News without a keyword or topic seed. Use this for a broad news snapshot; use the keyword, location, topic, or site tools when the user gives a filter.

Input parameters:

- `full_data` (boolean): Return full data for each article. If False a summary should be created by setting the summarize flag
- `max_results` (integer): Maximum number of results to return.
- `period` (integer): Number of days to look back for top articles.
- `summarize` (boolean): Generate a summary of the article, will first try LLM Sampling but if unavailable will use nlp

Output parameters:

- `result` (array)

### `get_trending_terms` (~199 tokens)

Return terms that are trending now for a geography, optionally with related news metadata. Use this for current trend discovery; use get_trends when the user wants historical interest over time for known keywords.

Input parameters:

- `full_data` (boolean): Return full data for each trend including related news stories.
- `geo` (string): Geographic target for trending terms. Supports four levels of granularity: - Worldwide: empty string '' - Country: ISO 3166-1 alpha-2 code, e.g. 'US', 'GB', 'CA' - Subdivision (state/province/region)…

Output parameters:

- `result` (array)

### `get_trends` (~187 tokens)

Return historical Google Trends interest-over-time points for one or more known keywords. Use this for trajectory and comparisons across a timeframe; values are normalized 0-100 interest scores, not absolute search volume. Use get_trending_terms for what is trending now.

Input parameters:

- `cat` (integer): Google Trends category ID; use 0 for all categories or a value from get_categories.
- `data_mode` (string): Legacy resolution hint used only when timeframe is omitted.
- `geo` (string): Geographic region code (e.g. 'US').
- `keyword` (required): Search keyword(s) to analyze; comparison lists support 1-5 keywords.
- `source` (string): Search source.
- `timeframe`: Explicit TrendsPy range, for example 'today 12-m', 'today 90-d', 'all', or 'YYYY-MM-DD YYYY-MM-DD'. Overrides data_mode when supplied.

Output parameters:

- `result` (array)

### `get_growth` (~112 tokens)

Estimate momentum for one or more known keywords across requested growth windows. Use this when percentage growth is the goal; use get_trends when the user needs the underlying historical time series.

Input parameters:

- `geo` (string): Geographic region code (e.g. 'US').
- `keyword` (required): Search keyword(s) to analyze; comparison lists support 1-5 keywords.
- `percent_growth`: Timeframes to calculate growth (e.g. ['3M', '1Y']).
- `source` (string): Search source.

Output parameters:

- `result` (array)

### `get_ranked_trends` (~99 tokens)

Return currently trending keywords ranked by week-over-week growth or volume. Use this when explicit ranked order matters; use get_top_trends for a simpler current feed and get_trends for historical series.

Input parameters:

- `geo` (string): Geographic region code (e.g. 'US').
- `limit` (integer): Maximum number of trends to return.
- `sort` (string): Field to sort by.
- `source` (string): Search source.

Output parameters:

- `result` (array)

### `get_top_trends` (~92 tokens)

Return a bounded current topic discovery feed from Google Trends RSS, including related news where available. Use this for current top or daily trends; use get_ranked_trends when explicit ranking by growth or volume matters.

Input parameters:

- `geo` (string): Geographic region code (e.g. 'US').
- `limit` (integer): Maximum number of trends to return.
- `type` (string): Type of trends feed.

Output parameters:

- `result` (array)

### `get_news_by_site` (~144 tokens)

Find recent Google News articles from one publisher domain. Use this when the user wants source-specific coverage; use get_news_by_keyword for cross-publisher subject search.

Input parameters:

- `full_data` (boolean): Return full data for each article. If False a summary should be created by setting the summarize flag
- `max_results` (integer): Maximum number of results to return.
- `period` (integer): Number of days to look back for articles.
- `site` (string, required): Domain of the news site, e.g. 'cnn.com'.
- `summarize` (boolean): Generate a summary of the article, will first try LLM Sampling but if unavailable will use nlp

Output parameters:

- `result` (array)

### `get_article_content` (~122 tokens)

Download and parse one specific news article when you already have an article URL. Use it to retrieve article text or metadata or summarize that URL; do not use it for discovery - use the news search tools instead.

Input parameters:

- `full_data` (boolean): Return full data for the article. If False a summary should be created by setting the summarize flag
- `summarize` (boolean): Generate a summary of the article, will first try LLM Sampling but if unavailable will use nlp
- `url` (string, required): The URL of the news article to download and parse.

Output parameters:

- `result`

### `get_interest_by_region` (~157 tokens)

Return geographic Google Trends interest for one or more known keywords at country, region, city, or DMA resolution. Use this to compare where demand is strongest; use get_trends for interest over time instead.

Input parameters:

- `cat` (integer): Category ID (default: 0 for all).
- `geo` (string): Geographic region code (e.g. 'US' or empty '' for worldwide).
- `gprop` (string): Google property filter.
- `inc_low_vol` (boolean): Include regions with low search volume.
- `keywords` (required): Search keyword(s) to analyze.
- `resolution` (string): Geographic resolution.
- `timeframe` (string): Timeframe for search volume analysis (e.g., 'today 12-m').

Output parameters:

- `result` (array)

### `get_related_queries` (~119 tokens)

Return top and rising literal search queries related to one seed keyword. Use this for query expansion; use get_related_topics for topic entities or get_suggestions for autocomplete candidates.

Input parameters:

- `cat` (integer): Category ID (default: 0 for all).
- `geo` (string): Geographic region code (e.g. 'US').
- `gprop` (string): Google property filter.
- `keyword` (string, required): Search keyword to analyze.
- `timeframe` (string): Timeframe for search volume analysis (e.g., 'today 12-m').

### `get_related_topics` (~116 tokens)

Return top and rising Google Trends topic entities related to one seed keyword. Use this for entity or topic expansion; use get_related_queries for literal search queries.

Input parameters:

- `cat` (integer): Category ID (default: 0 for all).
- `geo` (string): Geographic region code (e.g. 'US').
- `gprop` (string): Google property filter.
- `keyword` (string, required): Search keyword to analyze.
- `timeframe` (string): Timeframe for search volume analysis (e.g., 'today 12-m').

### `get_suggestions` (~65 tokens)

Return Google Trends autocomplete suggestions for a seed keyword. Use this for lightweight autocomplete or entity candidates; use get_related_queries when you need top or rising demand signals.

Input parameters:

- `keyword` (string, required): Query string to autocomplete.
- `language`: Language code, e.g. 'en'.

Output parameters:

- `result` (array)

### `get_categories` (~40 tokens)

Return Google Trends category IDs and names for use in the cat parameter of trend tools. Call this when a category filter is needed; do not guess category IDs.

Output parameters:

- `result` (array)

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/akzar1el-mcp-trendpulse/mcp-trendpulse#diagnostics

## Score history

- 2026-09-20: 77
- 2026-09-19: 36
- 2026-09-18: 76
- 2026-09-17: 61
- 2026-09-16: 75
- 2026-09-15: 75
- 2026-09-14: 59
- 2026-09-13: 74
- 2026-09-12: 73
- 2026-09-11: 73
- 2026-09-10: 57
- 2026-09-09: 72
- 2026-09-08: 71
- 2026-09-07: 71
- 2026-09-06: 70
- 2026-09-05: 70
- 2026-09-04: 70
- 2026-09-03: 69
- 2026-09-02: 61
- 2026-09-01: 68
- 2026-08-31: 36
- 2026-08-30: 52

## Common questions

### What is the Google News & Trends MCP server?

Google News & Trends MCP is listed in the public MCP registry as io.github.AKzar1el/mcp-trendpulse. Query Google News RSS feeds and search interest over time via Google Trends. This page covers its PyPI package (mcp-trendpulse).

### Is the Google News & Trends MCP server safe to use?

Google News & Trends MCP scores 77 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Google News & Trends MCP server expose?

Google News & Trends MCP exposes 16 tools: get_news_by_keyword, get_news_by_location, get_news_by_topic, get_top_news, get_trending_terms, and 11 more. Their descriptions and schemas cost roughly 2,024 tokens of context every time the server is loaded.

### Is the Google News & Trends MCP server still maintained?

Google News & Trends MCP is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- PyPI project: https://pypi.org/project/mcp-trendpulse/
- Socket report: https://socket.dev/pypi/package/mcp-trendpulse
- Repository: https://github.com/AKzar1el/mcp-trendpulse
- Changelog RSS feed: https://verifymcp.io/servers/akzar1el-mcp-trendpulse/mcp-trendpulse.xml
- Changelog JSON feed: https://verifymcp.io/servers/akzar1el-mcp-trendpulse/mcp-trendpulse.json
- HTML version of this page: https://verifymcp.io/servers/akzar1el-mcp-trendpulse/mcp-trendpulse
