An MCP (Message Chain Protocol) server designed to fetch RSS feeds and share them with Large Language Models (LLMs). This server integrates seamlessly with tools like Claude Desktop and supports advanced features like feed filtering and article fetching via Firecrawl.
Clone the repository:
bash
git clone https://github.com/mshk/mcp-rss-crawler.git
Create a claude_desktop_config.json
file based on the provided example:
json
{
"mcpServers": {
"rss-crawler": {
"command": "/path/to/bun",
"args": ["run", "/path/to/mcp-rss-crawler/src/mcp-cli.ts"],
"cwd": "/path/to/mcp-rss-crawler",
"env": {
"PORT": "5556",
"DB_DIR": "/path/to/mcp-rss-crawler",
"FIRECRAWL_API_KEY": "fc-<YOUR_FIRECRAWL_API_KEY>"
}
}
}
}
Install dependencies:
bash
bun install
Start Claude Desktop or your preferred MCP client.
The server implements the Message Chain Protocol (MCP), allowing LLMs to access RSS feeds via POST requests with a JSON body.
{
"messages": [
{
"role": "user",
"content": "What are the latest news from my RSS feeds?"
}
]
}
{
"messages": [
{
"role": "assistant",
"content": "Here are the latest articles from your RSS feeds:",
"name": "rss-mcp"
},
{
"role": "tool",
"content": "[{\"title\":\"Article Title\",\"summary\":\"Article summary...\",\"published\":\"2025-03-16T04:30:00.000Z\",\"origin\":\"Feed Name\",\"link\":\"https://example.com/article\"}]",
"name": "rss-feeds"
}
]
}
The server can be configured using environment variables or a .env
file:
5556
).~/.mcp-rss-crawler
).DEBUG=mcp-rss:*
environment variable for more detailed logs.This project is maintained by mshk. For more details, visit the GitHub repository.