RSS Feed Reader (with MCP)
Pricing
from $0.03 / 1,000 feed items
RSS Feed Reader (with MCP)
Read RSS and Atom feeds, normalize items, and send summaries or records to MCP connectors for monitoring, alerts, AI workflows, dashboards, and integrations.
Pricing
from $0.03 / 1,000 feed items
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Read RSS and Atom feeds on Apify and export clean, normalized dataset rows for monitoring, alerts, AI/RAG pipelines, MCP connectors, newsletters, dashboards, and no-code automations.
What does RSS Feed Reader do?
RSS Feed Reader fetches public RSS, Atom, and RDF feed URLs and converts feed entries into a structured Apify dataset.
It is designed for recurring jobs where you need reliable feed imports without maintaining your own parser, scheduler, exports, or integrations.
Who is it for?
- 📰 News monitoring teams tracking publishers, blogs, or government feeds.
- 📈 SEO and content marketers watching competitor content and topic updates.
- 🤖 AI workflow builders feeding fresh articles into RAG, summarization, or alerting flows.
- 🧰 Automation builders connecting RSS feeds to Make, Zapier, Slack, Airtable, or databases.
- 🧑💼 Agencies and analysts collecting repeatable content snapshots for clients.
Why use this actor?
- Fetch many feeds in one run.
- Normalize RSS and Atom entries into one dataset shape.
- Keep going when one feed fails.
- Add stable dedupe keys for scheduled monitoring.
- Export results through Apify datasets, API, webhooks, MCP connectors, and integrations.
What data can it extract?
| Field | Description |
|---|---|
feedUrl | Feed URL that produced the item |
feedTitle | Feed title when available |
feedDescription | Feed description or subtitle |
feedLink | Website link advertised by the feed |
feedLanguage | Feed language when present |
feedLastBuildDate | Feed-level update date when present |
feedType | RSS, Atom, or RDF parser mode |
title | Feed item title |
description | Item summary or description |
content | Full content field when the feed provides it |
link | Item URL |
guid | Item GUID or ID |
pubDate | Original publication date text |
isoDate | Normalized ISO publication date |
author | Author or creator when available |
categories | Item categories or tags |
imageUrl | First media/enclosure image URL |
mediaUrls | Media and enclosure URLs |
dedupeKey | Stable key for de-duplication |
fetchedAt | Timestamp when the actor fetched the feed |
error | Error message for failed feed URLs when enabled |
How much does it cost to read RSS feeds?
This actor uses pay-per-event pricing.
- A small start event is charged once per run.
- A result event is charged for each normalized feed item or error row saved.
- Exact pricing is visible on the Apify Store pricing tab before you run the actor.
RSS parsing is lightweight, so typical runs are inexpensive. Keep maxItemsPerFeed low for test runs, then increase it for production schedules.
Quick start
- Open the actor on Apify.
- Add one or more RSS or Atom feed URLs.
- Choose the maximum number of items per feed.
- Run the actor.
- Export the dataset as JSON, CSV, Excel, RSS, or through the Apify API.
Example input
{"feedUrls": [{ "url": "https://feeds.bbci.co.uk/news/rss.xml" },{ "url": "https://www.nasa.gov/news-release/feed/" }],"maxItemsPerFeed": 20,"includeContent": true,"includeFeedMetadata": true,"dedupeBy": "guid","requestTimeoutSecs": 20,"emitErrorItems": true,"mcpMode": "off","maxMcpRecords": 20}
Input options
feedUrls
Add one or more public RSS, Atom, or RDF feed URLs.
maxItemsPerFeed
Controls how many entries are saved from each feed. Use a low number for first runs and larger values for production imports.
includeContent
When enabled, the actor includes full content fields such as content:encoded or Atom content if available.
includeFeedMetadata
When enabled, each row includes feed-level title, description, website link, language, and update date when present.
dedupeBy
Choose how duplicate entries are detected across all feeds in the same run:
guid— recommended for most feeds.link— useful when feeds have unreliable IDs.titleAndDate— useful for feeds that omit both GUID and stable links.
requestTimeoutSecs
Sets the timeout for each feed URL. Slow or unreachable feeds can be recorded as error rows while other feeds continue.
emitErrorItems
When enabled, failed feed URLs produce dataset rows with the error field populated. This is useful for scheduled alerts.
mcpConnectors
Optional Apify MCP connector resources that can receive a run digest after the dataset is saved. Use this when you want the actor to send feed-monitoring results directly to a connected destination such as Slack, Notion, Supabase, or another MCP-compatible tool.
mcpMode
Controls MCP delivery. Keep off for dataset-only runs, choose sendSummary to send feed counts and run context, or choose sendRecords to include capped sample feed items.
mcpInstruction
A short natural-language instruction for the selected connector, such as Send a concise RSS digest to #news-monitoring. Do not paste API keys or third-party credentials here.
maxMcpRecords
Limits how many saved feed rows are included in MCP delivery when mcpMode is sendRecords. The full dataset remains available even when the MCP digest is capped.
Example output
{"feedUrl": "https://feeds.bbci.co.uk/news/rss.xml","feedType": "rss","feedTitle": "BBC News","title": "Example headline","description": "Short item summary","content": "Longer content when provided by the feed","link": "https://www.bbc.com/news/example","guid": "https://www.bbc.com/news/example","pubDate": "Fri, 26 Jun 2026 10:00:00 GMT","isoDate": "2026-06-26T10:00:00.000Z","author": null,"categories": ["World"],"imageUrl": "https://example.com/image.jpg","mediaUrls": ["https://example.com/image.jpg"],"fetchedAt": "2026-06-26T13:00:00.000Z","dedupeKey": "guid:https://www.bbc.com/news/example"}
Tips for best results
- ✅ Use direct feed URLs, not regular website homepages.
- ✅ Start with 10–20 items per feed for testing.
- ✅ Use scheduled runs for monitoring workflows.
- ✅ Keep
emitErrorItemsenabled if downstream automations need to know when a feed fails. - ✅ Use
dedupeKeyin your database or automation tool to avoid duplicate alerts.
Scheduling and monitoring
RSS Feed Reader works well with Apify schedules.
For example:
- Run every 15 minutes for breaking news feeds.
- Run hourly for blogs and product changelogs.
- Run daily for research feeds and newsletters.
Use the dataset, webhook, or API output to trigger downstream actions.
Integrations
You can connect results to:
- Slack alerts for new headlines.
- MCP connectors for Slack, Notion, Supabase, or custom tools.
- Airtable or Google Sheets content trackers.
- Make or Zapier workflows.
- Vector database ingestion jobs.
- Newsletter drafting pipelines.
- Internal monitoring dashboards.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/rss-feed-reader').call({feedUrls: [{ url: 'https://feeds.bbci.co.uk/news/rss.xml' }],maxItemsPerFeed: 10});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/rss-feed-reader').call(run_input={'feedUrls': [{'url': 'https://feeds.bbci.co.uk/news/rss.xml'}],'maxItemsPerFeed': 10,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~rss-feed-reader/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"feedUrls":[{"url":"https://feeds.bbci.co.uk/news/rss.xml"}],"maxItemsPerFeed":10}'
MCP usage
RSS Feed Reader (with MCP) supports two MCP workflows:
- Run the actor from an MCP client such as Claude Desktop or Claude Code through Apify MCP.
- Deliver results to MCP connectors after the feed dataset is saved by setting
mcpConnectors,mcpMode,mcpInstruction, andmaxMcpRecordsin the actor input.
MCP delivery is safe-by-default: it is off unless you select connectors, it never asks for third-party credentials in the input, and it only calls send/post/write/create/insert/append/log-style tools discovered on the connector. Delivery status is stored in the MCP_DELIVERY_STATUS key-value store record.
MCP server URL:
https://mcp.apify.com/?tools=fetch_cat/rss-feed-reader
Claude Code setup:
$claude mcp add apify-rss-feed-reader https://mcp.apify.com/?tools=fetch_cat/rss-feed-reader
Claude Desktop JSON configuration:
{"mcpServers": {"apify-rss-feed-reader": {"url": "https://mcp.apify.com/?tools=fetch_cat/rss-feed-reader"}}}
Example prompts:
- "Read these RSS feeds and summarize the newest five posts."
- "Monitor this changelog feed and tell me what changed since yesterday."
- "Fetch these news feeds and prepare a table of titles, URLs, and publish dates."
Example MCP connector input:
{"feedUrls": [{ "url": "https://feeds.bbci.co.uk/news/rss.xml" }],"maxItemsPerFeed": 10,"mcpConnectors": ["your-connector-resource-id"],"mcpMode": "sendRecords","mcpInstruction": "Send a concise RSS digest to #news-monitoring.","maxMcpRecords": 10}
Common workflows
News alerting
Run the actor on a schedule, filter rows by keyword, and send matches to Slack or email.
AI/RAG ingestion
Fetch feed entries, deduplicate by dedupeKey, then send new links and content to your embedding pipeline.
Competitor content tracking
Track competitor blog feeds and export the dataset to a spreadsheet or CRM.
Newsletter research
Collect article titles, summaries, links, and publication dates for editorial review.
FAQ
Can this actor read both RSS and Atom feeds?
Yes. Add public RSS, Atom, or RDF feed URLs in the input and the actor normalizes entries into the same dataset shape.
Does it crawl the full article pages?
No. It reads the feed entries only. Some publishers include full content in the feed; others include summaries and links.
Troubleshooting
Why did a feed return an error row?
The feed URL may be unreachable, blocked, malformed, or not a real RSS/Atom feed. Open the feed URL in a browser and check whether it returns XML.
Why are some fields empty?
RSS and Atom publishers choose which fields to include. Some feeds omit authors, categories, images, or full content.
Why do I see duplicates across scheduled runs?
Scheduled runs create new datasets. Store dedupeKey in your downstream system and skip rows you have already processed.
Legality and responsible use
This actor is intended for public RSS and Atom feed URLs. Make sure your use complies with each publisher's terms, copyright rules, and applicable laws. Do not use the actor to access private, paid, or unauthorized feeds.
Related scrapers
You may also find these Apify actors useful:
- Google News Scraper:
https://apify.com/fetch_cat/google-news-scraper - Google Trending Searches Scraper:
https://apify.com/fetch_cat/google-trending-searches-scraper - Substack Posts Scraper:
https://apify.com/fetch_cat/substack-posts-scraper
Limits
- The actor only reads public feed URLs supplied in the input.
- It does not crawl full websites behind each item link.
- It does not bypass logins, paywalls, or private feeds.
- Very large feeds should be capped with
maxItemsPerFeed.
Changelog
0.1
Initial version with RSS, Atom, RDF parsing, multi-feed input, feed metadata, media URL extraction, dedupe keys, and optional error rows.