项目地址:https://github.com/sansan0/TrendRadar
一、项目构建
# 自行安装好docker docker-compose git # 直接拉取项目 git clone https://github.com/sansan0/TrendRadar.git # config/config.yaml - 应用主配置(报告模式、推送设置等) # config/frequency_words.txt - 关键词配置(设置你关心的热点词汇) # docker/.env - 环境变量配置(webhook URLs 和定时任务) # 根据需要结合项目说明进行修改,通常需要配置通知 # 切到docker目录 cd docker # 拉取最新镜像并启动 docker-compose pull docker-compose up -d # 启动完成
# 命令使用 # 查看日志 docker logs -f trend-radar # 查看容器状态 docker ps | grep trend-radar # 服务管理命令 # 查看运行状态 docker exec -it trend-radar python manage.py status # 手动执行一次爬虫 docker exec -it trend-radar python manage.py run # 查看实时日志 docker exec -it trend-radar python manage.py logs # 显示当前配置 docker exec -it trend-radar python manage.py config # 显示输出文件 docker exec -it trend-radar python manage.py files # 查看帮助信息 docker exec -it trend-radar python manage.py help # 重启容器 docker restart trend-radar # 停止容器 docker stop trend-radar # 删除容器(保留数据) docker rm trend-radar
二、将docker部署的热点页面配置外部访问
1. 修改docker/entrypoint.sh,增加启动http服务
#!/bin/bash
set -e
# 检查配置文件
if [ ! -f "/app/config/config.yaml" ] || [ ! -f "/app/config/frequency_words.txt" ]; then
echo "❌ 配置文件缺失"
exit 1
fi
# 保存环境变量
env >> /etc/environment
echo "🔄 启动http服务。。。。。。"
nohup python3 -m http.server 8101 &
echo "🔄 启动http服务完成"
case "${RUN_MODE:-cron}" in
"once")
echo "🔄 单次执行"
exec /usr/local/bin/python main.py
;;
"cron")
# 生成 crontab
echo "${CRON_SCHEDULE:-*/30 * * * *} cd /app && /usr/local/bin/python main.py" > /tmp/crontab
echo "📅 生成的crontab内容:"
cat /tmp/crontab
if ! /usr/local/bin/supercronic -test /tmp/crontab; then
echo "❌ crontab格式验证失败"
exit 1
fi
# 立即执行一次(如果配置了)
if [ "${IMMEDIATE_RUN:-false}" = "true" ]; then
echo "▶️ 立即执行一次"
/usr/local/bin/python main.py
fi
echo "⏰ 启动supercronic: ${CRON_SCHEDULE:-*/30 * * * *}"
echo "🎯 supercronic 将作为 PID 1 运行"
exec /usr/local/bin/supercronic -passthrough-logs /tmp/crontab
;;
*)
exec "$@"
;;
esac 2. 修改docker/docker-compose.yml 增加端口映射
services: trend-radar: image: wantcat/trendradar:latest container_name: trend-radar restart: unless-stopped ports: - 8101:8101
3. 重载配置 docker-compose up -d
4. docker外部的nginx 配置反向代理 供外部访问,配置好之后重启nginx
server {
listen 80;
#server_name 改为你的域名;
index index.php index.html index.htm default.php default.htm default.html;
root /www/dk_project/wwwroot/; #随便建一个index.html
# 主要是下面的代理,需要mcp服务就加,不需要就不用
location ^~ / {
proxy_pass http://127.0.0.1:8101;
}
location ^~ /mcp {
proxy_pass http://127.0.0.1:3333/mcp;
# API 密钥验证
if ($http_x_api_key != "修改为自己的mcp密钥") {
return 401 "Unauthorized: Invalid API Key";
}
}
} 三、配置MCP服务
1. 按照TrendRadar/README-Cherry-Studio.md at master · sansan0/TrendRadar进行部署
📥 第一步:下载 Cherry Studio Windows 用户 访问官网下载:https://cherry-ai.com/ 或直接下载:Cherry-Studio-Windows.exe Mac 用户 访问官网下载:https://cherry-ai.com/ 或直接下载:Cherry-Studio-Mac.dmg 📦 第二步:获取项目代码 为什么需要获取项目代码? AI 分析功能需要读取项目中的新闻数据才能工作。无论你使用 GitHub Actions 还是 Docker 部署,爬虫生成的新闻数据都保存在项目的 output 目录中。因此,在配置 MCP 服务器之前,需要先获取完整的项目代码(包含数据文件)。 根据你的技术水平,可以选择以下任一方式获取:: 方法一:Git Clone(推荐给技术用户) 如果你熟悉 Git,可以使用以下命令克隆项目: git clone https://github.com/你的用户名/你的项目名.git cd 你的项目名 优点: 可以随时拉取一个命令就可以更新最新数据到本地了(git pull) 方法二:直接下载 ZIP 压缩包(推荐给初学者) 访问 GitHub 项目页面 项目链接:https://github.com/你的用户名/你的项目名 下载压缩包 点击绿色的 "Code" 按钮 选择 "Download ZIP" 或直接访问:https://github.com/你的用户名/你的项目名/archive/refs/heads/master.zip 注意事项: 步骤稍微麻烦,后续更新数据需要重复上面步骤,然后覆盖本地数据(output 目录) 🚀 第三步:一键部署 MCP 服务器 Windows 用户 双击运行项目文件夹中的 setup-windows.bat 等待安装完成 记录显示的配置信息(命令路径和参数) Mac 用户 打开终端(在启动台搜索"终端") 拖拽项目文件夹中的 setup-mac.sh 到终端窗口 按回车键 记录显示的配置信息 🔧 第四步:配置 Cherry Studio 1. 打开设置 启动 Cherry Studio,点击右上角 ⚙️ 设置 按钮 2. 添加 MCP 服务器 在设置页面找到:MCP → 点击 添加 3. 填写配置(重要!) 根据刚才的安装脚本显示的信息填写 4. 保存并启用 点击 保存 按钮 确保 MCP 服务器列表中的开关是 开启 状态 ✅ ✅ 第五步:验证是否成功 1. 测试连接 在 Cherry Studio 的对话框中输入: 帮我爬取最新的新闻 或者尝试其他测试命令: 搜索最近3天关于"人工智能"的新闻 查找2025年1月的"特斯拉"相关报道 分析"iPhone"的热度趋势 提示:当你说"最近3天"时,AI会自动计算日期范围并搜索。 2. 成功标志 如果配置成功,AI 会: ✅ 调用 TrendRadar 工具 ✅ 返回真实的新闻数据 ✅ 显示平台、标题、排名等信息 🎯 进阶配置 HTTP 模式(可选) 如果需要远程访问或多客户端共享,可以使用 HTTP 模式: Windows 双击运行 start-http.bat Mac ./start-http.sh 然后在 Cherry Studio 中配置: 类型: streamableHttp URL: http://localhost:3333/mcp
2. 需要配置认证的,不能随便让人访问,按照上方的nginx配置,修改项目根目录的start-http.sh
#!/bin/bash echo "╔══════════════════════════════════════════════════╗" echo "║ TrendRadar MCP Server (HTTP 模式) ║" echo "║ 🔐 认证版本 - 后台运行 ║" echo "╚══════════════════════════════════════════════════╝" echo "" # 检查虚拟环境 if [ ! -d ".venv" ]; then echo "❌ [错误] 虚拟环境未找到" echo "请先运行 ./setup-mac.sh 进行部署" echo "" exit 1 fi # API Key API_KEY="填入你的API KEY 随机生成即可" LOG_FILE="mcp_server.log" PID_FILE="mcp_server.pid" echo "🔐 [认证信息]" echo " API Key: $API_KEY" echo "" echo "🌐 [服务信息]" echo " 模式: HTTP (适合远程访问)" echo " 地址: http://localhost:3333/mcp" echo " 日志文件: $LOG_FILE" echo " PID 文件: $PID_FILE" echo "" # 检查是否已在运行 if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if ps -p $PID > /dev/null 2>&1; then echo "⚠️ [警告] 服务已在运行 (PID: $PID)" echo " 停止命令: kill $PID 或 ./stop-mcp.sh" echo "" exit 1 else rm -f "$PID_FILE" fi fi echo "⏳ [状态] 启动后台服务..." # export MCP_API_KEY="$API_KEY" # 使用 nohup 后台运行 nohup uv run python -m mcp_server.server --transport http --host 0.0.0.0 --port 3333 > "$LOG_FILE" 2>&1 & # 保存 PID echo $! > "$PID_FILE" echo "✅ [成功] 服务已启动" echo " PID: $(cat $PID_FILE)" echo " 日志: tail -f $LOG_FILE" echo " 停止: kill $(cat $PID_FILE)" echo " 状态: ps -p $(cat $PID_FILE)" echo ""
3. 给mcp配置验证后需要在Cherry Studio请求头部分将验证的API KEY 配置上,之后就可以愉快的调用MCP服务了
4. 效果图
钉钉通知
网站效果
cherry studio调用效果
admin
No Leanote account? Sign up now.