在信息爆炸的时代,如何从海量热点中精准获取有价值的信息成为核心挑战。TrendRadar 项目通过创新的 MCP(Model Context Protocol)协议实现多平台热点聚合与 AI 分析,为舆情监控和新闻分析提供了工程化解决方案。
技术背景与问题重构
传统信息获取模式存在两大痛点:被动算法绑架和信息过载。用户被各平台的推荐算法牵着走,接收大量无关信息,同时分散在多个平台的热搜缺乏统一评估标准。TrendRadar 将问题重构为多源数据聚合 + 智能筛选 + AI 分析的三层架构。
项目数据源基于newsnow项目,支持 35 个主流平台,包括知乎、抖音、B 站、华尔街见闻、财联社等,覆盖社交媒体、新闻资讯、财经数据等多个维度。
五层架构设计
1. 数据聚合层(Data Aggregation Layer)
# 支持的平台配置示例
platforms:
- id: "zhihu" # 知乎
name: "知乎"
- id: "douyin" # 抖音
name: "抖音"
- id: "weibo" # 微博
name: "微博"
- id: "wallstreetcn" # 华尔街见闻
name: "华尔街见闻"
采用模块化平台适配设计,每个平台作为独立数据源,通过统一的 API 接口获取热搜数据。关键设计原则是解耦性强,新增平台只需配置相应适配器,不影响整体架构。
2. 智能筛选引擎(Intelligent Filtering Engine)
实现三层关键词过滤机制:
基础语法规则:
- 普通词:包含任意匹配即捕获(如 "华为")
- 必须词
+关键词:必须同时包含(如 "+ 发布" 限制新品发布) - 过滤词
!关键词:包含即排除(如 "! 广告" 排除营销内容)
** 词组化功能:** 通过空行分隔实现多主题独立统计
# 示例配置
iPhone # 第一组:手机新品类
华为
OPPO
+发布
A股 # 第二组:股市行情类
上证
深证
+涨跌
!预测
世界杯 # 第三组:足球赛事类
欧洲杯
亚洲杯
+比赛
3. 个性化算法层(Personalized Algorithm Layer)
基于多因子权重模型重新排序各平台热搜:
核心权重公式:
- 排名权重(rank_weight):60% - 看重平台热搜位置
- 频次权重(frequency_weight):30% - 关注持续热度
- 质量权重(hotness_weight):10% - 考虑排名稳定性
场景化配置:
# 追实时热点型(自媒体/营销)
weight:
rank_weight: 0.8
frequency_weight: 0.1
hotness_weight: 0.1
# 追深度话题型(投资/研究)
weight:
rank_weight: 0.4
frequency_weight: 0.5
hotness_weight: 0.1
4. MCP AI 分析层(MCP AI Analysis Layer)
基于标准 MCP 协议实现 13 种分析工具:
工具分类架构:
- 基础查询:get_latest_news、get_news_by_date、get_trending_topics
- 智能检索:search_news、search_related_news_history
- 高级分析:analyze_topic_trend、analyze_data_insights、analyze_sentiment、find_similar_news、generate_summary_report
- 系统管理:get_current_config、get_system_status、trigger_crawl
传输层实现:
- HTTP 模式:标准 HTTP 服务(端口 3333),适合远程客户端
- STDIO 模式:本地进程间通信,适合桌面 IDE 集成
5. 多渠道推送层(Multi-Channel Push Layer)
支持 6 种推送渠道的工程化集成:
推送配置矩阵:
- 企业微信 / 飞书 / 钉钉:基于 Webhook 的即时推送
- Telegram:Bot API 集成,支持分批推送
- 邮件:支持主流邮箱服务商,SMTP 自动识别
- ntfy:开源推送方案,支持自托管部署
时间窗口控制:
push_window:
enabled: true
time_range:
start: "09:00" # 工作时间推送
end: "18:00"
daily_only: true # 每天仅推送一次
部署与工程化参数
Docker 环境变量覆盖机制
# 核心配置项环境变量
ENABLE_CRAWLER=true # 启用爬虫
REPORT_MODE=filtered # 报告模式
PUSH_WINDOW_ENABLED=true # 推送时间窗口
PUSH_WINDOW_START=09:00 # 推送开始时间
PUSH_WINDOW_END=18:00 # 推送结束时间
MCP 客户端集成配置
Claude Desktop 配置:
{
"mcpServers": {
"trendradar": {
"command": "uv",
"args": ["--directory", "/path/to/TrendRadar", "run", "python", "-m", "mcp_server.server"],
"env": {},
"disabled": false
}
}
}
HTTP 模式(推荐):
# 启动服务
./start-http.sh
# 服务地址:http://localhost:3333/mcp
技术价值与架构创新
TrendRadar 的核心价值在于将被动信息消费转化为主动精准获取。通过跨平台统一算法,解决了各平台热搜无法横向比较的问题。AI 对话分析功能让复杂的新闻数据挖掘变得自然直观,用户可以用 "分析最近 7 天特斯拉的热度变化趋势" 这样的自然语言查询历史数据。
工程化亮点:
- 解耦架构:数据源、算法、分析三层独立演进
- 配置驱动:通过配置文件而非代码修改实现个性化
- 多协议支持:HTTP/STDIO 双模式适配不同使用场景
- 快速部署:30 秒 GitHub Pages + 1 分钟手机通知的工程化体验
这种基于 MCP 协议的多平台聚合架构为 AI 辅助的信息分析提供了新的范式,展示了 AI 在解决信息过载问题上的工程化路径。随着 MCP 协议的普及,类似架构将成为 AI 驱动的数据分析平台的标准模式。
参考资料:
- TrendRadar GitHub 项目:https://github.com/sansan0/TrendRadar
- newsnow 数据源项目:https://github.com/ourongxing/newsnow
- MCP 协议标准文档