RSS Reader MCP Server

by tanevanwifferen

423 downloads
Not rated
GitHub

About

A TypeScript-based MCP server that provides RSS feed reading capabilities for fetching and parsing structured data from RSS/Atom feeds via a single tool. It uses rss-parser and axios with proper error handling and timeouts.

Details

Author
tanevanwifferen
Downloads
423
Categories
Other

- Fetches RSS/Atom feeds with a 10‑second timeout
- Parses standard fields: title, link, description, pubDate, author, categories, enclosures
- Extracts custom fields: media content, thumbnails, Dublin Core creator, content‑encoded
- Returns structured JSON with feed metadata and item count
- Comprehensive error handling for network, HTTP, and parsing issues
- Supports RSS 2.0, RSS 1.0 (RDF), and Atom feeds

Install dependencies with npm install, build with npm run build, then add the server config to Claude Desktop’s claude_desktop_config.json (macOS or Windows). Invoke the get_items tool with a URL input to fetch feed items.

RSS Reader MCP Server

A TypeScript-based MCP server that provides RSS feed reading capabilities for fetching and parsing RSS/Atom feeds from URLs.

Overview

This MCP server implements RSS feed reading functionality by providing tools to fetch, parse, and extract structured data from RSS and Atom feeds. It uses the rss-parser library for robust feed parsing and axios for HTTP requests with proper error handling and timeouts.

Features

Tools

- get_items - Fetch RSS feed items from a given URL - Input: RSS feed URL (required) - Output: Structured JSON containing feed metadata and items - Capabilities: - Fetches RSS/Atom feeds with 10-second timeout - Parses standard RSS fields (title, link, description, pubDate, author, etc.) - Extracts custom fields (media content, thumbnails, encoded content) - Handles categories and enclosures - Provides comprehensive error handling for network and parsing issues

Supported Feed Formats

- RSS 2.0 - RSS 1.0 (RDF) - Atom feeds - Custom fields including: - Media content and thumbnails - Dublin Core creator fields - Content-encoded fields

Error Handling

- URL validation - Network timeout handling (10 seconds) - HTTP error status handling - RSS parsing error handling - Comprehensive error messages for debugging

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Installation

To use with Claude Desktop, add the server config:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "rss-reader-server": {
      "command": "node",
      "args": ["/path/to/rss-reader-server/build/index.js"]
    }
  }
}

Usage Example

Once connected, you can use the get_items tool to fetch RSS feed items:

Tool: get_items
Input: { "url": "https://example.com/feed.xml" }

The server will return a structured JSON response containing:
- Feed URL
- Total item count
- Array of feed items with:
- Title, link, description
- Publication date and author
- Categories (if available)
- Enclosure information (for podcasts/media)

Dependencies

- @modelcontextprotocol/sdk: MCP protocol implementation
- rss-parser: RSS/Atom feed parsing
- axios: HTTP client for fetching feeds
- zod: Runtime type validation

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser.

Error Responses

The server provides detailed error messages for common issues:
- Invalid URL format
- Network connectivity problems
- HTTP errors (404, 500, etc.)
- Request timeouts
- RSS parsing failures

All errors are returned in a structured format with descriptive messages to help with troubleshooting.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.