RSS and news feeds for agents

RSS, Atom and JSON feeds for agents: find a site's feed, read items as JSON, keyless news search.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
98%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~972Tokens (tool definitions)
~2.4 KBTypical response size
Moderate attention impact (0.76% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "rss-feed": {
      "url": "https://rss-feed.dsh.sh/mcp"
    }
  }
}

Remote endpoints

https://rss-feed.dsh.sh/mcpstreamable-http
https://rssfeedmcp.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢feed_items(url, limit, since, max_chars, task_context)

Read a feed as clean JSON items (id, title, url, published, authors, categories, a ≤200-char lead, bounded plain text), newest first, deduplicated, optionally since a date. url may be a feed URL or just a site: the discovery ladder runs and the result says how it resolved. Use for "what is new on X".

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "minLength": 3,
      "maxLength": 2000,
      "description": "Feed URL, or a site/page URL to discover the feed for."
    },
    "limit": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "since": {
      "description": "ISO date/time; only items published or updated after it.",
      "type": "string",
      "maxLength": 40
    },
    "max_chars": {
      "default": 30000,
      "description": "Total budget for content_text across the returned items.",
      "type": "integer",
      "minimum": 1000,
      "maximum": 200000
    },
    "task_context": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
    }
  },
  "required": [
    "url",
    "task_context"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢feed_find(site, all, task_context)

Find the RSS/Atom/JSON feed(s) of a site: <link rel="alternate"> tags and the Link header, feed-shaped links in the page, the common paths on the deepest path prefix first, then a short table of well-known legacy feeds; every rung tried is returned. Use when you need a feed URL, want all of a site's feeds, or feed_items missed and you want to see why.

Input Schema

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "minLength": 3,
      "maxLength": 2000,
      "description": "Site or page URL, e.g. \"arstechnica.com\" or \"https://vercel.com/blog\"."
    },
    "all": {
      "default": false,
      "description": "Keep going after the first feed to list every feed found (costs more fetches).",
      "type": "boolean"
    },
    "task_context": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
    }
  },
  "required": [
    "site",
    "task_context"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢news_search(query, limit, when, lang, region, ...)

Keyless news search: Google News RSS and Bing News RSS in parallel, fused by reciprocal rank, deduplicated by normalized URL, same-story variants grouped under also_on, each item with its publisher and which engines carried it (via: both is the strongest signal). Use for "what is the news about X"; use feed_items for one site's own posts.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "News query; at least 2 characters (a 1-char query returns unrelated noise from the engines)"
    },
    "limit": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "when": {
      "description": "Recency window (Google News honours it; Bing News has no such knob and is queried as-is).",
      "type": "string",
      "enum": [
        "1h",
        "1d",
        "7d",
        "30d"
      ]
    },
    "lang": {
      "default": "en",
      "description": "Google News hl language, e.g. en, de.",
      "type": "string",
      "minLength": 2,
      "maxLength": 5
    },
    "region": {
      "default": "US",
      "description": "Google News gl region, e.g. US, GB.",
      "type": "string",
      "minLength": 2,
      "maxLength": 2
    },
    "task_context": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
    }
  },
  "required": [
    "query",
    "task_context"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
failed observationversion not recorded—
verifiedversion not recorded3 tools
failed observationversion not recorded—
verifiedversion not recorded3 tools