Rss Mcp

Rss Mcp

🚀 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 
cd rss-mcp
npm install

🚀 快速开始

1. 构建项目

在运行之前,你需要将 TypeScript 代码编译为 JavaScript:

npm run build

2. 启动服务器

构建成功后,启动 MCP 服务器:

npm start

服务器随后将通过标准输入输出与父进程(例如 Cursor)进行通信。

3. 配置优先实例(可选)

你可以创建一个 .env 文件来指定优先的 RSSHub 实例。这对于拥有私有、稳定实例的用户非常有用。 在项目根目录下创建一个 .env 文件,并添加以下内容:

PRIORITY_RSSHUB_INSTANCE=https://my-rsshub.example.com

服务器将在启动时自动加载此配置,并将其置于轮询列表的顶部。

🔧 MCP 服务器配置

要将此服务器与像 Cursor 这样的 MCP 客户端一起使用,你需要将其添加到配置文件中。

方法 1:使用 npx(推荐)

如果该软件包已发布到 npm,你可以使用 npx 来运行服务器,而无需本地安装。这是最简单的方法。

  1. 找到你的 MCP 配置文件(例如 ~/.cursor/mcp_settings.json)。
  2. 添加以下服务器条目:
{
"name": "rss",
"command": ["npx", "rss-mcp"],
"type": "stdio"
}

方法 2:本地安装

如果你已在本地克隆了仓库,你可以直接使用 node 运行它。

  1. 克隆并构建项目,如“安装指南”和“快速开始”部分所述。
  2. 找到你的 MCP 配置文件
  3. 添加以下服务器条目,并确保使用编译后的 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。支持两种格式:
    1. 标准 URLhttps://rsshub.app/bilibili/user/dynamic/208259
    2. rsshub:// 协议rsshub://bilibili/user/dynamic/208259(服务器将自动匹配可用实例)

输出

返回一个包含订阅源信息的 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 许可证。

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-21 19:06

相似服务问题