返回市场
RSSHub-MCP

RSSHub-MCP

作者:panxiande6 星标更新:2025-10-30

项目介绍

RSSHub MCP Server

功能特性

  • 🔍 RSS 订阅获取:通过路由检索各种网站的 RSS 源。
  • 订阅管理(新功能):
    • 添加/移除订阅源
    • 一键访问所有已订阅内容
    • 本地持久化存储订阅列表
    • 为每个订阅设置默认参数和自定义名称
  • 🔎 智能路由搜索:自动从 RSSHub API 中检索所有可用路由,并支持模糊搜索。
  • 💾 路由缓存:自动缓存路由数据(24小时),以提高响应速度。
  • ⚙️ 灵活实例配置
    • 支持环境变量 RSSHUB_INSTANCE 配置自定义实例
    • 支持在参数模式下临时指定实例
    • 默认使用公共实例 https://rsshub.app
  • 🎯 通用参数支持:过滤、限制条目数量、全文输出等。
  • 🌐 全面平台覆盖:涵盖 RSSHub 支持的所有平台和路由。
  • ⏱️ 智能超时处理:60秒超时,支持处理复杂路由。
  • 🔧 详细错误诊断:提供不同类型错误的具体解决方案。
  • 📊 请求日志:记录请求 URL、耗时及详细错误信息。
  • 🚀 轻量级:仅需 40 个依赖包,快速安装和启动。

安装

方法 1:通过 NPX(推荐)

无需手动安装,只需在 Claude Desktop 配置中使用 npx:

编辑配置文件:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "rsshub": {
      "command": "npx",
      "args": ["rsshub-mcp"]
    }
  }
}

要使用自定义 RSSHub 实例:

{
  "mcpServers": {
    "rsshub": {
      "command": "npx",
      "args": ["rsshub-mcp"],
      "env": {
        "RSSHUB_INSTANCE": "http://localhost:1200"
      }
    }
  }
}

方法 2:从源码构建

# 克隆仓库
git clone https://github.com/panxiande/RSSHub-MCP.git
cd RSSHub-MCP

# 安装依赖
npm install

# 构建项目
npm run build

然后在 Claude Desktop 配置文件中添加:

macOS

{
  "mcpServers": {
    "rsshub": {
      "command": "node",
      "args": ["/path/to/RSSHub-MCP/dist/index.js"]
    }
  }
}

Windows

{
  8 "mcpServers": {
    "rsshub": {
      "command": "node",
      "args": ["C:\\path\\to\\RSSHub-MCP\\dist\\index.js"]
    }
  }
}

使用自定义实例(推荐)

通过环境变量 RSSHUB_INSTANCE 指定自定义实例以获得更好的稳定性:

{
  "mcpServers": {
    "rsshub": {
      "command": "npx",
      "args": ["rsshub-mcp"],
      "env": {
        "RSSHUB_INSTANCE": "http://localhost:1200"
      }
    }
  }
}

配置完成后,重启 Claude Desktop 即可使用。

自定义数据存储位置

订阅数据默认保存在 ~/.rsshub-mcp/subscriptions.json。要自定义位置,可以设置环境变量:

{
  "mcpServers": {
    "rsshub": {
      "command": "npx",
      "args": ["rsshub-mcp"],
      "env": {
        "RSSHUB_INSTANCE": "http://localhost:1200",
        "RSSHUB_MCP_DATA_DIR": "/custom/path/to/data"
      }
    }
  }
}

可用工具

1. get_feed

获取 RSSHub 订阅源内容。支持两种模式:

模式 1:获取所有订阅(无参数)

  • 不传递任何参数即可自动获取所有已订阅源的内容
  • 返回聚合的订阅列表及其数据

模式 2:获取特定路由(传入路由参数)

  • 获取指定路由的 RSS 源

参数

  • route(可选):RSSHub 路由路径,例如 /bilibili/bangumi/media/9192。未提供时获取所有订阅。
  • params(可选):通用参数对象,如 { "limit": "10", "filter": "关键词" }

示例:

# 获取所有订阅的内容
获取我的所有订阅更新

# 获取特定路由
获取 Telegram 频道 awesomeRSSHub 的订阅内容
获取 B站番剧 9192 的更新
订阅 GitHub 仓库 anthropics/anthropic-sdk-python 的 releases

2. subscribe

将 RSS 源添加到订阅列表。

参数

  • route(必填):要订阅的 RSSHub 路由路径
  • name(可选):订阅的自定义名称,便于识别
  • params(可选):此订阅的默认参数,每次获取时自动应用

特点:

  • 自动检测重复订阅
  • 支持为订阅设置友好名称
  • 可预设默认参数(如过滤规则、条目限制)
  • 数据持久化本地保存

示例:

订阅 B站番剧 /bilibili/bangumi/media/9192,命名为"我的追番"
添加 GitHub 仓库 /github/issue/vuejs/core 到订阅列表
订阅 /telegram/channel/awesomeRSSHub,限制10条

3. unsubscribe

从订阅列表中移除 RSS 源。

参数

  • id(可选):订阅的唯一 ID
  • route(可选):要取消订阅的路由路径

说明: 提供 idroute 至少一个

示例:

取消订阅 /bilibili/bangumi/media/9192
删除订阅 ID 为 sub_xxx 的订阅

4. list_subscriptions

列出所有已保存的订阅。

参数

返回信息:

  • 订阅 ID
  • 路由路径
  • 自定义名称
  • 默认参数
  • 创建时间
  • 完整 URL

示例:

显示我的所有订阅
列出订阅列表

5. search_routes

搜索 RSSHub 路由。自动从 RSSHub API 中检索最新的路由并支持模糊搜索。

参数

  • query(必填):搜索关键词,支持平台名称、路由名称、类别等

特点:

  • 实时检索 RSSHub API 中所有可用路由
  • 24 小时本地缓存以提高响应速度
  • 支持按平台名称(如 'bilibili', 'GitHub')搜索
  • 支持按类别(如 'social media', 'programming')搜索
  • 支持按路由名称和描述进行模糊搜索
  • 返回最多 50 个匹配结果

示例:

搜索 bilibili 相关的路由
查找 github 的订阅方式
搜索 telegram 路由
查找 social-media 分类下的路由

使用示例

配置完成后,您可以在 Claude Desktop 中直接查询:

  1. 管理订阅:

    • 订阅 Bilibili/bangmi/media/9192 并命名为 'My Followers'
    • 将 GitHub 仓库 vuejs/core 的 issues 添加到订阅列表
    • 显示所有我的订阅
    • 取消订阅 /telgram/channel/awesomeRSSHub
  2. 获取订阅内容:

    • 一键获取所有订阅更新
    • 帮我获取 Telegram 频道 awesomeRSSHub 的最新内容
    • 查看 Bilibili 动画 9192 的最新一集
    • 查看 GitHub 仓库 vuejs/core 的最新 issues
  3. 搜索路由:

    • 搜索 Bilibili 相关的路由
    • 搜索 GitHub 的订阅方式
    • 有哪些 Telegram 相关的路由?
    • 搜索社交媒体类别的路由
    • 如何订阅 Twitter 用户?
    • 如何订阅微博?

RSSHub 路由指南

RSSHub 路由遵循以下格式:

/<平台>/<内容类型>/<参数>

例如:

  • /telegram/channel/awesomeRSSHub - Telegram 频道
  • /bilibili/user/dynamic/2267573 - Bilibili 用户动态
  • /github/issue/vuejs/core - GitHub Issues
  • /twitter/user/elonmusk - Twitter 用户推文

更多路由,请参见 RSSHub 官方文档

通用参数

RSSHub 支持以下通用参数:

  • limit:限制返回的条目数,如 { "limit": "10" }
  • filter:过滤标题和描述,如 { "filter": "关键词" }
  • filterout:排除包含特定内容的条目
  • mode:输出模式,如 fulltext 全文输出

使用示例:

获取 Telegram 频道的最新 10 条内容,路由是 /telegram/channel/awesomeRSSHub,限制 10 条

故障排查

常见问题

502 Bad Gateway 错误

原因:

  • RSSHub 服务器负载过高
  • 上游网站(如 arxiv.org)暂时无法访问或响应超时
  • 网络连接问题

解决方法:

  • 后续重试(通常是暂时性问题)
  • 使用其他 RSSHub 实例(自部署或其他公共实例)
  • 检查上游网站是否正常工作

2. 请求超时

原因:

  • 某些路由需要较长的处理时间(超过 60 秒)
  • 网络连接缓慢
  • RSSHub 服务器响应慢

解决方法:

  • 后续重试
  • 确认路由是否正确(使用 search_routes 工具)
  • 考虑使用自部署的 RSSHub 实例

3. 404 Not Found 错误

原因:

  • 路由不存在或路径不正确

解决方法:

调试日志

MCP 服务器会将详细日志输出到标准错误输出(STDerr),包括:

  • 请求的完整 URL
  • 请求耗时
  • 错误详情

您可以通过 Claude Desktop 的日志查看这些信息(通常位于 ~/Library/Logs/Claude/ 目录)

配置建议

超时设置:

  • 默认超时:60 秒
  • 最大响应大小:50MB
  • 如果频繁出现超时,建议自部署 RSSHub 实例

实例选择(按优先级排序):

  1. 自部署实例(强烈推荐)

    • 配置:RSSHUB_INSTANCE=http://localhost:1200
    • 优点:最稳定、最快且免费
    • 部署:5 分钟 Docker 一键部署
  2. 其他公共实例

  3. 默认公共实例 https://rsshub.app

    • 快速启动,但可能负载较高
    • 当出现 502/503 错误时,建议切换实例

配置方法:

  • 在 Claude Desktop 配置中设置 RSSHUB_INSTANCE 环境变量

支持的平台

包括但不限于:

  • 📱 社交媒体:Twitter/X, Telegram, 微博, 知乎, Reddit
  • 🎬 视频平台:Bilibili, YouTube
  • 💻 开发平台:GitHub, GitLab
  • 📰 新闻与信息:各类新闻网站
  • 🎮 游戏社区:Steam, Epic Games
  • 查看更多平台 RSSHub 路由文档

相关链接

许可证

MIT