这是一个使用 TypeScript 构建的模型上下文协议(MCP)服务器。它提供了一个通用工具,可用于获取和解析任何标准的 RSS/Atom 订阅源,还对 RSSHub 订阅源提供了特殊支持。借助此服务器,语言模型或其他 MCP 客户端可以轻松从各种网络源获取结构化内容。
服务器内置了一份公共 RSSHub 实例列表,并支持轮询机制以自动选择可用实例,显著提高了数据获取的成功率和稳定性。
get_feed
的工具,可通过 MCP 获取任何 RSSHub 支持的订阅源,并支持多实例。rsshub://
协议格式。PRIORITY_RSSHUB_INSTANCE
环境变量设置首选的 RSSHub 实例。首先,克隆项目仓库,然后安装所需的依赖项。
git clone
cd rss-mcp
npm install
在运行之前,你需要将 TypeScript 代码编译为 JavaScript:
npm run build
构建成功后,启动 MCP 服务器:
npm start
服务器随后将通过标准输入输出与父进程(例如 Cursor)进行通信。
你可以创建一个 .env
文件来指定优先的 RSSHub 实例。这对于拥有私有、稳定实例的用户非常有用。
在项目根目录下创建一个 .env
文件,并添加以下内容:
PRIORITY_RSSHUB_INSTANCE=https://my-rsshub.example.com
服务器将在启动时自动加载此配置,并将其置于轮询列表的顶部。
要将此服务器与像 Cursor 这样的 MCP 客户端一起使用,你需要将其添加到配置文件中。
npx
(推荐)如果该软件包已发布到 npm,你可以使用 npx
来运行服务器,而无需本地安装。这是最简单的方法。
~/.cursor/mcp_settings.json
)。{
"name": "rss",
"command": ["npx", "rss-mcp"],
"type": "stdio"
}
如果你已在本地克隆了仓库,你可以直接使用 node
运行它。
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。支持两种格式:
https://rsshub.app/bilibili/user/dynamic/208259
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 许可证。