Utilizes Axios for making HTTP requests to fetch RSS feeds from various sources, enhancing the reliability of data retrieval
Provides the ability to fetch user dynamics and content from Bilibili through RSSHub, allowing access to structured user activity data
Uses Cheerio to clean and parse HTML content from RSS feeds, extracting plain text descriptions for better readability
Supports configuration through environment variables loaded from .env files, allowing customization of priority RSSHub instances
Enables fetching and parsing of any standard RSS/Atom feed, converting the content into a structured JSON format with cleaned text descriptions
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_feed
to 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_INSTANCE
environment 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.
🚀 Usage
1. Build the Project
Before running, you need to compile the TypeScript code into JavaScript:
2. Run the Server
After a successful build, start the MCP server:
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:
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:
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.js
file:Important: Replace/path/to/your/rss-mcp/dist/index.js
with 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:
📜 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
.env
file.
📄 License
This project is licensed under the Apache-2.0 License.
You must be authenticated.
Tools
Enables language models to fetch and parse standard RSS/Atom feeds and RSSHub content, with multi-instance support to improve retrieval success rates.
- ✨ Features
- 📦 Installation
- 🚀 Usage
- 🔧 MCP Server Configuration
- 🛠️ Tool Definition
- 📜 Main Dependencies
- 📄 License
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityProvides tools to fetch and search news from The Verge's RSS feed, allowing users to get today's news, retrieve random articles from the past week, and search for specific keywords in recent Verge content.Last updated -31TypeScriptMIT License
Juhe News MCP Serverofficial
-securityFlicense-qualityA Model Context Protocol server that enables large language models to access the latest trending news headlines and detailed content across various categories including recommended, domestic, technology, and sports news.Last updated -Python- -securityFlicense-qualityAn MCP server that fetches RSS feeds and shares them with LLMs, allowing AI assistants to access and present the latest news and articles from configured feeds.Last updated -1TypeScript
- -securityFlicense-qualityA TypeScript-based Model Context Protocol server that fetches, searches, and formats news articles from NewsAPI.org into reader-friendly Markdown digests using LLMs (Gemini and Claude).Last updated -TypeScript