GitHub 热榜上的 sansan0/TrendRadar,用 MCP 把 35 个平台热点聚起来做舆情分析,趋势追踪、情感分析都能用自然语言问。但要把这套跑顺,光把网页端部署起来不够——模型通道不配好,对话分析就是空转。这条通道我建议直接落到 TaoToken:打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 注册并创建 API Key,再把 Base URL 填成 https://taotoken.net/api。填错位置、多加 /v1、把官网地址当成接口地址,是这一步最常见的三种翻车方式,后面会逐个对照。
原文把 TrendRadar 描述成“30 秒网页部署,1 分钟手机通知,无需编程”,这话没夸张,网页部署确实点几下就能成。但它默认的 AI 分析配置留了一堆空位:api_key、base_url、model 三样都得自己填,随手找个 Key 塞进去,要么 401,要么模型名不存在。更麻烦的是 MCP 侧——TrendRadar 的 MCP Server 会独立读一组环境变量,如果只改了 config.yaml 而没改客户端侧,工具列表能列出来,调用却一直超时。这篇就把这两处一起配通,顺便把验证和排障的路径走一遍。
1. TrendRadar 的 MCP 舆情分析,为什么先卡在模型通道
1.1 网页部署很快,但 ai_analysis 段默认是空的
TrendRadar 的玩法分两层。第一层是采集与推送:GitHub Actions 定时跑,或者 Docker 起一个容器,抓完热榜按配置推到手机。第二层是 AI 分析:把抓下来的热点数据交给模型,让它做趋势追踪、情感倾向、话题聚合,这一层通过 MCP 工具暴露出去,客户端发起对话时按需调用。
第二层是大多数人卡住的地方。config/config.yaml 里有个ai_analysis段(不同版本可能叫ai或ai_config,以仓库当时 README 为准),enabled打开之后,模型调用依赖三项:api_key、base_url、model。这三项如果留空,程序不一定报错,但 MCP 工具返回的会是一段占位文本或者直接超时;如果随便填了某家官方地址,额度或区域限制一来,日志里就是 401、403、Rate limit 混着出现。
1.2 把模型通道收在一处,Key 和 Base URL 各归各位
TaoToken 在这个链路里的角色很窄,就两件事:给一把能用的 API Key,给一个统一的 Base URL。不要把它想成什么黑盒桥接,它就是一个兼容通道——你的 TrendRadar、MCP 客户端、其他小工具都往同一个地址发请求,模型选择在模型广场里挑。
这么做的实际好处是排障面变窄。以前是「TrendRadar 报错 → 不知道是哪家 Key 的问题 → 去翻每个供应商的控制台」,现在三样东西写死在一个文件里:Key 从落地页创建,Base URL 固定是https://taotoken.net/api,模型 ID 从模型广场抄。下面两节就按这个顺序落地。
2. config/config.yaml 里改三行,把 TrendRadar 指到 TaoToken
2.1 先在落地页拿到 YOUR_API_KEY
打开 TaoToken,注册登录后进控制台,创建一把 API Key。复制出来的字符串就是后面配置里的YOUR_API_KEY,本文所有示例都用这个占位符,真 Key 不要贴进仓库、不要写进公开的 Actions 日志里。
注意两点:Key 只在创建时完整显示一次,丢了就重建一把;不同项目的 Key 建议分开建,TrendRadar 一套、写代码的工具另一套,后面看用量时能分得清是谁在调用。
2.2 ai_analysis 段逐字段对照
在 config/config.yaml 找到 AI 相关的那一段,按下面的样子填:
ai_analysis: enabled: true provider: openai_compatible api_key: YOUR_API_KEY base_url: https://taotoken.net/api model: YOUR_MODEL_ID字段含义对照:
| 字段 | 填什么 | 注意 |
|---|---|---|
| api_key | YOUR_API_KEY | 从 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建 |
| base_url | https://taotoken.net/api | 末尾不要加 /v1,不要带 UTM,不要填官网地址 |
| model | 模型广场里的 ID | 别自己拼日期后缀 |
| provider | openai_compatible | 以仓库 README 支持的取值为准 |
字段名以你 fork 的那一版仓库为准,值这三项是不变的。如果仓库同时支持环境变量覆盖(例如AI_API_KEY、AI_BASE_URL、AI_MODEL),本地跑脚本时先确认环境变量没把 yaml 里的值盖掉,否则你改了半天文件,程序读的还是旧的。
3. MCP Server 侧也吃同一套 Base URL:Cline / Claude Desktop 怎么写
3.1 mcpServers 里的 env 要和 yaml 对齐
TrendRadar 的 MCP Server 一般是被客户端拉起的一个子进程,它自己的模型调用参数来自启动时的环境变量,不一定会读 config.yaml。所以只配 config.yaml 会出现「网页部署正常、对话工具一调用就报错」的现象。
在客户端(Claude Desktop 的 claude_desktop_config.json、Cline 的 MCP 设置等)里加一段:
{ "mcpServers": { "trendradar": { "command": "python", "args": ["/path/to/TrendRadar/mcp_server.py"], "env": { "AI_API_KEY": "YOUR_API_KEY", "AI_BASE_URL": "https://taotoken.net/api", "AI_MODEL": "YOUR_MODEL_ID" } } } }三个 env 的值和 yaml 里保持一致。变量名以 TrendRadar MCP Server 读的那一组为准,有的版本是AI_*,有的版本是TRENDRADAR_*,连不上先去看 mcp_server.py 里os.getenv的那几行,这是最直接的确认方式。
3.2 模型 ID 去模型广场抄,不要自己编
model 这一项最容易被拍脑袋写。写 gpt-5、claude-4.5-20260101 这种看起来很像的字符串,接口会直接返回模型不存在,但错误信息未必指向 model 字段,你会以为是 Key 或地址的问题。
正确做法是打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的模型广场,挑一个适合做中文舆情摘要的模型,把页面上显示的 ID 原样复制。名字里带日期后缀的,整个后缀一起复制,别自己删。换模型也只是改这一个字段,不用动 Key 和 Base URL。
4. 跑一次趋势追踪和情感分析,确认 MCP 工具真的通了
4.1 先手动触发一次采集,保证有数据可分析
MCP 工具返回空,很多时候不是模型的问题,是数据源还没采。TrendRadar 的 GitHub Actions 默认按计划跑,fork 之后可以先去 Actions 页面手动触发一次 workflow,等它把各平台热榜写进数据目录,再去问 AI。
Docker 部署的话,本地先跑一轮采集,确认 data 目录里有当天的输出文件。没有数据,模型再强也只能编,这是舆情分析最忌讳的一点。
4.2 在对话里点名工具,观察返回结构
数据有了之后,在客户端里发一句明确的指令,比如:
「用 TrendRadar 的 MCP 工具查一下今天的热点,做一次趋势追踪,列出上升最快的三个话题。」
如果要在网页端用对话分析,也可以先在 TaoToken 模型对话 里用同一把 Key 发一条普通消息,确认 Key 本身是活的。MCP 侧正常返回的话,你会看到工具调用记录后跟着一段结构化的分析文本,里面能对应上具体平台和话题。
再补一句情感分析:
「对刚才的 TOP 5 话题逐个给情感倾向,正面、中性、负面,加一句理由。」
两条都能跑通,说明链路完整:采集 → MCP 读数据 → 兼容通道调模型 → 返回文本。要是第一条就失败,直接跳下一节。
5. 排障对照:401、模型不存在、工具列表为空
5.1 401:Key 没读到,或者读到了旧的
401 Unauthorized 基本只跟 Key 有关。按顺序查:yaml 里 api_key 是不是还是占位符,改完有没有保存;本地 shell 或 Actions Secret 里有没有同名环境变量把 yaml 覆盖了;MCP 客户端的 env 段是不是复制了旧的 Key;Key 本身有没有被删掉或轮换。
四个点查完还 401,就回控制台重新建一把 Key 换上去,别在原 Key 上反复试,也不要靠加空格、加引号去「修」配置,那样只会引入新的坑。
5.2 404 / 模型不存在:地址多了 /v1 或填了官网
这一类错误的根源是地址写错。对照检查:base_url 必须是https://taotoken.net/api,末尾不加 /v1;base_url 不要填成那个给浏览器点的落地页,官网地址和接口地址是两件事;有些客户端会自己拼/v1/chat/completions,如果你的配置里已经带了一截路径,就会拼成/api/v1/v1/...这种怪东西,直接 404。
model 字段写错是另一种报错,通常提示模型不存在或无权访问,同样回模型广场核对一遍,别凭记忆输入。
5.3 MCP 工具列表是空的
客户端里看不到 trendradar 的工具,说明子进程根本没起来。检查 command 用的 python 解释器和 args 里的路径,虚拟环境的解释器路径最好写绝对路径;再看依赖装没装,MCP Server 通常依赖 mcp 这个包,缺依赖时进程会静默退出。
有个偷懒但有效的办法:先在终端手动跑一遍 mcp_server.py,看它有没有报 ImportError 或参数错误,再去客户端里刷新。工具能列出来但调用超时,多半是 3.1 里的 env 没配或配错,重点看AI_BASE_URL。
6. 配完之后把 Key 固定下来,再看一眼用量
Key 配进 yaml 和 MCP 客户端之后,建议在控制台给它一个能记住的名字,比如 trendradar-mcp。这样后面出现异常流量时,能一眼分清是舆情分析在调、还是写代码的工具在调,排查方向完全不同。
要是打算长期挂 MCP 做趋势跟踪,可以去 Coding Plan 看套餐规格是否合适;临时跑一轮分析,用按量的 Key 就够,新建入口在 控制台 API Keys。想把这套 MCP 接法再核对一遍字段,对应的配置示例在 Claude Code 接入文档 里也能对上。
最后提醒一句:TrendRadar 的 MCP 工具只负责读聚合后的热点数据、把分析结果讲成人话,真要拿它做业务判断,还得自己回去看原始链接。模型通道解决的是「能不能问」的问题,不是「结论对不对」的问题。