Hotdry.
ai-systems

TrendRadar:基于MCP协议的多平台热点聚合与AI分析工程实践

深入解析TrendRadar如何通过MCP协议构建AI分析工具链,实现35+平台热点聚合、智能筛选与自然语言交互分析。

在信息爆炸的时代,每天从抖音、知乎、B 站、微博等 35 + 平台涌现的海量热点资讯让用户陷入信息过载的困境。传统的人工筛选方式效率低下,而简单的关键词匹配又难以捕捉话题的深度关联和趋势演变。TrendRadar 作为一款开源的多平台热点聚合工具,通过引入 Model Context Protocol(MCP)协议,构建了一套完整的 AI 分析工具链,实现了从数据采集、智能筛选到自然语言交互分析的端到端解决方案。

MCP 协议:AI 分析工具链的核心架构

Model Context Protocol 是 Anthropic 推出的标准化协议,旨在为 AI 模型提供结构化的工具调用能力。TrendRadar 基于 MCP 协议构建的 AI 分析模块,将原本分散的数据查询、趋势分析、情感判断等功能封装为 17 个标准化工具,支持通过自然语言进行深度数据挖掘。

工具链的工程化设计

TrendRadar 的 MCP 工具链按照功能划分为五个层次:

  1. 基础查询层get_latest_newsget_news_by_dateget_trending_topics提供最基础的数据访问能力,支持按日期、平台、关键词进行精确查询。

  2. 智能检索层search_newsfind_related_news实现了语义级别的新闻关联检索。与传统的关键词匹配不同,这些工具能够识别话题的语义相似性,即使新闻标题使用了不同的表述方式。

  3. 高级分析层analyze_topic_trendanalyze_data_insightsanalyze_sentimentaggregate_newscompare_periodsgenerate_summary_report构成了核心分析能力。以analyze_topic_trend为例,该工具能够追踪特定话题从首次出现到热度消退的完整生命周期,识别爆火节点和衰退趋势。

  4. RSS 查询层get_latest_rsssearch_rssget_rss_feeds_status扩展了数据源范围,支持 Atom/RSS 订阅源的统一管理。

  5. 系统管理层get_current_configget_system_statusresolve_date_range提供系统状态监控和配置管理能力。

协议实现的工程考量

TrendRadar 的 MCP 服务采用双模式架构:STDIO 模式和 HTTP 模式。STDIO 模式通过标准输入输出流与 AI 客户端通信,适合本地开发环境;HTTP 模式通过 RESTful API 提供服务,支持远程调用和负载均衡。这种设计确保了工具链在不同部署环境下的兼容性。

在数据格式设计上,所有工具都遵循统一的 JSON Schema 规范,确保 AI 模型能够正确解析参数和返回值。例如,analyze_sentiment工具返回的情感分析结果包含情感极性(positive/negative/neutral)、置信度分数和关键情感词提取,为后续的决策分析提供了结构化数据基础。

多平台聚合的技术架构与数据流

TrendRadar 的数据采集层基于 newsnow 项目的 API,该 API 已经聚合了 35 + 主流平台的热点数据。技术架构采用分层设计:

数据采集与存储层

# 简化的数据采集流程
class DataCollector:
    def __init__(self):
        self.platforms = self.load_platform_config()
        self.storage_backend = self.detect_storage_backend()
    
    def collect_data(self):
        for platform in self.platforms:
            data = self.fetch_from_newsnow(platform['id'])
            processed_data = self.preprocess(data)
            self.store(processed_data)

存储层支持多后端架构:本地 SQLite 数据库适合 Docker 部署环境,远程云存储(S3 兼容协议)适合 GitHub Actions 部署。这种设计解决了不同部署场景下的数据持久化需求。

热点权重算法

TrendRadar 采用三重权重算法对热点进行排序:

  1. 排名权重(60%):各平台前几名的新闻获得更高权重,反映即时热度
  2. 频次权重(30%):反复出现的新闻获得累积权重,反映话题持续性
  3. 热度权重(10%):综合考虑排名和频次的综合热度指标

用户可以通过配置文件调整这三个权重比例,实现个性化排序策略。例如,投资者可能更关注持续性(提高频次权重),而自媒体创作者可能更关注即时热度(提高排名权重)。

可落地的部署参数与配置要点

Docker 部署的最佳实践

TrendRadar 提供官方 Docker 镜像wantcat/trendradar,支持多架构部署。生产环境部署建议采用 docker-compose 方案:

version: '3.8'
services:
  trendradar:
    image: wantcat/trendradar:latest
    container_name: trendradar
    restart: unless-stopped
    volumes:
      - ./config:/app/config:ro
      - ./output:/app/output
    environment:
      - TZ=Asia/Shanghai
      - REPORT_MODE=incremental
      - PUSH_WINDOW_ENABLED=true
      - PUSH_WINDOW_START=09:00
      - PUSH_WINDOW_END=18:00
    ports:
      - "8080:8080"

关键配置参数说明:

  • REPORT_MODE:推送模式选择。incremental(增量监控)适合高频监控场景,只推送新增内容;current(当前榜单)适合实时热度追踪;daily(当日汇总)适合每日报告生成。

  • PUSH_WINDOW:推送时间窗口控制。避免非工作时间打扰,同时减少不必要的推送频率。

  • 数据保留策略:通过LOCAL_RETENTION_DAYSREMOTE_RETENTION_DAYS控制数据保留天数,平衡存储成本和数据价值。

关键词配置的工程化方法

frequency_words.txt文件支持五种语法规则,实现精准内容筛选:

# 全局过滤区(v3.5.0新增)
[GLOBAL_FILTER]
广告
推广
营销
震惊
标题党

# 词组配置区
[WORD_GROUPS]
# 第1组:科技类
人工智能
AI
ChatGPT
+技术
!培训
@10  # 最多显示10条

# 第2组:财经类
A股
上证
深证
+涨跌
!预测

# 第3组:汽车类
特斯拉
比亚迪
+销量
!二手车

配置要点:

  1. 从宽到严逐步优化:先使用宽泛关键词测试,根据误匹配情况逐步加入必须词 (+) 和过滤词 (!)

  2. 数量限制策略:使用@数字语法控制每个关键词组的显示数量,避免信息过载

  3. 分组管理:用空行分隔不同主题的词组,实现分类统计和独立排序

MCP 服务的独立部署

对于需要 AI 分析功能的场景,可以独立部署 MCP 服务:

# 启动MCP HTTP服务
docker run -d --name trendradar-mcp \
  -p 127.0.0.1:3333:3333 \
  -v $(pwd)/config:/app/config:ro \
  -v $(pwd)/output:/app/output:ro \
  wantcat/trendradar-mcp:latest

MCP 服务监听本地端口 3333,支持通过标准 MCP 协议与 Claude Desktop、Cursor、Cline 等 AI 客户端集成。服务启动后,用户可以通过自然语言进行深度数据分析,如 "分析最近 7 天 ' 人工智能 ' 话题的热度趋势" 或 "对比知乎和微博对 ' 比特币 ' 的关注度差异"。

监控、优化与故障排查

性能监控指标

在生产环境中部署 TrendRadar 时,需要关注以下关键指标:

  1. 数据采集成功率:监控各平台 API 的响应状态和错误率
  2. 推送送达率:跟踪各渠道(企业微信、飞书、Telegram 等)的消息送达情况
  3. 存储空间使用:定期检查本地和远程存储的使用情况,避免空间耗尽
  4. MCP 服务健康状态:通过/mcp端点监控 AI 分析服务的可用性

常见故障排查

问题 1:GitHub Actions 部署后收不到推送

解决方案:

  1. 检查 GitHub Secrets 配置是否正确,特别是 Webhook URL 格式
  2. 验证推送时间窗口配置是否与 GitHub Actions 执行时间匹配
  3. 查看 Actions 日志,确认爬虫执行成功且无错误

问题 2:MCP 服务无法连接

解决方案:

  1. 确认 MCP 服务已启动:curl http://localhost:3333/mcp
  2. 检查端口冲突:lsof -i :3333(Linux/Mac)或netstat -ano | findstr :3333(Windows)
  3. 验证数据目录权限:确保config/output/目录可读

问题 3:关键词匹配效果不佳

解决方案:

  1. 使用analyze_topic_trend工具分析特定话题的热度变化规律
  2. 调整关键词配置,加入同义词和近义词扩展
  3. 利用find_related_news工具发现关联话题,完善关键词体系

优化建议

  1. 数据源优化:根据实际需求调整监控平台列表,避免过多低质量平台影响分析效果
  2. 推送频率优化:结合业务场景调整执行频率,高频监控场景使用incremental模式,日报场景使用daily模式
  3. 存储策略优化:根据数据价值设定合理的保留周期,重要数据长期保存,普通数据定期清理

工程实践的价值与展望

TrendRadar 通过 MCP 协议构建的 AI 分析工具链,展示了开源项目在信息聚合和智能分析领域的创新实践。其核心价值在于:

  1. 标准化协议的应用:通过 MCP 协议实现了 AI 工具的标准化和可复用性
  2. 工程化的配置管理:支持环境变量、配置文件、命令行参数的多层次配置
  3. 灵活的数据架构:支持本地和远程存储,适应不同部署环境
  4. 可扩展的工具生态:基于标准协议的工具链易于扩展和集成

从技术演进的角度看,TrendRadar 代表了信息聚合工具从简单采集向智能分析的发展趋势。未来可能的演进方向包括:

  1. 多模态分析:整合文本、图像、视频等多模态数据源
  2. 预测性分析:基于历史数据的热点趋势预测和预警
  3. 个性化推荐:基于用户兴趣画像的个性化内容推荐
  4. 联邦学习应用:在保护数据隐私的前提下实现跨平台联合分析

对于工程团队而言,TrendRadar 提供了一个完整的参考架构,展示了如何将 AI 能力工程化地集成到传统的信息处理流程中。其开源特性也为定制化开发和技术研究提供了基础。

在实际部署中,建议团队根据具体业务需求进行定制化开发,重点关注数据质量、分析精度和系统稳定性三个维度。通过持续的监控和优化,TrendRadar 能够成为企业舆情监控、行业趋势分析、内容创作辅助的得力工具。

资料来源

  1. TrendRadar GitHub 仓库:https://github.com/sansan0/TrendRadar
  2. Model Context Protocol 官方文档:https://modelcontextprotocol.io/

本文基于 TrendRadar v4.5.0 版本的技术架构进行分析,实际部署时请参考最新版本文档。

查看归档