mcp_rss

mcp_rss

8

MCP RSS is a server that facilitates the interaction with RSS feeds using the Model Context Protocol. It allows for parsing OPML files, updating articles from feeds, and managing article status with a dedicated API.

MCP RSS

MCP RSS is a Model Context Protocol (MCP) server for interacting with RSS feeds.

Features

  • Parse OPML files to import RSS feed subscriptions
  • Automatically fetch and update articles from RSS feeds
  • Expose RSS content through MCP API
  • Mark articles as favorites
  • Filter articles by source and status

Installation

Prerequisites

  • Node.js (v14 or higher)
  • MySQL database

Setup MySQL

$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

Install MCP

This MCP uses stdio for communication. Fill in npx mcp_rss in the command, fill in the configuration that needs to be customized in the environment variable, and at least use your own opml file.

Use in claude desktop

{
  "key": "rss",
  "command": "npx",
  "args": [
    "mcp_rss"
  ],
  "env": {
    "OPML_FILE_PATH": "/Users/guyanhua/feeds.opml"
  }
}

Configuration

Set the following environment variables to configure MCP RSS:

Configuration Options

OptionDescriptionDefault Value
DB_HOSTDatabase hostlocalhost
DB_PORTDatabase port3306
DB_USERNAMEDatabase usernameroot
DB_PASSWORDDatabase password123456
DB_DATABASEDatabase namemcp_rss
OPML_FILE_PATHPath to your OPML file with RSS feeds"./feeds.opml"
RSS_UPDATE_INTERVALInterval to fetch RSS updates (in minutes)1

MCP API Reference

The MCP RSS server exposes the following API methods:

get_content

Get articles from subscribed RSS feeds.

Parameters:

ParameterTypeDescriptionRequired
statusstringFilter by article status ("normal" or "favorite")No
sourcestringFilter by source (feed title)No
limitnumberMaximum number of articles to returnNo (default: 10)

Response:

{
  "articles": [
    {
      "id": 1,
      "title": "Article Title",
      "content": "Article content...",
      "link": "https://example.com/article",
      "pubDate": "2023-01-01T12:00:00Z",
      "fetchDate": "2023-01-01T12:30:00Z",
      "status": "normal",
      "feedTitle": "Example Feed",
      "feedCategory": "Technology"
    }
  ],
  "success": true
}

get_sources

Get all available RSS feed sources.

Parameters: None

Response:

{
  "sources": [
    {
      "id": 1,
      "title": "Example Feed",
      "category": "Technology"
    }
  ],
  "success": true
}

set_tag

Set the status of an article (normal or favorite).

Parameters:

ParameterTypeDescriptionRequired
statusstringArticle status ("normal" or "favorite")Yes
articleIdnumberID of the article to updateYes

Response:

{
  "success": true,
  "message": "Article 1 status has been updated to favorite"
}

License

MIT