项目简介
RSSHub MCP 是一个实现 Model Context Protocol (MCP) 的服务器应用,旨在为 LLM 客户端提供一个标准化的接口,以便获取和处理来自 RSSHub 服务的 RSS 订阅源数据。它将复杂的 RSS 获取、多实例切换、内容解析等功能封装为一个易于调用的 MCP 工具。
主要功能点
- RSS 源获取: 能够从指定的 RSSHub 路径或 URL 获取 RSS 订阅内容。
- 多实例自动切换: 内置多个公共 RSSHub 实例,失败时自动尝试其他实例,提高可用性。
- 智能解析与清理: 自动解析 RSS Feed 内容,并清理 HTML 标签,提取纯文本描述。
- 多种 URL 格式支持: 支持 'rsshub://' 格式、完整的 RSSHub URL 以及简写路径格式。
- 自动化处理: 包括用户代理随机切换、自动时区转换为 UTC 等。
- MCP 工具注册: 将 RSS 获取能力注册为一个标准的 MCP 工具 ('rsshub_get_feed'),供 LLM 客户端调用。
安装步骤
- 确保您已安装 Python 3.8 或更高版本。
- 克隆此 GitHub 仓库到本地。
- 进入仓库目录。
- 推荐使用 uv 安装依赖:
- 如果未安装 uv: 'pip install uv'
- 创建并激活虚拟环境 (可选但推荐): 'uv venv' 然后激活环境。
- 安装依赖: 'uv pip install -r requirements.txt'
- 或者使用 pip 安装依赖:
- 激活您的 Python 环境。
- 安装依赖: 'pip install -r requirements.txt'
- 使用 Docker (推荐): 如果您使用 Docker,可以直接使用仓库中提供的 'docker-compose.yml' 文件构建和运行服务,无需手动安装 Python 环境和依赖。
服务器配置
RSSHub MCP 服务器通过不同的传输协议 (如 Stdio, SSE) 运行。您的 MCP 客户端需要配置如何启动此服务器进程或连接到已运行的服务器。
典型的客户端配置(例如在 LLM 客户端的配置文件中)需要包含以下信息来调用此 MCP 服务器提供的工具:
- 服务器名称: 给这个 MCP 服务器起一个唯一的名称,例如 '"rsshub"' 或 '"my_rss_tool"'。
- 启动命令 (command) 及参数 (args): 指定如何启动 MCP 服务器进程。
- 如果使用 Stdio 传输,启动命令通常指向 'rsshub/rsshub.py' 文件。例如,命令可能是 '["python", "-m", "rsshub.rsshub"]'。
- 如果使用 SSE 传输(如 Docker 方式),启动命令通常指向 'rsshub/rsshub_sse.py' 文件。例如,命令可能是 '["python", "-m", "rsshub.rsshub_sse"]'。具体命令和参数取决于您的环境和选择的传输方式。
- 如果通过 Docker 启动,客户端可能只需要配置服务器的 'url' 和 'transport' 信息,指向 Docker 容器暴露的服务地址,例如 'url: "http://localhost:8081/sse/"' 和 'transport: "sse"',而不是启动命令。请查阅您的 MCP 客户端文档以确定所需的配置格式。
- 传输协议 (transport): 指明客户端与服务器通信使用的协议,例如 '"stdio"' 或 '"sse"'。
请根据您使用的 MCP 客户端类型及其配置要求,参照上述信息进行相应的配置。
基本使用方法
配置完成后,您的 LLM 客户端或代理即可通过调用名为 'rsshub_get_feed' 的 MCP 工具来获取 RSS 源。
该工具接受一个字符串参数 'url',表示要获取的 RSSHub 路径或完整 URL。例如,在支持 MCP 工具调用的 LLM 客户端中,您可以通过自然语言指令触发此工具,或者通过特定的客户端 API 进行调用。
例如,一个代理可能会根据用户指令生成一个工具调用请求,格式类似:
{ "name": "rsshub_get_feed", "parameters": { "url": "rsshub://zaobao/realtime/world" } }
工具执行后,将返回解析后的 RSS 源数据,包含标题、链接、描述以及多个文章条目的详细信息。
信息
分类
网页与API