RSS and Atom Feed Normaliser: One JSON Schema for Any Feed
Turn any RSS 2.0, RSS 1.0, Atom or JSON Feed into one clean JSON schema: feed title, link and language, then items with id, title, URL, ISO published/updated dates, summary, categories and enclosure. Give a feed URL or a normal web page and the feed is discovered from its link tags. Author names are not returned.
x402: $0.003 per callMCP tool: rss_feed_normaliser
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
url * | string | Feed URL, or a web page that links to a feed. | |
maxItems | integer | 50 | Maximum number of items returned (newest first as published in the feed). |
summaryChars | integer | 400 | Maximum characters of the plain-text summary per item. |
* required
Source and freshness
- Source and licence
- Stated in every response (field source).
- Last verified
- 2026-10-03 (hourly check against the live source)
Use it
HTTP (x402)
curl -i "https://api.ambolt.dev/v1/rss-feed-normaliser?url=https%3A%2F%2Ffeeds.bbci.co.uk%2Fnews%2Frss.xml&maxItems=5"Returns 402 Payment Required with the price until an x402 payment is attached; @x402/fetch does this for you. See Get started.
MCP
{ "mcpServers": { "ambolt": { "url": "https://api.ambolt.dev/mcp" } } }
# then call the tool: rss_feed_normaliser
Apify
Not published as an Actor yet.
Example response
{
"feedUrl": "https://feeds.bbci.co.uk/news/rss.xml",
"discovered": false,
"format": "rss-2.0",
"feed": {
"title": "BBC News",
"link": "https://www.bbc.co.uk/news",
"description": "BBC News - News Front Page",
"language": "en-gb",
"updated": "2026-10-02T23:02:36.000Z"
},
"items": [
{
"id": "https://www.bbc.co.uk/news/articles/cv1j3lgrl6gko#1",
"title": "Widdecombe suspect charged with planning terror act against Farage",
"url": "https://www.bbc.co.uk/news/articles/cv1j3lgrl6gko?at_medium=RSS&at_campaign=rss",
"published": "2026-10-02T21:32:25.000Z",
"updated": null,
"summary": "Counter terror police say the further charge comes after a \"hugely intensive and complex investigation\".",
"categories": [],
"enclosure": null
},
{
"id": "https://www.bbc.co.uk/news/articles/ck87zg8jnwngo#1",
"title": "G7 to release 100 million barrels of oil and diesel after Trump export ban threat",
"url": "https://www.bbc.co.uk/news/articles/ck87zg8jnwngo?at_medium=RSS&at_campaign=rss",
"published": "2026-10-02T20:25:19.000Z",
"updated": null,
"summary": "The coordinated release is aimed at heading off further price spikes and avoiding a ban on US diesel exports.",
"categories": [],
"enclosure": null
},
{
"id": "https://www.bbc.co.uk/news/videos/c6m2d3mpm7r8o#1",
"title": "Watch: Why has UK diesel price hit an all time high?",
"url": "https://www.bbc.co.uk/news/videos/c6m2d3mpm7r8o?at_medium=RSS&at_campaign=rss",
"published": "2026-10-02T16:58:30.000Z",
"updated": null,
"summary": "Diesel has now hit an average of £2 a litre in the UK, the RAC motoring group says, with petrol prices also rising.",
"categories": [],
"enclosure": null
}
],
"itemCount": 5,
"fetchedAt": "2026-10-02T23:02:46.038Z",
"note": "Feed content belongs to its publisher; check its licence before reuse."
}
Good to know
- You are charged only when the call succeeds. Invalid input or an unavailable source costs nothing.
- Every response states its source and the time it was fetched.
- Informational only; not financial, legal or tax advice.
- Something wrong or missing? Open an issue on the repository (ambolt-mcp) and a reply follows under the Ambolt name.