RSS and news feeds for agents

io.github.ux-xd由 GitHub 账号 ux-xd 发布v0.1.2更新于 Oct 24, 2026

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

已验证Streamable HTTP可网页运行网页搜索与抓取知识与记忆

概览

AI 生成的概览

一个远程、无需密钥的 MCP 服务器,让助手读取 RSS、Atom 和 JSON 订阅源、查找网站订阅源地址并搜索新闻。

可以做什么
将订阅源或网站读取为整洁的 JSON 条目,按最新优先、去重,可选日期过滤和文本预算(feed_items)。按文档化的查找流程发现网站的 RSS、Atom 或 JSON 订阅源,并报告每一步尝试(feed_find)。在 Google News 和 Bing News RSS 上搜索新闻,融合并去重,附发布者和来源引擎(news_search)。
适用场景
当用户想知道某个网站或博客有什么新内容、需要只显示 HTML 的网站的订阅源地址,或询问某话题的新闻时使用。可替代手工抓取列表页。
运行要求
远程 Streamable HTTP 端点;无需认证、API 密钥或账户。需要能访问该端点及上游订阅源的网络。每次工具调用都必须提供一句 task_context。
安装前请注意
每个工具都要求提供描述用户目标的 task_context 句子,README 称这是该免费服务了解智能体需求的方式;避免在其中填写敏感信息。请求会发往第三方订阅源以及 Google News 和 Bing News。工具为只读,不管理订阅或已读状态。

安装

在 SourceWeft 中

  1. 打开 控制台中的 RSS and news feeds for agents,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.ux-xd%2Frss-feed/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "rss-and-news-feeds-for-agents": {
      "type": "http",
      "url": "https://rssfeedmcp.dev/mcp"
    }
  }
}

README

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. Remote MCP server over Streamable HTTP at https://rssfeedmcp.dev/mcp. Free, no API key. Tools: feed_items, feed_find, news_search. The tool list is fixed per version.

feed_items turns a feed URL, or just a site, into dated items with links, authors, categories, a short lead and bounded plain text: RSS 2.0, Atom, RDF and JSON Feed 1.1 are normalized to one shape, newest first, deduplicated, filtered by date, and fetched with conditional requests so a polling agent never hammers the publisher. feed_find runs the discovery ladder on a site (link tags and the Link header, feed-shaped anchors in the page, the common paths on the deepest prefix first, then a short table of well-known legacy feeds) and reports every rung it tried, so a miss is diagnosable. news_search answers the more common ask, what is the news about X, over Google News and Bing News RSS fused by reciprocal rank, with each story's publisher, which engines carried it, and the other URLs it appeared under. Free, keyless, no account; one fetch per rung, never a crawler.

Use when: The user wants what is new on a site or blog (feed_items with the site URL), needs a feed URL for a site that only shows HTML (feed_find), or asks what the news says about a topic (news_search). Use instead of scraping listing pages by hand.

Not for: Reading a single article's full body (use a page-to-markdown tool), managing subscriptions or read state (no accounts here), push notifications, or sites that publish no feed at all and are not covered by news search.

Quick install (Claude Code): claude mcp add --transport http rss-feed https://rssfeedmcp.dev/mcp -s user

Live server: https://rssfeedmcp.dev

Docs

Upstreams

Optional

Tools

ToolPurposeEffects
feed_itemsRead 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".read-only, open-world, idempotent
feed_findFind the RSS/Atom/JSON feed(s) of a site: 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.read-only, open-world, idempotent
news_searchKeyless 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.read-only, open-world

Every tool takes task_context: one sentence on what the user is trying to do. It is required.

feed_items

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:

json
{  "$schema": "http://json-schema.org/draft-07/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",    "limit",    "max_chars",    "task_context"  ],  "additionalProperties": false}

Example arguments:

json
{  "url": "https://github.blog",  "limit": 5,  "task_context": "example: Read a feed as clean JSON items (id, title, url, published, "}

feed_find

Find the RSS/Atom/JSON feed(s) of a site: 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:

json
{  "$schema": "http://json-schema.org/draft-07/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",    "all",    "task_context"  ],  "additionalProperties": false}

Example arguments:

json
{  "site": "github.blog",  "task_context": "example: Find the RSS/Atom/JSON feed(s) of a site: <link rel=\"alterna"}

news_search

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:

json
{  "$schema": "http://json-schema.org/draft-07/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",    "limit",    "lang",    "region",    "task_context"  ],  "additionalProperties": false}

Example arguments:

json
{  "query": "Model Context Protocol",  "when": "7d",  "task_context": "example: Keyless news search: Google News RSS and Bing News RSS in pa"}

Install

Endpoint: https://rssfeedmcp.dev/mcp (Streamable HTTP, MCP 2026-07-28 with 2025-era fallback). Authentication: none.

Claude Code
claude mcp add --transport http rss-feed https://rssfeedmcp.dev/mcp -s user
Cursor (~/.cursor/mcp.json)
json
{  "mcpServers": {    "rss-feed": {      "url": "https://rssfeedmcp.dev/mcp"    }  }}
VS Code / Copilot (user mcp.json)
json
{  "servers": {    "rss-feed": {      "type": "http",      "url": "https://rssfeedmcp.dev/mcp"    }  }}

or code --add-mcp '{"name":"rss-feed","type":"http","url":"https://rssfeedmcp.dev/mcp"}'

Claude Desktop / claude.ai

Settings → Connectors → Add custom connector → URL https://rssfeedmcp.dev/mcp, Authentication: None.

ChatGPT

Settings → Connectors → Add custom connector → https://rssfeedmcp.dev/mcp. Desktop app / Codex share ~/.codex/config.toml:

toml
[mcp_servers.rss-feed]url = "https://rssfeedmcp.dev/mcp"
Codex CLI (~/.codex/config.toml)
toml
[mcp_servers.rss-feed]url = "https://rssfeedmcp.dev/mcp"
Gemini CLI
gemini mcp add --transport http rss-feed https://rssfeedmcp.dev/mcp -s user

(settings.json uses httpUrl, not url.)

Windsurf (~/.codeium/windsurf/mcp_config.json)
json
{  "mcpServers": {    "rss-feed": {      "serverUrl": "https://rssfeedmcp.dev/mcp"    }  }}
Cline
json
{  "mcpServers": {    "rss-feed": {      "type": "streamableHttp",      "url": "https://rssfeedmcp.dev/mcp"    }  }}
Continue (.continue/mcpServers/rss-feed.yaml)
yaml
name: rss-feedmcpServers:  - name: rss-feed    type: streamable-http    url: https://rssfeedmcp.dev/mcp
Zed (settings.json)
json
{  "context_servers": {    "rss-feed": {      "source": "custom",      "command": "npx",      "args": [        "-y",        "mcp-remote",        "https://rssfeedmcp.dev/mcp"      ]    }  }}
Any MCP client

Streamable HTTP endpoint: https://rssfeedmcp.dev/mcp

json
{  "mcpServers": {    "rss-feed": {      "url": "https://rssfeedmcp.dev/mcp"    }  }}

This page documents a server. It does not ask the reader to change any rules file, memory file, or host configuration.

Run it yourself

npm install && npm start            # http://127.0.0.1:8080/mcpdocker compose up -d --build        # same, in a containernode scripts/smoke.mjs http://127.0.0.1:8080 feed_items '{}'

Built with the MCP server kit (kit/): Streamable HTTP MCP plus agent-readable docs (llms.txt, server.json, install pages, a REST twin), all from one manifest (servers/rss-feed/mcp.factory.json). This repo is the server logic only; no telemetry is collected or sent by this code. MIT.

来源:README.md,提交 69a2a59

工具

0
SourceWeft 尚未读取此服务器的工具。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式必需10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分