https://github.com/buhe/mcp_rss
MCP RSS is a Model Context Protocol (MCP) server for interacting with RSS feeds.
https://github.com/buhe/mcp_rss
Last synced: about 1 month ago
JSON representation
MCP RSS is a Model Context Protocol (MCP) server for interacting with RSS feeds.
- Host: GitHub
- URL: https://github.com/buhe/mcp_rss
- Owner: buhe
- License: mit
- Created: 2025-03-19T10:04:54.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-04-22T09:06:20.000Z (2 months ago)
- Last Synced: 2025-04-22T10:05:05.924Z (2 months ago)
- Language: TypeScript
- Homepage:
- Size: 79.1 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- mcp-index - RSS Feed Manager - Fetch and manage articles from various RSS feeds with features for automatic fetching, filtering, and favoriting articles. Supports importing RSS feed subscriptions via OPML files and exposes the content through an MCP API. (News and Media)
README
# 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
```bash
$ 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
```json
{
"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
| Option | Description | Default Value |
|--------|-------------|--------------|
| DB_HOST | Database host | localhost |
| DB_PORT | Database port | 3306 |
| DB_USERNAME | Database username | root |
| DB_PASSWORD | Database password | 123456 |
| DB_DATABASE | Database name | mcp_rss |
| OPML_FILE_PATH | Path to your OPML file with RSS feeds | "./feeds.opml" |
| RSS_UPDATE_INTERVAL | Interval 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:**
| Parameter | Type | Description | Required |
|-----------|------|-------------|---------|
| status | string | Filter by article status ("normal" or "favorite") | No |
| source | string | Filter by source (feed title) | No |
| limit | number | Maximum number of articles to return | No (default: 10) |**Response:**
```json
{
"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:**
```json
{
"sources": [
{
"id": 1,
"title": "Example Feed",
"category": "Technology"
}
],
"success": true
}
```### set_tag
Set the status of an article (normal or favorite).
**Parameters:**
| Parameter | Type | Description | Required |
|-----------|------|-------------|---------|
| status | string | Article status ("normal" or "favorite") | Yes |
| articleId | number | ID of the article to update | Yes |**Response:**
```json
{
"success": true,
"message": "Article 1 status has been updated to favorite"
}
```## License
MIT