返回市场
RSS-MCP服务器

RSS-MCP服务器

作者:veithly12 星标更新:2025-07-01

项目介绍

RSS MCP Server

NPM 版本

这是一个用TypeScript构建的Model Context Protocol (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服务器配置

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

方法1:使用npx(推荐)

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

  1. 直接调用: 你可以在终端中直接使用npx运行服务器:

    npx rss-mcp
    
  2. MCP客户端配置: 要与MCP客户端(如Cursor)集成,请在配置文件(例如~/.cursor/mcp_settings.json)中添加以下内容:

    {
      "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(服务器将自动匹配可用实例)
  • count(数字,可选):要检索的RSS订阅源项目的数量。
    • 默认值1
    • 检索全部0

输出

返回一个包含订阅源信息的JSON字符串,具有以下结构:

{
  "title": "bilibili 用户动态",
  "link": "https://space.bilibili.com/208259",
  "description": "bilibili 用户动态",
  "items": [
    {
      "title": "[动态标题]",
      "description": "动态的纯文本内容...",
      "link": "https://t.bilibili.com/1234567890",
      "guid": "https://t.bilibili.com/1234567890",
      "pubDate": "2024-05-20T12:30:00.000Z",
      "author": "作者姓名",
      "category": ["类别1", "类别2"]
    }
  ]
}

📜 主要依赖

📄 许可证

本项目采用Apache-2.0许可证。