Google News & Trends MCP

io.github.AKzar1el由 GitHub 帳號 AKzar1el 發布v0.2.46更新於 Oct 29, 2026

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

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理搜尋 Google 新聞、擷取文章正文,並分析 Google Trends 的關注度、成長動能與相關需求。

可以做什麼
  • 依關鍵字、地點、主題、發布者網域或頭條瀏覽新聞
  • 下載並解析指定文章網址,可選擇產生摘要
  • 取得目前熱門詞、熱門趨勢,以及依成長或搜尋量排序的趨勢
  • 查詢已知關鍵字的關注度走勢、自訂期間的成長與地區關注度
  • 透過相關查詢、相關主題、自動完成建議與分類 ID 擴充需求線索
適用情境
適合助理需要為選題、關鍵字、市場或內容決策補充時事背景與搜尋關注度證據的情境。也適合把頭條探索與跨地區、跨時間區間趨勢比較結合的研究流程。
執行需求
透過 uvx 從 PyPI 套件 mcp-trendpulse 以 stdio 在本機執行,需要 Python 3.11 或更新版本。對於難以擷取的頁面,可選裝 Playwright 與 Chromium。可選環境變數包括 GOOGLE_NEWS_LANGUAGE、GOOGLE_NEWS_COUNTRY、GOOGLE_TRENDS_DELAY、代理設定與 TRENDPULSE_SHARED_STATE_DIR。未宣告需要帳號或 API 金鑰。
安裝前請注意
文章擷取會向任意新聞網址發出對外網路請求,擷取到的內容應視為不可信輸入。Google Trends 數值是 0-100 的標準化關注度,並非絕對搜尋量。上游配額限制可能造成限流或冷卻等待。README 宣傳可選的付費人工簡報,但伺服器本身不需付費。不要提交代理憑證或與本機相關的 .env 檔案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Google News & Trends MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

mcp-trendpulse

[MCP] [Python] [License] [mcp-trendpulse MCP server] [MCPVault: verified]

TrendPulse is a Python Model Context Protocol (MCP) server for researching current news and search-interest trends. It combines Google News discovery and article extraction with Google Trends analysis so MCP clients can inspect what is trending, compare keyword momentum, explore related demand, and add current-news context to research workflows.

The project currently ships as a community/self-hosted MCP server and also contains the implementation for a separate hosted TrendPulse by DigestSEO surface for remote MCP clients such as ChatGPT and Codex. The hosted layer uses a smaller, goal-oriented tool surface while the community server keeps the full low-level research toolkit available to developers.

Project status: the local/community server is usable today. The DigestSEO-hosted MCP and public OpenAI plugin are not released yet and should not be treated as available endpoints.

Engineering context: TrendPulse is part of the DigestSEO MCP ecosystem. It complements mcp-gsc for Google Search Console data, mcp-geo for AI visibility, and mcp-web-validator for technical web validation. The broader architecture is documented in the DigestSEO MCP Suite engineering case study.

TrendPulse Demand Brief

Need a fast evidence check before choosing a topic, keyword, market, product angle, or content bet? Tomi offers a human-produced TrendPulse Demand Brief for EUR 49.

For one decision, the brief covers up to five keywords/phrases and two geographic markets using TrendPulse's open-source research capabilities plus current public sources: search-interest direction, relative momentum, related demand, useful news context, and three concrete implications. Target turnaround is within 24 hours after payment is confirmed and the inputs are supplied.

See the exact scope and request format, read a public sample brief, or email [email protected] with the subject TrendPulse Demand Brief [TP-RS1].

The paid brief is optional. The Community MCP remains free and unchanged, and the TP-RS1 marker is only an inbound attribution marker; no hidden telemetry is added to the MCP.

What TrendPulse can do

News research

  • Search Google News by keyword, location, topic, or publisher domain.
  • Retrieve top news stories.
  • Resolve Google News links and extract article content.
  • Fall back from normal HTTP retrieval to Playwright/Chromium for difficult pages.
  • Optionally summarize article text with MCP client sampling, with local NLP as a fallback.

Trend research

  • Retrieve current trending terms for a geographic market.
  • Pull Google Trends interest-over-time data for one or more keywords.
  • Calculate keyword growth over custom windows such as 3M or 1Y.
  • Rank live trends by volume or growth.
  • Inspect interest by country, region, city, or DMA where supported.
  • Explore related queries, related topics, suggestions, and category IDs.
  • Compare Google Search, YouTube Search, News Search, Image Search, and Google Shopping trend properties where supported by the underlying provider.

Community and hosted architecture

TrendPulse is being developed with two deliberate surfaces:

SurfacePurposeStatus
Community MCPFull Python MCP server for local use, development, self-hosting, and integrations with MCP-compatible clients.Available in this repository
TrendPulse by DigestSEOManaged remote MCP for ChatGPT/Codex and a future public OpenAI plugin with a smaller, task-oriented tool surface.In development

The community server remains useful independently. The hosted edition will reuse the same core trend-research concepts while adding the deployment, reliability, authentication, observability, and product integration needed for a managed service.

The implemented hosted tool surface is intentionally higher level than the community API and centers on goals such as:

  • discover_trends
  • analyze_keyword_trend
  • compare_keyword_trends
  • discover_related_demand
  • get_trend_context
  • find_seo_opportunities

These names describe the hosted ChatGPT Apps/MCP interface; they remain separate from the current Community MCP tool names.

Installation

Run from PyPI with uvx (recommended)

TrendPulse is published on PyPI, so the shortest install path is:

bash
uvx mcp-trendpulse

Python 3.11 or newer is required. Python 3.10 reached end-of-life in October 2026 and cannot use Pillow 13, which patches upstream image-decoder vulnerabilities. To run TrendPulse on a machine with Python 3.10 as its default, select a supported interpreter explicitly:

bash
uvx --python 3.11 mcp-trendpulse

See the security policy for the supported-runtime decision. Users on Python 3.10 must upgrade their interpreter; the new package will not install into a Python 3.10-only environment.

To run the current repository head instead of the published package:

bash
uvx --from git+https://github.com/AKzar1el/mcp-trendpulse.git mcp-trendpulse

Install with pip from a checkout

bash
git clone https://github.com/AKzar1el/mcp-trendpulse.gitcd mcp-trendpulsepython -m pip install .python -m mcp_trendpulse

Browser fallback

News/article tools can fall back to Playwright when ordinary retrieval cannot extract a usable article. Installing the Python playwright package does not install Chromium automatically.

For local use:

bash
playwright install chromium

For Linux environments that also require browser system dependencies:

bash
playwright install --with-deps chromium

Trend-only operations do not inherently require Chromium.

Client configuration

Claude Desktop and Claude Code

Claude Code plugin packaging is included in .claude-plugin/plugin.json with its MCP definition in .mcp.json. The Community MCP remains local/stdin-based and runs through uvx mcp-trendpulse.

Claude Desktop

Using the published PyPI package with uvx:

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

VS Code

Install TrendPulse in VS Code

Requires uv/uvx. The install runs the published Community MCP package from PyPI over local stdio.

For workspace-level configuration, put this in .vscode/mcp.json. The same top-level servers shape is used by the VS Code user-profile mcp.json for a global configuration.

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

ChatGPT desktop, Codex CLI, and IDE extension

OpenAI's local ChatGPT desktop and Codex clients support local stdio MCP servers and share the same MCP configuration on a Codex host. Add the published TrendPulse package once with:

bash
codex mcp add mcp-trendpulse -- uvx mcp-trendpulse

The same local server is then available to the ChatGPT desktop app, Codex CLI, and the Codex IDE extension. In ChatGPT desktop, you can also open Settings -> MCP Servers and add an STDIO server with command uvx mcp-trendpulse, then restart the app. This runs the published Community MCP package from PyPI; it does not use the unreleased hosted TrendPulse endpoint. ChatGPT on the web is separate and does not read this local Codex MCP configuration.

Cursor and portable Agent Plugins

This repository includes an Agent Plugins 1.0 manifest at the repository root. Compatible clients such as Cursor and GitHub Copilot can load the same portable plugin.json + mcp.json package.

Cursor also supports global and project MCP configuration. Add the server to the relevant mcp.json configuration:

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

Devin CLI and Devin Desktop

Devin CLI plugins can load Claude plugin packages and Agent Plugins 1.0 packages directly from GitHub. TrendPulse already ships both compatible layouts (.claude-plugin/plugin.json + .mcp.json, and root plugin.json + mcp.json). Install it with:

bash
devin plugins install AKzar1el/mcp-trendpulse

Devin requires a signed-in CLI session to manage plugins. The installed TrendPulse plugin starts the published Community MCP locally over stdio with uvx mcp-trendpulse; it does not use the unreleased hosted TrendPulse endpoint. The same plugin is available in Devin Desktop after installation.

Kiro

[Add to Kiro]

Requires uv/uvx. The install runs the published Community MCP package from PyPI; it does not use the unreleased hosted surface.

Privacy: TrendPulse Community MCP Privacy Notice · Support: [email protected]

LM Studio

Add TrendPulse to LM Studio

Requires uv/uvx. LM Studio runs the published Community MCP package locally over stdio; no hosted TrendPulse service is required.

ChatGPT web and other cloud MCP clients

The repository now includes a dedicated stateless Streamable HTTP ASGI entry point at mcp_trendpulse.asgi:app. This is separate from the Community stdio entry point, which remains unchanged.

For controlled local/private testing you can run the ASGI app with Uvicorn or use the provided container. See deploy/README.md for the hardened container, Host/Origin allowlists, Chromium sandbox requirements, health/readiness endpoints, and reverse-proxy notes.

The DigestSEO-hosted endpoint and public ChatGPT app are still not released. Hosted deployments now support fail-closed Clerk OAuth authentication; do not expose the remote transport publicly unless Clerk issuer/JWKS/audience settings, the public base URL, and the Host/Origin allowlists are configured for that deployment.

Configuration

TrendPulse loads environment variables from the process environment and from a local .env file when present.

Useful variables include:

env
HTTP_PROXY=http://your-proxy-address:portHTTPS_PROXY=http://your-proxy-address:portGOOGLE_NEWS_LANGUAGE=enGOOGLE_NEWS_COUNTRY=USGOOGLE_TRENDS_DELAY=2.0# Optional, absolute, private directory shared by TrendPulse processes on one host:# TRENDPULSE_SHARED_STATE_DIR=/home/you/.cache/mcp-trendpulse

GOOGLE_NEWS_LANGUAGE and GOOGLE_NEWS_COUNTRY select the Google News language/edition used by all news-discovery tools; defaults remain en and US. GOOGLE_TRENDS_DELAY (default 2 seconds) paces Google Trends requests across all TrendSpy worker threads in one process, including the Trending Now batch endpoint. Identical interest-over-time queries are reused from a bounded, 90-second in-memory cache; concurrent duplicates share one provider request. After an upstream 429 or detected embedded quota rejection, the process pauses new Trends calls with bounded exponential cooldown and honors Retry-After when supplied. An already-cached series may still be returned during cooldown. The process also emits privacy-safe aggregate provider counters and latency buckets (see docs/operations.md). By default, coordination is process-local; it cannot increase or bypass Google's unpublished quota or throttle Google News article fetching. Proxy variables can be useful for legitimate network configuration but do not guarantee a higher upstream quota.

For multiple local agents on one computer, set the optional TRENDPULSE_SHARED_STATE_DIR to the same absolute, user-private directory in every TrendPulse process. This adds SQLite-backed inter-process pacing, a maximum 12-second request queue, shared 429 cooldown, and a 256-entry cache of numeric, indexed Google Trends time series. Cache keys are HMAC-hashed with a private directory key; query text and news articles are not saved. Long-window series live at most two hours, annual windows 90 minutes, shorter windows 30 minutes, and near-real-time series two minutes. Use a local disk, not a network drive or independent container filesystems. If shared state is unavailable, the existing in-process protections continue operating and emit a sanitized warning. The feature is off by default; it cannot raise Google's provider quotas or provide coordination across separate hosts.

Remote deployments also support TRENDPULSE_HTTP_PATH, TRENDPULSE_HTTP_ALLOWED_HOSTS, TRENDPULSE_HTTP_ALLOWED_ORIGINS, and TRENDPULSE_BROWSER_SANDBOX. The container enables Chromium sandboxing explicitly; local Community runs retain the Playwright-compatible default unless you opt in.

Do not commit secrets, private proxy credentials, or machine-specific .env files.

MCP tools

The community MCP server currently exposes 16 tools.

News tools

ToolPurpose
get_news_by_keywordFind recent news articles matching a keyword, or set headlines_only=true for clearly labeled Google News RSS headline metadata without publisher article extraction or summaries.
get_news_by_locationFind recent news associated with a location, or set headlines_only=true for clearly labeled RSS location headlines without publisher article extraction or summaries.
get_news_by_topicFind recent news for a supported Google News topic, or set headlines_only=true for explicitly labeled RSS topic headlines without publisher article extraction or summaries.
get_top_newsRetrieve top Google News stories, or set headlines_only=true for explicitly labeled RSS headline metadata without article extraction or summaries.
get_news_by_siteFind recent news from a specific publisher domain, or set headlines_only=true for clearly labeled RSS publisher headlines without publisher article extraction or summaries.
get_article_contentDownload, validate, extract, and optionally summarize one article URL.

Trend tools

ToolPurpose
get_trending_termsRetrieve current trending terms for a geographic target.
get_trendsRetrieve interest-over-time points for one or more keywords.
get_growthCalculate search-interest growth over requested windows.
get_ranked_trendsRank current trends by growth or volume.
get_top_trendsRetrieve a top-trends feed without supplying a keyword.
get_interest_by_regionCompare keyword interest across geographic regions.
get_related_queriesRetrieve top and rising related search queries.
get_related_topicsRetrieve top and rising related Google Trends topics.
get_suggestionsResolve autocomplete/topic suggestions for a query.
get_categoriesSearch or page through Google Trends category IDs and names before using cat.

Example: explicit trend window

get_trends accepts an explicit timeframe. Supplying one is preferable when you need reproducible comparisons.

json
{  "keyword": ["technical SEO audit", "AI SEO audit"],  "geo": "US",  "source": "google search",  "timeframe": "today 12-m",  "cat": 0}

Supported provider ranges include standard windows such as today 12-m and today 5-y, relative windows such as today 90-d, all, and exact date ranges such as 2021-01-01 2026-01-01.

Google Trends values are normalized interest scores. Do not interpret a 0-100 interest series as absolute search volume.

CLI

The separate Click CLI is included in the public PyPI package. Run its published commands without a source checkout:

bash
uvx --python 3.11 --from mcp-trendpulse mcp-trendpulse-cli --help

Published CLI (v0.2.43+): The site command and the --headlines-only options for keyword, location, topic, top, and site are available in the published PyPI package. Run the stable release rather than repository HEAD:

bash
uvx --python 3.11 --from mcp-trendpulse mcp-trendpulse-cli keyword "OpenAI" --headlines-only

From a local source checkout, uv run mcp-trendpulse-cli --help uses that checkout. The opt-in headline-only commands return genuine Google News RSS titles, publishers, dates, and Google News links labeled as metadata, not extracted article bodies. Default news commands continue to attempt publisher-article extraction.

The operator-only bigquery-sql command generates a fixed-table, partition-filtered SQL preview for Google's official public Top 25 / Rising datasets. It never submits a job or incurs API usage automatically. See docs/bigquery-trends.md for sandbox, query-cost guardrails, and market-coverage limitations.

watch provides opt-in local manual threshold rules and idempotent evaluation of user-supplied normalized interest evidence; it does not poll providers, schedule runs, or send external alerts. See docs/trend-watch.md before using the commands.

CLI commands available since v0.2.43 (also on GitHub main):

text
brief-packkeywordlocationsitetoptopictrending

brief-pack emits the deterministic trend/growth evidence table used for Demand Brief fulfillment. It intentionally leaves the final interpretation and recommendations to the human-produced brief.

The CLI and MCP surfaces are intentionally documented separately because they do not expose the same command set.

Development

Install the project with its development dependencies using your preferred Python environment, then run the unit suite:

bash
python -m pytest

The default pytest configuration excludes live integration tests.

Run live provider tests explicitly with:

bash
python -m pytest tests/integration -m integration

Browser-marked integration tests require Playwright Chromium to be installed.

Run Ruff checks with:

bash
ruff check .

MCP Inspector

Run the published-from-GitHub server through the MCP Inspector:

bash
npx @modelcontextprotocol/inspector uvx --from git+https://github.com/AKzar1el/mcp-trendpulse.git mcp-trendpulse

For a local checkout:

bash
npx @modelcontextprotocol/inspector uv run mcp-trendpulse

Packaging

A GitHub Actions workflow builds and publishes Python distributions through PyPI Trusted Publishing when a GitHub release is published. The current stable package can be run with uvx mcp-trendpulse; use the GitHub uvx --from ... form only when you intentionally want repository-head code.

Security notes

Article retrieval is an outbound network feature and is treated as untrusted input. The implementation validates HTTP(S) targets, rejects private and non-routable destinations, checks redirect targets, enforces response-size limits, and applies browser-route validation when Playwright is used.

If you deploy TrendPulse remotely, retain these controls and add deployment-level rate limiting, request timeouts, observability, and resource limits rather than relying only on application defaults.

For responsible disclosure instructions, see SECURITY.md.

Roadmap

Current production-readiness priorities are:

  1. Keep documentation, packaging metadata, and generated MCP manifests coherent with the live tool surface.
  2. Keep CI, package validation, and dependency/runtime coverage aligned with what users actually install.
  3. Preserve provider boundaries so upstream sources can be changed without rewriting the MCP layer.
  4. Harden and operate the existing stateless Streamable HTTP transport while preserving local stdio operation.
  5. Refine the existing smaller hosted tool surface for ChatGPT/Codex against real deployment and buyer evidence.
  6. Complete provider authorization and integrate the hosted service with the DigestSEO application and operational stack.
  7. Package and test the hosted MCP as an OpenAI plugin only after the managed service is production-ready.

License

MIT. See LICENSE.

來源:README.md,提交 d538b69

工具

16

get_news_by_keyword

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.

輸入參數periodkeyword必填full_datasummarizemax_resultsheadlines_only

get_news_by_location

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.

輸入參數periodlocation必填full_datasummarizemax_resultsheadlines_only

get_news_by_topic

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.

輸入參數topic必填periodfull_datasummarizemax_resultsheadlines_only

get_top_news

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.

輸入參數periodfull_datasummarizemax_resultsheadlines_only

get_growth

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.

輸入參數geosourcekeyword必填percent_growth

get_news_by_site

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.

輸入參數site必填periodfull_datasummarizemax_resultsheadlines_only

get_article_content

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.

輸入參數url必填full_datasummarize

get_interest_by_region

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.

輸入參數catgeogpropkeywords必填timeframeresolutioninc_low_vol

get_suggestions

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.

輸入參數keyword必填language

get_categories

Return a bounded page of Google Trends category IDs and names for use in the cat parameter of trend tools. Use query to find categories by name and offset/limit to page through broader results; do not guess category IDs.

輸入參數limitqueryoffset

版本歷史

19
  1. v0.2.46最新Oct 26, 2026
  2. v0.2.43Oct 26, 2026
  3. v0.2.42Oct 25, 2026
  4. v0.2.40Oct 25, 2026
  5. v0.2.37Sep 24, 2026
  6. v0.2.35Sep 24, 2026
  7. v0.2.34Sep 24, 2026
  8. v0.2.32Sep 23, 2026
  9. v0.2.31Sep 23, 2026
  10. v0.2.29Sep 22, 2026
  11. v0.2.28Sep 22, 2026
  12. v0.2.27Sep 22, 2026
  13. v0.2.26Sep 21, 2026
  14. v0.2.25Sep 20, 2026
  15. v0.2.22Sep 20, 2026
  16. v0.2.20Sep 20, 2026
  17. v0.2.18Sep 19, 2026
  18. v0.2.14Sep 19, 2026
  19. v0.2.13Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分