| name | rsshub-route-finder |
| description | 输入网页 URL 或 Twitter/X 账号,生成可订阅 RSS 链接;有 RSSHub 时匹配 RSSHub 路由,没有 RSSHub 时给出明确降级结果。触发词:rss, 订阅, feed, rsshub, 路由, 有没有 rss, 怎么订阅, 生成 rss, twitter rss, x 账号订阅 |
| metadata | {"akasic":{"requires":{"bins":["uv","curl"]}}} |
RSS 链接生成器
目标
帮助用户把网页、站点或 Twitter/X 账号转换成可交给 feed_manage(action="subscribe") 的 RSS 地址。
处理顺序
┌─ 用户输入
│
├─ Twitter/X 账号或链接
│ ├─ 生成 https://nitter.net/<username>/rss 并验证
│ └─ 失败时尝试 https://rss.xcancel.com/<username>/rss
│
└─ 普通网页链接
├─ 优先识别页面内已有 RSS/Atom 链接
├─ 如果 RSSHub 可用,查询 RSSHub radar 路由
└─ 如果 RSSHub 不可用,说明需要配置 RSSHub 后才能自动匹配站点路由
RSSHub 配置
远程机器不一定运行本地 RSSHub,所以不能假设 localhost:1200 一定可用。
脚本读取 RSSHUB_BASE 环境变量,未设置时默认尝试 http://localhost:1200。如果连接失败,脚本会输出降级提示,不应把这当成 skill 失败。
RSSHUB_BASE="https://your-rsshub.example.com" \
bash "$SKILL_DIR/scripts/find_route.sh" "https://space.bilibili.com/12345"
调用方式
在当前 skill 目录下运行:
bash "$SKILL_DIR/scripts/find_route.sh" "<用户输入的 URL 或账号>"
如果不知道 $SKILL_DIR,使用仓库内相对路径:
bash skills/rsshub-route-finder/scripts/find_route.sh "<用户输入的 URL 或账号>"
输出处理
- 如果脚本返回可用 RSS 地址,优先展示该地址,并询问是否订阅。
- 用户确认订阅后,调用
mcp_feed__feed_manage(action="subscribe", name="名称", url="RSS地址")。
- 如果脚本提示 RSSHub 不可用,只说明“当前机器没有可用 RSSHub,无法自动匹配该网站路由”,不要编造路由。
- 对 Twitter/X 链接,提醒用户
nitter.net 和 rss.xcancel.com 都是第三方服务,不要用于私密账号。
注意
- 不要直接返回未经验证的 Twitter/X RSS 地址。
rss.xcancel.com 被拦截时可能仍返回 HTTP 200,必须检查响应体是否包含 not yet whitelisted。
- 非 Twitter/X 站点没有 RSSHub 时,只能识别网页自带的 RSS/Atom 链接,不能凭空生成 RSSHub 路由。