关于 Google News & Trends MCP
TrendPulse 是面向需要时事新闻和搜索兴趣数据的开发者与研究人员的 Python MCP 服务。它结合 Google News 新闻发现和文章提取与 Google Trends 分析;托管服务仍在开发中。
主要功能
- 01按关键词和地区搜索 Google News
- 02获取新闻并提取文章文本
- 03分析关键词随时间变化的搜索兴趣
- 04探索相关查询、主题和需求
- 05比较受支持属性中的趋势数据
适用场景
- 01为研究补充当前新闻背景
- 02比较不同时间窗口的关键词势头
- 03查找内容主题的相关搜索
- 04查看指定市场的趋势
MCP 相关
可用的 Community MCP 通过 stdio 在本机运行,并向兼容 MCP 的客户端提供完整研究工具集。独立的托管版 TrendPulse 正在开发,尚未发布。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-trendpulse
TrendPulse 是一个 Python Model Context Protocol(MCP)服务,用于研究当前新闻和搜索热度趋势。它结合 Google News 的内容发现与文章提取功能,以及 Google Trends 分析,让 MCP 客户端能够查看热门趋势、比较关键词热度变化、探索相关需求,并为研究工作流补充当前新闻背景。
该项目目前以社区版/可自托管 MCP 服务的形式提供,同时也包含面向 ChatGPT 和 Codex 等远程 MCP 客户端的独立托管版 TrendPulse by DigestSEO 的实现。托管版采用更精简、以目标为导向的工具界面,而社区版则继续为开发者提供完整的底层研究工具集。
**项目状态:**本地/社区版服务目前可用。DigestSEO 托管的 MCP 和公开的 OpenAI 插件尚未发布,请勿将其视为可用端点。
工程背景:TrendPulse 是 DigestSEO MCP 生态系统的一部分。它与用于 Google Search Console 数据的 mcp-gsc、用于 AI 可见度的 mcp-geo 以及用于技术网站验证的 mcp-web-validator 相辅相成。更广泛的架构详见 DigestSEO MCP Suite 工程案例研究。
TrendPulse 需求简报
在选择主题、关键词、市场、产品方向或内容投入之前,需要快速核实相关依据?Tomi 提供一份由人工制作的 TrendPulse 需求简报,价格为 49 欧元。
针对一项决策,这份简报涵盖最多五个关键词/短语和两个地理市场,并使用 TrendPulse 的开源研究能力以及当前公开来源,提供搜索热度走向、相对热度变化、相关需求、有用的新闻背景,以及三项具体启示。付款确认且收到所需信息后,目标交付时间为 24 小时内。
查看确切的服务范围和需求格式,阅读公开的简报样例,或发送邮件至 [email protected],主题为 TrendPulse Demand Brief [TP-RS1]。
付费简报为可选服务。Community MCP 仍免费且保持不变,TP-RS1 标记仅用于入站归因;MCP 中没有添加任何隐藏遥测。
TrendPulse 的功能
新闻研究
- 按关键词、地点、主题或发布方域名搜索 Google News。
- 获取热门新闻报道。
- 解析 Google News 链接并提取文章内容。
- 普通 HTTP 获取遇到困难时,改用 Playwright/Chromium。
- 可通过 MCP 客户端采样来总结文章文本,并在必要时使用本地 NLP 作为后备方案。
趋势研究
- 获取特定地理市场当前的热门词。
- 提取一个或多个关键词的 Google Trends 随时间变化的热度数据。
- 计算自定义时间窗口(如 3M 或 1Y)内的关键词增长情况。
- 按搜索量或增长率对实时趋势进行排名。
- 在支持的情况下,按国家、地区、城市或 DMA 查看热度。
- 探索相关查询、相关主题、建议和类别 ID。
- 在底层提供方支持的情况下,比较 Google Search、YouTube Search、News Search、Image Search 和 Google Shopping 趋势属性。
社区版与托管架构
TrendPulse 正在围绕两个明确的版本进行开发:
| 版本 | 用途 | 状态 |
|---|---|---|
| Community MCP | 完整的 Python MCP 服务,可用于本地使用、开发、自托管以及与兼容 MCP 的客户端集成。 | 可在此代码库中使用 |
| TrendPulse by DigestSEO | 面向 ChatGPT/Codex 的托管远程 MCP,以及未来面向公众的 OpenAI 插件,提供更精简、以任务为导向的工具集。 | 开发中 |
社区版服务可独立使用。托管版将沿用相同的核心趋势研究概念,同时增加托管服务所需的部署、可靠性、身份验证、可观测性和产品集成能力。
已实现的托管工具集刻意采用比社区版 API 更高层的抽象,围绕以下目标展开:
discover_trendsanalyze_keyword_trendcompare_keyword_trendsdiscover_related_demandget_trend_contextfind_seo_opportunities
这些名称描述的是托管版 ChatGPT Apps/MCP 接口;它们与当前 Community MCP 工具名称相互独立。
安装
使用 uvx 从 PyPI 运行(推荐)
TrendPulse 已发布到 PyPI,因此最快捷的安装方式是:
uvx mcp-trendpulse
需要 Python 3.11 或更高版本。 Python 3.10 已于 2026 年 10 月结束生命周期,且无法使用 Pillow 13,而 Pillow 13 修复了上游图像解码器漏洞。如果要在默认使用 Python 3.10 的计算机上运行 TrendPulse,请明确指定受支持的解释器:
uvx --python 3.11 mcp-trendpulse
关于受支持运行时版本的决定,请参阅安全策略。使用 Python 3.10 的用户必须升级解释器;新软件包无法安装到仅有 Python 3.10 的环境中。
若要运行当前代码库的最新版本,而非已发布的软件包:
uvx --from git+https://github.com/AKzar1el/mcp-trendpulse.git mcp-trendpulse
使用 pip 从检出目录安装
git clone https://github.com/AKzar1el/mcp-trendpulse.git
cd mcp-trendpulse
python -m pip install .
python -m mcp_trendpulse
浏览器回退
当常规检索无法提取可用文章时,新闻/文章工具可以回退到 Playwright。安装 Python playwright 软件包不会自动安装 Chromium。
本地使用时:
playwright install chromium
对于还需要浏览器系统依赖项的 Linux 环境:
playwright install --with-deps chromium
纯趋势操作本身不需要 Chromium。
客户端配置
Claude Desktop 和 Claude Code
Claude Code 插件打包配置包含在 .claude-plugin/plugin.json 中,其 MCP 定义位于 .mcp.json。Community MCP 仍基于本地/stdin 运行,并通过 uvx mcp-trendpulse 启动。
Claude Desktop
使用已发布到 PyPI 的软件包,通过 uvx 运行:
{
"mcpServers": {
"mcp-trendpulse": {
"command": "uvx",
"args": ["mcp-trendpulse"]
}
}
}
VS Code
需要 uv/uvx。安装程序会通过本地 stdio 运行从 PyPI 发布的 Community MCP 软件包。
如需工作区级配置,请将以下内容放入 .vscode/mcp.json。VS Code 用户配置文件中的 mcp.json 也使用相同的顶层 servers 结构来进行全局配置。
{
"servers": {
"mcp-trendpulse": {
"command": "uvx",
"args": ["mcp-trendpulse"]
}
}
}
ChatGPT 桌面应用、Codex CLI 和 IDE 扩展
OpenAI 的本地 ChatGPT 桌面应用和 Codex 客户端支持本地 stdio MCP 服务,并在 Codex 主机上共用相同的 MCP 配置。使用以下命令添加已发布的 TrendPulse 软件包:
codex mcp add mcp-trendpulse -- uvx mcp-trendpulse
随后,ChatGPT 桌面应用、Codex CLI 和 Codex IDE 扩展都可以使用同一个本地服务。在 ChatGPT 桌面应用中,你也可以打开 Settings -> MCP Servers,添加一个命令为 uvx mcp-trendpulse 的 STDIO 服务,然后重启应用。这会运行从 PyPI 发布的 Community MCP 软件包;它不会使用尚未发布的托管 TrendPulse 端点。ChatGPT 网页版是独立的,不会读取此本地 Codex MCP 配置。
Cursor 和可移植 Agent 插件
此仓库在根目录中包含 Agent Plugins 1.0 清单。Cursor 和 GitHub Copilot 等兼容客户端可以加载同一个可移植的 plugin.json + mcp.json 软件包。
Cursor 也支持全局和项目级 MCP 配置。将服务添加到相关的 mcp.json 配置中:
{
"mcpServers": {
"mcp-trendpulse": {
"command": "uvx",
"args": ["mcp-trendpulse"]
}
}
}
Devin CLI 和 Devin 桌面应用
Devin CLI 插件可以直接从 GitHub 加载 Claude 插件软件包和 Agent Plugins 1.0 软件包。TrendPulse 已包含这两种兼容布局(.claude-plugin/plugin.json + .mcp.json,以及根目录下的 plugin.json + mcp.json)。使用以下命令安装:
devin plugins install AKzar1el/mcp-trendpulse
Devin 需要 CLI 会话处于登录状态才能管理插件。安装后的 TrendPulse 插件会通过 uvx mcp-trendpulse,在本地通过 stdio 启动已发布的 Community MCP;它不会使用尚未发布的托管 TrendPulse 端点。安装后,Devin 桌面应用也可以使用同一插件。
Kiro
需要 uv/uvx。安装会运行从 PyPI 发布的 Community MCP 软件包;它不会使用尚未发布的托管服务。
隐私:TrendPulse Community MCP 隐私声明 · 支持:[email protected]
LM Studio
需要 uv/uvx。LM Studio 会在本地通过 stdio 运行已发布的 Community MCP 软件包;无需托管 TrendPulse 服务。
ChatGPT 网页版和其他云端 MCP 客户端
此仓库现在包含一个专用的无状态 Streamable HTTP ASGI 入口点 mcp_trendpulse.asgi:app。它与 Community stdio 入口点相互独立,后者保持不变。
如需受控的本地/私有测试,可以使用 Uvicorn 运行 ASGI 应用,或使用提供的容器。有关加固容器、Host/Origin 允许列表、Chromium 沙箱要求、健康/就绪端点以及反向代理说明,请参阅 deploy/README.md。
DigestSEO 托管端点和公开的 ChatGPT 应用仍然尚未发布。托管部署现在支持失败时默认拒绝的 Clerk OAuth 身份验证;除非已针对相应部署配置 Clerk issuer/JWKS/audience 设置、公开基址以及 Host/Origin 允许列表,否则不要公开远程传输服务。
配置
TrendPulse 从进程环境和本地 .env 文件(如果存在)中加载环境变量。
常用变量包括:
HTTP_PROXY=http://your-proxy-address:port
HTTPS_PROXY=http://your-proxy-address:port
GOOGLE_NEWS_LANGUAGE=en
GOOGLE_NEWS_COUNTRY=US
GOOGLE_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 和 GOOGLE_NEWS_COUNTRY 用于选择所有新闻发现工具使用的 Google News 语言/版本;默认值仍为 en 和 US。GOOGLE_TRENDS_DELAY(默认 2 秒)用于控制 Google Trends 请求的频率,范围涵盖单个进程中的所有 TrendSpy 工作线程,包括 Trending Now 批量端点。相同的按时间查询兴趣度请求会从有界的 90 秒内存缓存中复用;并发的重复请求会共用一次服务提供方请求。上游返回 429 或检测到嵌入式配额拒绝后,进程会通过有界的指数冷却暂停新的 Trends 调用,并在提供 Retry-After 时遵循该值。冷却期间仍可能返回已缓存的序列。进程还会输出保护隐私的服务提供方聚合计数器和延迟分桶数据(参见 docs/operations.md)。默认情况下,协调仅限于进程内部;它无法提高或绕过 Google 未公开的配额,也不会限制 Google News 文章抓取。代理变量可用于合法的网络配置,但无法保证上游配额会提高。
对于同一台计算机上的多个本地 Agent,请在每个 TrendPulse 进程中将可选的 TRENDPULSE_SHARED_STATE_DIR 设置为相同的绝对路径,且该目录仅限当前用户访问。这将启用基于 SQLite 的进程间请求频率控制、最长 12 秒的请求队列、共享的 429 冷却,以及一个包含 256 条数字型、带索引的 Google Trends 时间序列的缓存。缓存键使用私有目录密钥进行 HMAC 哈希;不会保存查询文本和新闻文章。长时间窗口的序列最多保存两小时,年度窗口保存 90 分钟,较短窗口保存 30 分钟,接近实时的序列保存两分钟。请使用本地磁盘,不要使用网络驱动器或彼此独立的容器文件系统。如果共享状态不可用,现有的进程内保护仍会继续运行,并发出经过清理的警告。此功能默认关闭;它无法提高 Google 服务提供方的配额,也无法协调不同主机之间的请求。
远程部署还支持 TRENDPULSE_HTTP_PATH、TRENDPULSE_HTTP_ALLOWED_HOSTS、TRENDPULSE_HTTP_ALLOWED_ORIGINS 和 TRENDPULSE_BROWSER_SANDBOX。容器会显式启用 Chromium 沙箱;本地 Community 运行则保留与 Playwright 兼容的默认设置,除非你选择启用沙箱。
不要提交机密、私有代理凭据或特定于机器的 .env 文件。
MCP 工具
Community MCP 服务目前提供 16 个工具。
新闻工具
| 工具 | 用途 |
|---|---|
get_news_by_keyword | 查找与关键词匹配的近期新闻文章;也可以设置 headlines_only=true,仅获取明确标注的 Google News RSS 标题元数据,不提取发布方文章内容或生成摘要。 |
get_news_by_location | 查找与某个地点相关的近期新闻;也可以设置 headlines_only=true,仅获取明确标注的 RSS 地点新闻标题,不提取发布方文章内容或生成摘要。 |
get_news_by_topic | 查找受支持的 Google News 主题的近期新闻;也可以设置 headlines_only=true,仅获取明确标注的 RSS 主题新闻标题,不提取发布方文章内容或生成摘要。 |
get_top_news | 获取 Google News 热门报道;也可以设置 headlines_only=true,仅获取明确标注的 RSS 标题元数据,不提取文章内容或生成摘要。 |
get_news_by_site | 查找来自特定发布方域名的近期新闻;也可以设置 headlines_only=true,仅获取明确标注的 RSS 发布方新闻标题,不提取发布方文章内容或生成摘要。 |
get_article_content | 下载、验证并提取一个文章 URL 的内容,并可选择生成摘要。 |
趋势工具
| 工具 | 用途 |
|---|---|
get_trending_terms | 获取指定地理区域当前的热门词条。 |
get_trends | 获取一个或多个关键词随时间变化的热度数据点。 |
get_growth | 计算所请求时间窗口内的搜索热度增长情况。 |
get_ranked_trends | 按增长率或搜索量对当前趋势进行排名。 |
get_top_trends | 获取热门趋势动态,无需提供关键词。 |
get_interest_by_region | 比较关键词在不同地理区域的热度。 |
get_related_queries | 获取热门和上升中的相关搜索查询。 |
get_related_topics | 获取热门和上升中的相关 Google Trends 主题。 |
get_suggestions | 根据查询解析自动补全/主题建议。 |
get_categories | 在使用 cat 之前,搜索或分页浏览 Google Trends 类别 ID 和名称。 |
示例:明确指定趋势时间窗口
get_trends 接受明确指定的 timeframe。如需进行可复现的比较,建议提供该参数。
{
"keyword": ["technical SEO audit", "AI SEO audit"],
"geo": "US",
"source": "google search",
"timeframe": "today 12-m",
"cat": 0
}
支持的提供方时间范围包括标准窗口(如 today 12-m 和 today 5-y)、相对窗口(如 today 90-d)、all,以及精确日期范围(如 2021-01-01 2026-01-01)。
Google Trends 的数值是经过标准化的热度分数。请勿将 0-100 的热度序列解读为绝对搜索量。
CLI
独立的 Click CLI 已包含在公开发布的 PyPI 软件包中。无需检出源代码即可运行已发布的命令:
uvx --python 3.11 --from mcp-trendpulse mcp-trendpulse-cli --help
已发布的 CLI(v0.2.43+): site 命令,以及 keyword、location、topic、top 和 site 的 --headlines-only 选项,均可在公开发布的 PyPI 软件包中使用。请运行稳定版,而非代码仓库的 HEAD:
uvx --python 3.11 --from mcp-trendpulse mcp-trendpulse-cli keyword "OpenAI" --headlines-only
在本地源代码检出目录中,uv run mcp-trendpulse-cli --help 使用该检出版本。选择启用的仅标题命令会返回真实的 Google News RSS 标题、发布方、日期和 Google News 链接,并将其标记为元数据,而不是提取的文章正文。默认新闻命令仍会尝试提取发布方的文章内容。
仅供运营人员使用的 bigquery-sql 命令会为 Google 官方公共 Top 25/Rising 数据集生成固定表、带分区筛选条件的 SQL 预览。它绝不会提交作业,也不会自动产生 API 用量。沙盒环境、查询费用防护措施和市场覆盖范围限制,请参阅 docs/bigquery-trends.md。
watch 提供可选的本地手动阈值规则,并可幂等地评估用户提供的标准化热度数据;它不会轮询提供方、安排运行或发送外部提醒。使用这些命令前,请参阅 docs/trend-watch.md。
自 v0.2.43 起提供的 CLI 命令(GitHub main 上也可用):
brief-pack
keyword
location
site
top
topic
trending
brief-pack 会输出用于完成需求简报的确定性趋势/增长证据表。它有意将最终解读和建议留给人工撰写的简报。
CLI 和 MCP 界面分别记录,是因为二者提供的命令集并不相同。
开发
使用你偏好的 Python 环境安装项目及其开发依赖,然后运行单元测试套件:
python -m pytest
默认的 pytest 配置会排除实时集成测试。
如需运行实时提供方测试,请明确执行:
python -m pytest tests/integration -m integration
带有浏览器标记的集成测试要求已安装 Playwright Chromium。
运行 Ruff 检查:
ruff check .
MCP Inspector
通过 MCP Inspector 运行从 GitHub 发布的服务:
npx @modelcontextprotocol/inspector uvx --from git+https://github.com/AKzar1el/mcp-trendpulse.git mcp-trendpulse
对于本地检出版本:
npx @modelcontextprotocol/inspector uv run mcp-trendpulse
打包
GitHub Actions 工作流会在发布 GitHub Release 时,通过 PyPI Trusted Publishing 构建并发布 Python 发行包。当前稳定版软件包可使用 uvx mcp-trendpulse 运行;只有在有意使用代码仓库 HEAD 中的代码时,才使用 GitHub 的 uvx --from ... 形式。
安全说明
文章检索是一项出站网络功能,其输入一律视为不可信内容。实现会验证 HTTP(S) 目标、拒绝私有和不可路由的目标、检查重定向目标、强制执行响应大小限制,并在使用 Playwright 时应用浏览器路由验证。
如果你要远程部署 TrendPulse,请保留这些控制措施,并添加部署级别的速率限制、请求超时、可观测性和资源限制,而不要只依赖应用默认设置。
负责任披露的说明请参见 SECURITY.md。
路线图
当前面向生产就绪的优先事项:
- 确保文档、打包元数据和生成的 MCP 清单与现有工具保持一致。
- 确保 CI、软件包验证以及依赖项和运行时覆盖范围与用户实际安装的内容保持一致。
- 保持提供方边界,以便更改上游来源时无需重写 MCP 层。
- 在保留本地 stdio 运行方式的同时,加固并运维现有的无状态 Streamable HTTP 传输。
- 根据真实的部署情况和买家反馈,优化面向 ChatGPT/Codex 的现有精简托管工具集。
- 完成提供方授权,并将托管服务与 DigestSEO 应用及其运维技术栈集成。
- 仅在托管服务达到生产就绪状态后,才将托管 MCP 打包为 OpenAI 插件并进行测试。
许可证
MIT。请参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。