RSS MCP Server
Enables language models to fetch and parse standard RSS/Atom feeds and RSSHub content, with multi-instance support to improve retrieval success rates.
Tools
get_feed
Get RSS feed from any URL, including RSSHub feeds.
README
RSS MCP Server
This is a Model Context Protocol (MCP) server built with TypeScript. It provides a versatile tool to fetch and parse any standard RSS/Atom feed, and also includes special support for RSSHub feeds. With this server, language models or other MCP clients can easily retrieve structured content from various web sources.
The server comes with a built-in list of public RSSHub instances and supports a polling mechanism to automatically select an available instance, significantly improving the success rate and stability of data retrieval.
✨ Features
- Universal Feed Parsing: Fetch and parse any standard RSS/Atom feed from a given URL.
- Enhanced RSSHub Support: Provides a tool named
get_feedto fetch any RSSHub-supported feed via MCP, with multi-instance support. - Multi-instance Support: Includes a list of public RSSHub instances and automatically polls to find an available service.
- Smart URL Parsing: Supports standard RSSHub URLs and a simplified
rsshub://protocol format. - Priority Instance Configuration: Allows setting a preferred RSSHub instance via the
PRIORITY_RSSHUB_INSTANCEenvironment variable. - Robust Error Handling: If a request to one instance fails, it automatically tries the next one until it succeeds or all instances have failed.
- Content Cleaning: Uses Cheerio to clean the feed content and extract plain text descriptions.
- Standardized Output: Converts the fetched RSS feed into a structured JSON format.
📦 Installation
First, clone the project repository, then install the required dependencies.
git clone <your-repo-url>
cd rss-mcp
npm install
🚀 Usage
1. Build the Project
Before running, you need to compile the TypeScript code into JavaScript:
npm run build
2. Run the Server
After a successful build, start the MCP server:
npm start
The server will then communicate with the parent process (e.g., Cursor) via Stdio.
3. Configure a Priority Instance (Optional)
You can create a .env file to specify a priority RSSHub instance. This is very useful for users who have a private, stable instance.
Create a .env file in the project root directory and add the following content:
PRIORITY_RSSHUB_INSTANCE=https://my-rsshub.example.com
The server will automatically load this configuration on startup and place it at the top of the polling list.
🔧 MCP Server Configuration
To use this server with an MCP client like Cursor, you need to add it to your configuration file.
Method 1: Using npx (Recommended)
If the package is published to npm, you can use npx to run the server without a local installation. This is the easiest method.
-
Locate your MCP configuration file. (e.g.,
~/.cursor/mcp_settings.json) -
Add the following server entry:
{ "name": "rss", "command": ["npx", "rss-mcp"], "type": "stdio" }
Method 2: Local Installation
If you have cloned the repository locally, you can run it directly with node.
-
Clone and build the project as described in the "Installation" and "Usage" sections.
-
Locate your MCP configuration file.
-
Add the following server entry, making sure to use the absolute path to the compiled
index.jsfile:{ "name": "rss", "command": ["node", "/path/to/your/rss-mcp/dist/index.js"], "type": "stdio" }Important: Replace
/path/to/your/rss-mcp/dist/index.jswith the correct absolute path on your system.
After adding the configuration, restart your MCP client (e.g., Cursor) for the changes to take effect. The rss server will then be available, and you can call the get_feed tool.
🛠️ Tool Definition
get_feed
Fetches and parses an RSS feed from a given URL. It supports both standard RSS/Atom feeds and RSSHub feeds.
Input Parameters
url(string, required): The URL of the RSS feed to fetch. Two formats are supported:- Standard URL:
https://rsshub.app/bilibili/user/dynamic/208259 rsshub://protocol:rsshub://bilibili/user/dynamic/208259(the server will automatically match an available instance)
- Standard URL:
Output
Returns a JSON string containing the feed information, with the following structure:
{
"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"]
}
]
}
📜 Main Dependencies
- @modelcontextprotocol/sdk: For building the MCP server.
- axios: For making HTTP requests.
- rss-parser: For parsing RSS/Atom feeds.
- cheerio: For parsing and manipulating HTML content.
- date-fns-tz: For handling time-zone-related date formatting.
- dotenv: For loading environment variables from a
.envfile.
📄 License
This project is licensed under the Apache-2.0 License.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。