mcpField
R
rss-reader

rss-reader

github.com/winsorllcProductivity072 installsUpdated 35w ago
Repository

About rss-reader

rss-reader is a skill for fetching and parsing RSS and Atom feeds. It uses command-line utilities or Python examples to list feed items, titles, dates, descriptions, and links.

Key features

  1. 01Fetch RSS and Atom feeds
  2. 02Extract feed titles and links
  3. 03List recent items and dates
  4. 04Parse feeds with CLI tools or Python

Use cases

  1. 01Check the latest posts from a blog
  2. 02Monitor news sources for updates
  3. 03Collect articles from multiple feeds

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/winsorllc/upgraded-carnival --skill rss-reader

After installing, type/rss-readerin Claude Code to confirm it loaded.

Details

From the project README

RSS Reader Skill

Read and parse RSS/Atom feeds.

When to Use

  • Get latest articles from a feed
  • Subscribe to news sources
  • Monitor blog updates
  • Aggregate multiple feeds

Feed Information

Get Feed Details
# Get feed info
curl -s "https://example.com/feed.xml" | head -20

# Check if RSS or Atom
curl -s "https://example.com/feed.xml" | head -1

Parse Feeds

Using xmlstarlet
# Install if needed
# apt install xmlstarlet

# List all items
curl -s "feed.xml" | xmlstarlet sel -t -m "//item" -v "title" -n

# Get latest 5 titles
curl -s "feed.xml" | xmlstarlet sel -t -m "//item[position() <= 5]" -v "title" -n
Using xmllint
# Parse with xmllint
curl -s "feed.xml" | xmllint --format - 2>/dev/null | head -50
Using Python
# Simple feed parser
python3 -c "
import xml.etree.ElementTree as ET
import urllib.request

url = 'https://example.com/feed.xml'
data = urllib.request.urlopen(url).read()
root = ET# Find channel.fromstring(data)


for item in root.findall('.//item'):
    title = item.find('title')
    if title is not None:
        print(title.text)
"
Using yq (if available)
# Convert RSS to YAML
curl -s "feed.xml" | yq -x '.rss.channel.item[]'

Common Commands

List Feed Items
# Get all item titles
curl -s "feed.xml" | grep -o '<title>[^<]*</title>' | sed 's/<title>//;s/<\/title>//'

# With descriptions
curl -s "feed.xml" | grep -o '<title>[^<]*</title>\|<description>[^<]*</description>'
Get Latest N Items
# Latest 10 items with dates
curl -s "feed.xml" | grep -o '<item>.*</item>' | head -10 | \
  while read item; do
    echo "$item" | grep -o '<title>[^<]*</title>'
    echo "$item" | grep -o '<pubDate>[^<]*</pubDate>'
    echo "---"
  done
Extract Links
# Get all article links
curl -s "feed.xml" | grep -o '<link>[^<]*</link>' | sed 's/<link>//;s/<\/link>//'

Examples

Hacker News RSS
curl -s "https://news.ycombinator.com/rss" | \
  grep -o '<title>[^<]*</title>' | sed 's/<title>//;s/<\/title>//' | head -20
TechCrunch
curl -s "https://techcrunch.com/feed/" | \
  grep -o '<title>[^<]*</title>' | head -15
GitHub Trending
# GitHub doesn't have RSS, but you can use GitHub's API
curl -s "https://api.github.com/repos?sort=updated&per_page=10" | \
  jq '.[].full_name'

Feed URLs

Common RSS feed patterns:

  • WordPress: /feed/ or /feed/rss/
  • Medium: /{username}/feed
  • YouTube: https://www.youtube.com/feeds/videos.xml?channel_id={id}
  • Twitter: Use Nitter or RSSHub

Notes

  • RSS feeds may have different element names (item vs entry)
  • Atom feeds use <entry> instead of <item>
  • Some feeds require user-agent headers
  • Consider caching feeds to avoid excessive requests

Comments

Markdown supported