关于 Rss Mcp
Rss Mcp 是一个 TypeScript MCP 服务,可从标准 RSS/Atom 源和 RSSHub 获取结构化内容,适用于需要读取订阅源的 MCP 客户端。它支持多 RSSHub 实例轮询,并可清理内容为纯文本。
主要功能
- 01解析 RSS 和 Atom 源
- 02支持 RSSHub 订阅源
- 03设置获取条目数量
- 04轮询可用 RSSHub 实例
- 05清理内容并输出结构化 JSON
适用场景
- 01读取网站 RSS 更新
- 02获取 RSSHub 路由的内容
- 03指定条目数查看订阅源
- 04在首选实例不可用时切换 RSSHub
MCP 相关
服务向 MCP 客户端提供 `get_feed` 工具,可获取并解析标准 RSS/Atom 源或 RSSHub 源,返回结构化 JSON。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
RSS MCP 服务
这是一个使用 TypeScript 构建的模型上下文协议(MCP)服务。它提供了一个多用途工具,可抓取并解析任何标准 RSS/Atom 订阅源,同时还特别支持 RSSHub 订阅源。借助此服务,大模型或其他 MCP 客户端可以轻松从各种网络来源获取结构化内容。
此服务内置了一份公共 RSSHub 实例列表,并支持轮询机制以自动选择可用实例,显著提高数据获取的成功率和稳定性。
✨ 功能
- 通用订阅源解析:抓取并解析指定 URL 中的任何标准 RSS/Atom 订阅源。
- 增强的 RSSHub 支持:提供名为
get_feed的工具,通过 MCP 抓取任何 RSSHub 支持的订阅源,并支持多个实例。 - 可自定义条目数量:指定要获取的订阅源条目数量,也支持获取所有条目。
- 多实例支持:包含一份公共 RSSHub 实例列表,并自动轮询以查找可用服务。
- 智能 URL 解析:支持标准 RSSHub URL 和简化的
rsshub://协议格式。 - 优先实例配置:允许通过
PRIORITY_RSSHUB_INSTANCE环境变量设置首选 RSSHub 实例。 - 健壮的错误处理:如果向某个实例发出的请求失败,服务会自动尝试下一个实例,直到请求成功或所有实例均已失败。
- 内容清理:使用 Cheerio 清理订阅源内容并提取纯文本描述。
- 标准化输出:将获取的 RSS 订阅源转换为结构化 JSON 格式。
📦 安装
首先克隆项目仓库,然后安装所需的依赖项。
git clone https://github.com/veithly/rss-mcp.git
cd rss-mcp
npm install
🚀 使用方法
1. 构建项目
运行前,需要将 TypeScript 代码编译为 JavaScript:
npm run build
2. 运行服务
构建成功后,启动 MCP 服务:
npm start
随后,服务会通过 Stdio 与父进程(例如 Cursor)通信。
3. 配置优先实例(可选)
你可以创建一个 .env 文件来指定优先使用的 RSSHub 实例。对于拥有私有稳定实例的用户,这非常实用。
在项目根目录中创建 .env 文件,并添加以下内容:
PRIORITY_RSSHUB_INSTANCE=https://my-rsshub.example.com
服务会在启动时自动加载此配置,并将该实例置于轮询列表的首位。
🔧 MCP 服务配置
要将此服务与 Cursor 等 MCP 客户端配合使用,需要将其添加到配置文件中。
方法 1:使用 npx(推荐)
此软件包已发布到 npm,因此你可以使用 npx 运行服务,无需在本地安装。这是最简单的方法。
-
直接调用: 你可以在终端中使用
npx直接运行服务:npx rss-mcp -
MCP 客户端配置: 要与 Cursor 等 MCP 客户端集成,请将以下内容添加到配置文件中(例如
~/.cursor/mcp_settings.json):{ "name": "rss", "command": ["npx", "rss-mcp"], "type": "stdio" }
方法 2:本地安装
如果你已在本地克隆仓库,可以直接使用 node 运行。
-
按照“安装”和“使用”部分的说明克隆并构建项目。
-
找到你的 MCP 配置文件。
-
添加以下服务条目,并确保使用编译后
index.js文件的绝对路径:{ "name": "rss", "command": ["node", "/path/to/your/rss-mcp/dist/index.js"], "type": "stdio" }重要: 将
/path/to/your/rss-mcp/dist/index.js替换为系统上的正确绝对路径。
添加配置后,重启 MCP 客户端(例如 Cursor),使更改生效。随后即可使用 rss 服务,并调用 get_feed 工具。
🛠️ 工具定义
get_feed
从给定 URL 获取并解析 RSS 订阅源。支持标准 RSS/Atom 订阅源和 RSSHub 订阅源。
输入参数
url(字符串,必填):要获取的 RSS 订阅源 URL。支持以下两种格式:- 标准 URL:
https://rsshub.app/bilibili/user/dynamic/208259 rsshub://协议:rsshub://bilibili/user/dynamic/208259(服务会自动匹配可用实例)
- 标准 URL:
count(数字,可选):要获取的 RSS 订阅源条目数。- 默认值:
1 - 获取全部:
0
- 默认值:
输出
返回包含订阅源信息的 JSON 字符串,结构如下:
{
"title": "bilibili User Dynamics",
"link": "https://space.bilibili.com/208259",
"description": "bilibili User Dynamics",
"items": [
{
"title": "[Dynamic Title]",
"description": "Plain text content of the dynamic...",
"link": "https://t.bilibili.com/1234567890",
"guid": "https://t.bilibili.com/1234567890",
"pubDate": "2024-05-20T12:30:00.000Z",
"author": "Author Name",
"category": ["Category1", "Category2"]
}
]
}
📜 主要依赖项
- @modelcontextprotocol/sdk:用于构建 MCP 服务。
- axios:用于发送 HTTP 请求。
- rss-parser:用于解析 RSS/Atom 订阅源。
- cheerio:用于解析和处理 HTML 内容。
- date-fns-tz:用于处理与时区相关的日期格式。
- dotenv:用于从
.env文件加载环境变量。
📄 许可证
本项目采用 Apache-2.0 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。