RSS Agent Discovery
rss-agent-discovery
AI agent-focused RSS feed discovery tool with JSON output. Use when Claude needs to discover RSS/Atom feeds from websites for monitoring, aggregation, or content syndication purposes. Triggered by: "find RSS feed", "discover RSS", "find Atom feed", "get RSS URLs", "find feeds from [URL]", or when...
SKILL.md
Full skill instructions
RSS Agent Discovery
AI agent-focused RSS feed discovery tool with machine-parseable JSON output.
Quick start
npx -y rss-agent-discovery https://vercel.com
Output:
{
"success": true,
"results": [{
"url": "https://vercel.com/",
"feeds": [{
"url": "https://vercel.com/atom",
"title": "atom",
"type": "atom"
}],
"error": null
}]
}
Core workflow
npx -y rss-agent-discovery <url> [url2] [url3]...
Parse JSON output:
npx -y rss-agent-discovery https://example.com | jq '.results[0].feeds'
Output schema
{
success: boolean, // true if no URLs had errors
partialResults?: boolean, // true if success=false but some feeds found
results: [{
url: string, // scanned URL
feeds: [{
url: string, // feed URL
title: string, // feed title from HTML
type: 'rss' | 'atom' | 'unknown'
}],
error: string | null // error message if scan failed
}]
}
Exit codes
0- One or more feeds found (or--help/--versionused)1- No feeds found2- Error occurred
Use exit code for automation:
npx -y rss-agent-discovery https://example.com 2>/dev/null
if [ $? -eq 0 ]; then
echo "Feeds found!"
fi
Options
--timeout <ms> # Timeout per URL (default: 10000)
--skip-blogs # Skip blog subdirectory scanning
--max-blogs <n> # Limit blog scans (default: 3)
--blog-paths <paths> # Custom blog paths (comma or pipe separated)
--verbose # Debug logging to stderr
--help # Show help
--version # Show version
Examples:
npx -y rss-agent-discovery --timeout 15000 https://example.com
npx -y rss-agent-discovery --skip-blogs https://example.com
npx -y rss-agent-discovery --blog-paths '/blog,/news,/articles' https://example.com
npx -y rss-agent-discovery --blog-paths '/blog|/updates' https://example.com
npx -y rss-agent-discovery --max-blogs 5 https://example.com
Features
- Discovers feeds from HTML
<link>tags - Tests common paths (
/rss.xml,/atom,/feed, etc.) - Scans blog subdirectories (
/blog,/news,/articles) - Parallel processing for multiple URLs
- Deduplicates feeds across all sources
- Validates feeds actually return XML
- JSON output to stdout, errors to stderr
Common patterns
Single URL discovery
npx -y rss-agent-discovery https://example.com | jq '.results[0].feeds[].url'
Multiple URLs (parallel)
npx -y rss-agent-discovery https://site1.com https://site2.com https://site3.com
Extract all feed URLs
npx -y rss-agent-discovery https://example.com | jq -r '.results[0].feeds[].url'
Check if feeds exist without parsing
npx -y rss-agent-discovery https://example.com 2>/dev/null
exit_code=$?
[ $exit_code -eq 0 ] && echo "Feeds found"
Custom timeout for slow sites
npx -y rss-agent-discovery --timeout 20000 https://slow-site.com
Skip blog scanning for faster results
npx -y rss-agent-discovery --skip-blogs https://example.com
Integration examples
Shell script
#!/bin/bash
result=$(npx -y rss-agent-discovery "$1" 2>/dev/null)
if [ $? -eq 0 ]; then
echo "Found feeds:"
echo "$result" | jq '.results[0].feeds'
fi
Python
import subprocess
import json
result = subprocess.run(
['npx', '-y', 'rss-agent-discovery', url],
capture_output=True,
text=True
)
if result.returncode == 0:
data = json.loads(result.stdout)
feeds = data['results'][0]['feeds']
JavaScript/Node.js
const { execSync } = require('child_process');
const result = JSON.parse(
execSync('npx -y rss-agent-discovery https://example.com').toString()
);
const feeds = result.results[0].feeds;
Why use this tool
Existing RSS discovery tools (rss-url-finder, rss-finder) are designed for humans:
- Output human-readable text
- Don't validate feeds exist
- Lack structured machine output
This tool is designed for AI agents:
- JSON-only output (machine-parseable)
- Errors to stderr (separated channel)
- Semantic exit codes
- Validates feeds return XML
- Discovers feeds AI agents miss
Testing
Test the tool works:
npx -y rss-agent-discovery https://vercel.com
npx -y rss-agent-discovery https://news.ycombinator.com
