mcp rss aggregator
mcp-rss-aggregator
mcp-rss-aggregator
An integration that allows Claude Desktop to fetch and read content from your favorite RSS feeds using the Model Context Protocol (MCP). |
|
Clone or download this repository:
git clone https://github.com/imprvhub/mcp-rss-aggregator
cd mcp-rss-aggregator
Install dependencies:
npm install
Build the project:
npm run build
The RSS Aggregator supports both OPML and JSON formats for feed configuration.
OPML (Outline Processor Markup Language) is a standard format used by most RSS readers to export and import feed subscriptions.
A sample OPML file with popular feeds is included in the public/sample-feeds.opml
file. You can:
Most RSS readers allow you to export your subscriptions as an OPML file.
Alternatively, you can define your feeds in a JSON file with the following format:
[
{
"title": "Hacker News",
"url": "https://news.ycombinator.com/rss",
"htmlUrl": "https://news.ycombinator.com/",
"category": "Tech News"
},
{
"title": "TechCrunch",
"url": "https://techcrunch.com/feed/",
"htmlUrl": "https://techcrunch.com/",
"category": "Tech News"
}
]
There are two ways to run the MCP server:
node build/index.js
Keep this terminal window open while using Claude Desktop. The server will run until you close the terminal.
The Claude Desktop can automatically start the MCP server when needed. To set this up:
The Claude Desktop configuration file is located at:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%Claudeclaude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
Edit this file to add the RSS Aggregator MCP configuration. If the file doesn t exist, create it:
{
"mcpServers": {
"rssAggregator": {
"command": "node",
"args": ["ABSOLUTE_PATH_TO_DIRECTORY/mcp-rss-aggregator/build/index.js"],
"feedsPath": "ABSOLUTE_PATH_TO_YOUR_FEEDS_FILE.opml"
}
}
}
Important Notes:
- Replace ABSOLUTE_PATH_TO_DIRECTORY
with the complete absolute path where you installed the MCP
- macOS/Linux example: /Users/username/mcp-rss-aggregator
- Windows example: C:Usersusernamemcp-rss-aggregator
- Replace ABSOLUTE_PATH_TO_YOUR_FEEDS_FILE.opml
with the path to your OPML or JSON file
- If omitted, the sample feeds file will be used
If you already have other MCPs configured, simply add the "rssAggregator" section inside the "mcpServers" object:
{
"mcpServers": {
"otherMcp1": {
"command": "...",
"args": ["..."]
},
"rssAggregator": {
"command": "node",
"args": [
"ABSOLUTE_PATH_TO_DIRECTORY/mcp-rss-aggregator/build/index.js"
],
"feedsPath": "ABSOLUTE_PATH_TO_YOUR_FEEDS_FILE.opml"
}
}
}
The MCP server will automatically start when Claude Desktop needs it, based on the configuration in your claude_desktop_config.json
file.
rss
command to interact with the RSS Aggregator MCP ServerThe RSS Aggregator MCP provides a tool named rss
with several commands:
Command | Description | Parameters | Example |
---|---|---|---|
latest |
Show latest articles from all feeds | Optional limit (--N) | rss latest --20 |
top or best |
Show top articles from all feeds | Optional limit (--N) | rss top --15 |
list |
List all available feeds | None | rss list |
--[feed-id] |
Show articles from a specific feed | Optional limit (--N) | rss --hackernews --10 |
[category] |
Show articles from a specific category | Optional limit (--N) | rss "Tech News" --20 |
set-feeds-path --[path] |
Set path to OPML/JSON file | Path to file | rss set-feeds-path --/path/to/feeds.opml |
Here are various examples of how to use the RSS Aggregator with Claude:
rss latest
rss top --20
rss list
rss "Tech News"
rss --hackernews
rss --techcrunch --15
You can also interact with the MCP using natural language. Claude will interpret these requests and use the appropriate commands:
Get your news briefing from all your sources:
rss latest --25
This will fetch the 25 most recent articles across all your feeds, giving you a quick overview of the latest news.
Find the most important or popular articles:
rss top --20
Focus on specific content categories:
rss "Tech News" --30
rss "Politics" --15
rss "Science" --10
Read updates from specific sources you follow:
rss --hackernews --20
rss --nytimes
rss --techcrunch --15
Find out what feeds you have configured:
rss list
You can make multiple sequential requests to build a comprehensive view:
rss "Tech News" --10
rss "Finance" --10
rss top --5
Morning Routine:
rss top --10
rss "News" --5
Industry Research:
rss "Industry News" --15
rss --bloomberg --5
Tech Updates:
rss --hackernews --10
rss --techcrunch --5
You can ask Claude to analyze or summarize the articles:
After running: rss latest --10
Ask: "Can you summarize these articles?"
After running: rss "Tech News" --15
Ask: "What are the key trends in these tech articles?"
After running: rss --nytimes --washingtonpost --10
Ask: "Compare how these sources cover current events"
If you see the error "MCP RSS Aggregator: Server disconnected" in Claude Desktop:
node build/index.js
from the project directoryIf the server starts successfully, use Claude while keeping this terminal open
Check your configuration:
claude_desktop_config.json
is correct for your system
) for Windows pathsIf the RSS Aggregator tools don t appear in Claude: - Make sure you ve restarted Claude Desktop after configuration - Check the Claude Desktop logs for any MCP communication errors - Ensure the MCP server process is running (run it manually to confirm)
If your feeds aren t loading properly:
- Make sure your OPML/JSON file is correctly formatted
- Check if the feedsPath
in your configuration is correct
- Try running the server manually with a known good feeds file
Contributions to improve the RSS Aggregator are welcome! Here are some ways you can contribute:
This project is licensed under the Mozilla Public License 2.0 - see the LICENSE file for details.
[
{
"description": "Interfaz principal para Hacker News con comandos simplificados",
"inputSchema": {
"properties": {
"command": {
"description": "Comando a ejecutar (latest, top, best, history, comments)",
"type": "string"
},
"param": {
"description": "Parámetro opcional, número precedido por -- (ejemplo: --10, --50)",
"type": "string"
}
},
"required": [
"command"
],
"type": "object"
},
"name": "rss"
}
]