brooksy4503/rss-agent-discovery
Overview
This skill discovers RSS and Atom feeds from websites and returns machine-parseable JSON output tailored for AI agents. It validates that discovered feeds return XML, deduplicates results, and emits errors to stderr so agents can separate data and diagnostics. Use it to automate feed discovery for monitoring, aggregation, or content ingestion workflows.
How this skill works
The tool scans a target URL’s HTML <link> tags, probes common feed paths (e.g., /rss.xml, /atom, /feed) and optionally scans blog subdirectories. It fetches candidate URLs to confirm they return valid XML, deduplicates matches, and emits a structured JSON result array with per-URL feed lists and any scan errors. Exit codes and stderr are used for automation-friendly control flow.
When to use it
- When an AI agent needs programmatic feed URLs from a website
- During setup of feed readers, aggregators, or monitoring pipelines
- To validate that feeds actually return XML before importing
- When discovering feeds across many sites in parallel
- For CI or automation that requires semantic exit codes
Best practices
- Pipe JSON output into jq or a JSON parser for deterministic extraction
- Use the timeout option for slow sites (--timeout <ms>) to avoid stalls
- Use --skip-blogs to speed up scans when blog paths are irrelevant
- Combine parallel calls for batch site discovery to speed large runs
- Check stderr for diagnostics while parsing stdout JSON for results
Example use cases
- Automated agent that builds a curated feed list: npx -y rss-agent-discovery https://example.com
- CI job that verifies a site still exposes feeds using exit codes and stderr
- Bulk discovery: run discovery across many domains in parallel and aggregate results
- Content monitoring: confirm feed validity before adding to an aggregator
- Integrate into a bot that subscribes to new feeds discovered from partner sites
FAQ
The output includes success, optional partialResults, and a results array. Each result has the scanned url, feeds array (url, title, type), and error or null.
How do exit codes map to outcomes?
Exit code 0 means one or more feeds found, 1 means no feeds found, and 2 indicates an error occurred during scanning.