基于 TrendRadar v6.10.0 的修改版,自己加了点功能:AI 筛选增强、RSS 优化、MCP 安全加固
和官方版的差异在文末
官方文档:https://trendradar.sandev.cc/zh/docs/quick-start/
部署方式与官方一致(详见 TrendRadar 快速开始),以下仅标注本版的差异点。
两个镜像:wantcat/trendradar(新闻推送,必选)+ wantcat/trendradar-mcp(AI 分析,可选)。
git clone https://github.com/ALRCMt/MtTrendRadar.git
cd MtTrendRadar
docker compose -f docker/docker-compose.yml up -d配置分工:
| 内容 | 位置 |
|---|---|
| 功能开关 | config/config.yaml |
| 关注内容 | config/frequency_words.txt |
| 密钥(webhook / API Key / S3) | docker/.env |
环境变量优先级高于 config.yaml。
注意点:
docker-compose.yml已内置MCP_HTTP_TOKEN环境变量,在docker/.env写MCP_HTTP_TOKEN=你的token即可开启 MCP 认证MCP_HOST默认127.0.0.1(仅本机);对外开放需改为0.0.0.0并必须配置MCP_HTTP_TOKEN- 其余环境变量与官方一致,
docker/.env模板已包含
Use this template 建仓库 → Settings > Secrets and variables > Actions 配置通知渠道(WEWORK_WEBHOOK_URL、FEISHU_WEBHOOK_URL 等,名称需与官方一致)→ 定时自动运行。数据走远程云存储,需配置 S3_* 系列 Secret。
注意点:
- 定时为北京时间 6:00 / 10:30 / 19:30(官方为每小时第 33 分钟),改时间编辑
.github/workflows/crawler.yml的 cron
GitHub Actions 有排队延迟:白天约晚 2h,晚上约晚 1h
git clone https://github.com/ALRCMt/MtTrendRadar.git
cd MtTrendRadar
uv sync # uv 自动管理 Python 依赖
uv run python -m trendradarWindows 可双击 setup-windows.bat,macOS 用 bash setup-mac.sh。
注意点:
- MCP HTTP 模式默认只监听
127.0.0.1,远程访问需加--host 0.0.0.0 --token(见下节) - 本版新增的 AI 配置(
thinking_mode、reference_history_days等)见文末「配置」
原版 MCP HTTP 默认监听 0.0.0.0 且没有认证,局域网内谁都能调。这里改成默认只监听 127.0.0.1,并加了 Bearer Token 认证
命令行传 --token:
openssl rand -hex 32 # 生成 token
uv run python -m mcp_server.server --transport http --host 0.0.0.0 --port 3333 --token <生成的token>或环境变量 MCP_HTTP_TOKEN:
# PowerShell
$env:MCP_HTTP_TOKEN = "token"
uv run python -m mcp_server.server --transport http
# Linux / macOS / Docker
export MCP_HTTP_TOKEN="token"
uv run python -m mcp_server.server --transport http优先级:--token 参数 > MCP_HTTP_TOKEN 环境变量 > 不认证
Docker 部署在 docker/.env 里加一行:
MCP_HTTP_TOKEN=你的token开启认证后,请求头要带 Authorization,否则返回 401:
curl -X POST http://127.0.0.1:3333/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 你的token" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",...}'MCP 客户端(Cursor、Claude Desktop、Cherry Studio 等)把 Authorization: Bearer <token> 填进 HTTP Headers 就行
只在本地用(默认 127.0.0.1)可以不配;只要 --host 0.0.0.0 对网络开放,就必须配
对比 v6.10.0 的改动:
- 默认监听从
0.0.0.0改为127.0.0.1,仅本机可访问 - 新增 Bearer Token 认证:
--token参数或MCP_HTTP_TOKEN环境变量,未携带正确 Token 的请求返回 401
- 全量分析:新增
analysis_min_score,分数低于推送阈值min_score但 ≥analysis_min_score的条目仅进入 AI 深度分析、不推送;深度分析使用全天全量数据,不受每标签MAX_NEWS_PER_KEYWORD(20 条)展示截断影响 - 历史参考:新增
reference_history_days(默认 3,0=关闭)。每次深度分析结果存入数据库ai/库,下次分析自动参考最近 N 天(含当天多次)的历史结果,延续研判逻辑并对比变化;输入 token 增加约 2~4K/天 - thinking_mode:
ai.thinking_mode支持 DeepSeek V4 思考模式(快速 / 推理) - 容错增强:AI 筛选 / 翻译空响应自动重试;日韩文自动识别并翻译,纯中文跳过
- 抓取重试次数提升至 4 次并随机退避
- 每个 feed 可单独限制条数(
rss.feeds[].max_items) - 标题模糊去重:包含关系或相似度 > 0.85 只保留最长一条
- 修复:RSS 新增条目不再被跳过翻译
- RSS 区新增按关键词分组的 Tab 栏(含「全部」按钮)
- 独立展示区显示逻辑调整
- 定时从官方每小时改为北京时间 6:00 / 10:30 / 19:30
workflow_dispatch手动触发时注入SCHEDULE_PRESET=always_on
GitHub Actions 有排队延迟:白天约晚 2h,晚上约晚 1h
其余代码文件与官方 v6.10.0 一致。
新增配置都在 config/config.yaml(thinking_mode 在 ai 段,其余在各功能段):
ai:
thinking_mode: false # DeepSeek V4 思考模式:false=快速 / true=推理 / 留空=不发送
ai_analysis:
reference_history_days: 3 # AI 分析历史参考窗口:0=关闭 / N=参考最近 N 天(含当天多次)
ai_filter:
max_empty_retries: 2 # AI 筛选空响应重试次数(0=不重试)
ai_translation:
max_empty_retries: 2 # 翻译空响应/不完整响应重试次数(0=不重试)
min_parse_ratio: 0.5 # 解析条数低于该比例视为不完整并重试
rss:
feeds:
- id: "example"
max_items: 12 # 该 feed 最多保留条数(0=不限制)MIT,与上游一致