Kaze Feed
Provides RSS/Atom feed subscription management, incremental polling, cached queries, and per-session consumption state, allowing agents to track feeds and retrieve new entries from RSS/Atom sources.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Kaze Feedsubscribe to https://example.com/feed.xml and fetch the latest entries"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Kaze Feed
独立的 RSS/Atom MCP 服务,供 Kaze 从私有 GitHub 仓库安装。维护订阅、增量采集、缓存查询和按会话区分的消费状态;筛选、通知和用户兴趣管理由 Kaze 负责。
需要 Python 3.12+。MCP 服务运行于独立虚拟环境,数据库保存到 Kaze 工作区的 mcp-data/kaze-feed,更新代码不会覆盖数据库。
让 Kaze 安装
在 Kaze 对话中发送下面这段请求:
从 https://github.com/jackeyfaker77/kaze-feed 安装 Feed MCP。
确认当前 Kaze 的实际工作区路径,将仓库克隆到工作区下的 mcp/kaze-feed。
用 Python 3.12+ 运行 scripts/prepare.py --workspace 实际工作区路径。
将脚本输出的 JSON 原样传给 mcp_add,server 名称使用 feed。
再用 mcp_list 和 mcp_feed__feed_status 验证连接,告诉我结果。
已有同名 MCP 或不同的 feed-manage skill 时保留现有配置并说明冲突。
安装后保持订阅列表为空,等待我提供 RSS/Atom 地址。私有仓库需要本机已经登录且有仓库访问权的 GitHub 账号。安装脚本准备自己的 .venv、安装服务,并添加工作区 feed-manage skill。注册由 Kaze 的 mcp_add 完成;脚本不会编辑 mcp_servers.json、修改 HEARTBEAT.md 或开启推送。
Windows 手动准备
先进入 Kaze 的实际工作区。开发版通常是项目的 workspace,安装版通常是用户目录下的 .hasaki/workspace;以 Kaze 自己报告的路径为准。
git clone https://github.com/jackeyfaker77/kaze-feed.git mcp/kaze-feed
python mcp/kaze-feed/scripts/prepare.py --workspace .将输出的 JSON 交给 Kaze 调用 mcp_add。路径会转换为绝对路径,输出类似:
{
"name": "feed",
"command": [
"E:/your-workspace/mcp/kaze-feed/.venv/Scripts/python.exe",
"E:/your-workspace/mcp/kaze-feed/run_mcp.py"
],
"env": {
"KAZE_FEED_DATA_DIR": "E:/your-workspace/mcp-data/kaze-feed"
}
}重复准备保留数据。已有不同的工作区 skill 时停止覆盖;用 --skip-skill 保留它。开发验收可用 --skip-install 跳过已经完成的依赖安装。
Related MCP server: mcp-tech-feeds
工具
注册名为 feed 时,工具前缀为 mcp_feed__。
工具 | 用途 |
feed_manage | list、subscribe、unsubscribe、pause、resume;删除用精确名称或 source_id |
poll_feeds | 采集到期来源;每次最多四个;返回失败原因与 remaining |
feed_query | latest、search、summary、sources、catalog;仅读缓存 |
get_proactive_events | 查询某个 consumer 最近 36 小时内未消费的候选 |
acknowledge_events | 记录消费状态;可指定有效期;按 consumer 隔离 |
feed_status | 查看缓存条数、最近采集时间和来源错误 |
mcp_feed__feed_manage(action="subscribe", name="示例", url="https://example.com/feed.xml")
mcp_feed__poll_feeds()
mcp_feed__feed_query(action="latest", limit=10)返回 remaining>0 时可继续调用 poll_feeds。普通查询不会联网,刷新时显式采集。RSSHub 等生成的有效 RSS 地址可直接订阅;本服务不会将 Twitter/X 用户名转换成未经验证的第三方地址。
消费状态与主动推送
get_proactive_events 的读取不改变状态。consumer 使用目标会话的 session_key,例如 desktop:xxx,避免一个会话的 ACK 屏蔽其他会话。
poll_feeds
→ get_proactive_events(consumer=目标会话)
→ Kaze 筛选与生成通知
→ Kaze 实际发送并取得回执
→ acknowledge_events(reason="delivered", delivery_ref=真实回执)reason 支持 processed、read、discarded、delivered。默认 ACK 永久有效;正数 ttl_hours 使候选在到期后可能重新出现。delivered 要求 delivery_ref,但引用由宿主提供,Feed 服务不会独立验证送达。不可用“已生成回复”或“准备发送”代替回执。
当前 Kaze 的简化 heartbeat 没有稳定的送达回执和“送达后 ACK”协调层。因此安装后可使用订阅和查询,可靠的自动推送需要 Kaze 宿主另行接入。仅在 prompt 写“推送之后 ACK”,无法覆盖发送失败、进程中断和重复执行。
被丢弃的条目可使用 discarded 消费;发送失败保持未消费,留待宿主重试。Feed 不直接访问 Telegram、QQ 或桌面通知。
数据与更新
RSS GUID / Atom ID 优先作为条目身份,缺失时用规范化原文 URL。
标题或发布时间更新保留 event_id;发布时间统一为 UTC。
ETag / Last-Modified 减少重复下载;304 保留正文和消费状态。
单源失败保留旧缓存并返回结构化错误;一次请求整体最多 8 秒,瞬时失败重试一次。
30 天未再观察到的条目会被清理,消费记录随条目删除。仍在当前 feed 的身份继续保留。
KAZE_FEED_DATA_DIR 指定数据目录;直接运行默认使用用户目录下的 .kaze-feed。
升级时在插件目录 git pull,再运行准备脚本。Kaze 当前 mcp_add 不支持原地替换已有连接;更新运行中的服务需先 mcp_remove(name="feed"),再 mcp_add。移除连接不会删除数据。
开发与验证
python -m venv .venv
.venv/Scripts/python.exe -m pip install -e ".[test]"
.venv/Scripts/python.exe -m pytest -q
.venv/Scripts/python.exe scripts/check_kaze.py --backend E:/CODE/hasaki-agent/apps/backend最后一项使用 Kaze 真实的 stdio MCP 客户端及临时本地 HTTP feed,检查握手、六个工具、中文、采集、缓存、会话消费隔离、标题更新和重启恢复;不会连接真实信息源或修改 Kaze 的运行工作区。
源码审查见 参考实现审查。工具职责参考 kachofugetsu09/feed-mcp;核心实现独立编写,使用 MIT License。
Available Tools
6 toolsacknowledge_eventsA
记录条目已处理、已读、已丢弃或已送达:processed、read、discarded、delivered。
默认永久消费,ttl_hours 为正数时可在到期后重新出现。 delivered 必须提供宿主真实送达回执 delivery_ref;本服务不验证回执真实性。 准备推送或发送失败都不能标记为已送达。未知 ID 单独返回 missing。
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | processed | |
| consumer | No | kaze | |
| event_ids | Yes | ||
| ttl_hours | No | ||
| delivery_ref | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses permanence by default, reappearance after ttl expiry, that receipts are NOT verified server-side, and that unknown IDs are segregated into a missing bucket. Undisclosed gaps remain around idempotency, permissions, and what happens if an event is acked twice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short, front-loaded lines: action plus valid states first, then ttl behavior, then the delivery_ref constraint, then the missing-ID behavior. No filler or repetition; every sentence adds a distinct rule.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no annotations and no output schema, this covers state semantics, ttl, receipt requirements, failure exclusions, and partial return behavior (missing IDs). The unaddressed consumer parameter and lack of auth/permission context are the remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It meaningfully explains reason (full enum), ttl_hours, and delivery_ref — including a requirement not visible in the schema. However, the consumer parameter is never mentioned, leaving one of five parameters fully undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (记录/acknowledge) and resource (条目/entries) and enumerates the four valid ack states (processed, read, discarded, delivered) — value the schema does not provide since it defines reason as an unconstrained string. It does not explicitly differentiate from siblings like poll_feeds or get_proactive_events, but the ack semantics are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete when/when-not rules: delivered requires a real delivery_ref, and events merely queued for push or with failed sends must NOT be marked delivered. It also explains the default (permanent consumption) versus ttl_hours behavior. It offers no explicit routing against sibling tools, which holds it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feed_manageB
管理 RSS/Atom 订阅:list、subscribe、unsubscribe、pause、resume。
URL 必须是 HTTP/HTTPS RSS 或 Atom 地址。删除和暂停使用精确名称或 source_id。 订阅后用 poll_feeds 采集,不会自动推送消息。
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| name | No | ||
| note | No | ||
| action | Yes | ||
| source | No | ||
| poll_interval_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose meaningful behavior: the URL protocol restriction, that delete/pause need an exact name or source_id, and that subscribed feeds are not auto-pushed (poll_feeds required). It omits permission/auth needs, what delete destroys, and reversibility of pause.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action list, then layers constraints as short lines. No filler sentences; each line carries an operational fact. Slightly terse for the number of parameters, but well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 6 undocumented parameters, the description covers the action vocabulary, the identification semantics for delete/pause, and the poll workflow, but leaves the meaning of 'note'/'poll_interval_seconds' and what 'list' returns unexplained. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 6 parameters, so the description must compensate. It explains url, name/source, and the action values, but says nothing about 'note' or 'poll_interval_seconds', leaving two parameters completely undocumented in both schema and text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (manage RSS/Atom subscriptions) and enumerates the concrete actions (list, subscribe, unsubscribe, pause, resume), so the agent knows exactly what it operates on. It does not explicitly disambiguate from feed_query or feed_status, though the poll_feeds reference partially differentiates it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides operational constraints ('URL must be HTTP/HTTPS RSS or Atom', 'delete and pause use exact name or source_id') and routes to the sibling poll_feeds for collection. However, it never says when to use feed_manage versus feed_query or feed_status, so use-case selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feed_queryA
查询已缓存的订阅内容:latest、search、summary、sources、catalog。
查询不触发网络采集。需要刷新时先调用 poll_feeds,并检查失败来源。 返回标题、摘要、原文、发布时间及稳定 event_id。
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| action | No | latest | |
| source | No | ||
| keyword | No | ||
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that the query does not trigger network collection and lists the fields returned, but says nothing about authentication, rate limits, pagination behavior despite page/limit/page_size params, or how 'failed sources' surface.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: purpose, then the no-network constraint, then the routing hint, then the return fields. Every sentence earns its place, though the action list is packed inline rather than formatted for scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description rightly enumerates returned fields (title, summary, original text, publish time, event_id). However, for a 6-parameter tool at 0% schema coverage, the missing pagination and source/keyword semantics leave the definition incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, yet it only indirectly names the action values (latest/search/summary/sources/catalog). The other five params (page, limit, source, keyword, page_size) are left with no meaning beyond their bare names and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (查询/query) and resource (已缓存的订阅内容/cached subscription content) and enumerates the five modes (latest, search, summary, sources, catalog). It clearly contrasts with the network-fetching sibling poll_feeds, letting an agent distinguish it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly covers when-to-use (query cached content), when-not (does not trigger network collection), and the alternative path (call poll_feeds first to refresh, then check failed sources). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feed_statusC
查看来源的最近采集时间、成功时间、失败原因和缓存条数。
| Name | Required | Description | Default |
|---|---|---|---|
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It lists returned fields but omits whether this is a safe read-only operation, what permissions are needed, or what an empty/default source does.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb and enumerates the returned fields without filler. It is appropriately sized for a simple status lookup.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there are no annotations and no output schema, the description reasonably names the fields the tool reports. However, it leaves the optional source parameter ambiguous and does not help an agent choose among sibling feed tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter, source, has 0% schema description coverage. The description mentions 来源 but does not explain expected value format, whether the empty default string means all sources, or whether the parameter is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 查看 and the resource 来源, then enumerates the status fields: latest collection time, success time, failure reason, and cache count. The purpose is clear, but it does not explicitly distinguish itself from siblings such as feed_query or feed_manage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no condition for selecting this tool over feed_query or poll_feeds, and no prerequisites. Usage is only implied by the word 状态.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_proactive_eventsA
读取最近 36 小时内尚未被此 consumer 消费的候选内容。
不采集、不发送消息、不自动 ACK。consumer 应使用目标会话的 session_key。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| consumer | No | kaze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the key side-effect profile: it does not fetch data, does not send messages, and does not auto-acknowledge. It also discloses the 36-hour window and the consumption filter. Missing are ordering, pagination, or idempotency details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, front-loaded with the scope (36 hours, unconsumed) followed by the side-effect disclaimers. Efficient, though the trailing newline and terse fragments make it slightly less polished than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, so the description should ideally say what a candidate event looks like and in what order results arrive; it does not. It covers purpose, window, side effects, and consumer identity, which is adequate but leaves return shape and limit semantics unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain that consumer should be the target session's session_key, but adds nothing about limit (default 20) or its units/semantics, leaving half the parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: read candidate content from the last 36 hours not yet consumed by this consumer. The consumption/window framing gives real meaning beyond the name, though it doesn't explicitly contrast with siblings like poll_feeds or feed_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage by telling the caller to pass the target session's session_key as consumer and that the tool does not auto-ACK (implying acknowledge_events must be called separately). However, it never states when to use this versus poll_feeds/feed_query/feed_status, so the routing guidance is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_feedsA
采集到期 RSS/Atom 来源,每次最多四个,按上次采集时间轮换。
force=true 忽略采集间隔。返回 ok、failed、remaining 和每个来源的结果。 remaining>0 时可继续调用;失败时保留旧缓存并记录原因。
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the per-call batch cap of four, the rotation policy, the failure behavior (old cache retained, reason logged), and the continuation condition. It omits permission/auth requirements and any rate-limit beyond the batch size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short, front-loaded sentences covering batch scope, the force override, return fields, and error/continuation behavior. Nearly every sentence earns its place; only the enumerated return keys veer toward output-schema territory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description usefully enumerates return keys (ok, failed, remaining, per-source results) and failure semantics. The main gap is the undocumented `source` parameter, which an agent cannot interpret confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain both parameters. It explains force well (ignores fetch interval) but says nothing about the `source` parameter's purpose or acceptable values, leaving half the surface undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (poll due RSS/Atom sources) plus concrete scope: at most four per call, rotated by last fetch time. This clearly distinguishes it from siblings like feed_manage, feed_query, and feed_status, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives actionable when-to-use signals: call repeatedly while remaining>0, and set force=true to bypass the fetch interval. It does not, however, contrast itself against the sibling tools (feed_query, feed_status) for read-vs-poll decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.1.0- First observed
acknowledge_events - First observed
feed_manage - First observed
feed_query - First observed
feed_status - First observed
get_proactive_events - First observed
poll_feeds
TDQS
Scored across 6 tools
Each tool targets a distinct phase of the feed lifecycle: manage subscriptions, query cache, poll sources, read proactive events, acknowledge events, and check status. Slight overlap exists between feed_query (latest) and get_proactive_events for reading content, but the consumer/session_key workflow and explicit no-collect/no-send semantics differentiate them.
All names use snake_case, but the prefix/style is mixed: feed_manage, feed_query, and feed_status use a noun-first pattern, while poll_feeds, get_proactive_events, and acknowledge_events are verb-first. The set is readable but lacks a single predictable convention.
Six tools is well-scoped for an RSS/Atom feed and event-consumption server. Each tool has a clear, non-redundant purpose, and no tool feels trivial or out of place.
The surface covers subscription CRUD (subscribe, list, unsubscribe, pause, resume), polling, querying cached content, proactive event retrieval, acknowledgement, and status. Minor gaps exist, such as fetching a single event by ID or bulk acknowledgement, but core workflows are complete.
Maintenance
Related MCP Connectors
RSS, Atom and JSON feeds for agents: find a site's feed, read items as JSON, keyless news search.
Track and browse RSS feeds with ease. Fetch the latest entries from any feed URL and extract full…
- NewsmindOAuthapp.newsmind
Read, search and track your RSS feeds: semantic search, story clustering, watches, OPML import.
Search bounded RSS, Atom, and RDF feed matches by keyword or regex.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides tools to list, read, and fetch RSS/Atom feeds, with curated categories and robust fetching capabilities.18 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables users to browse curated technology feeds and fetch any RSS/Atom/RDF feed.403 npmMIT
- AlicenseAqualityDmaintenanceFetches and reads RSS/Atom feeds, enabling MCP clients to pull latest items from blogs, news sites, and release feeds and build digests.244 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP clients like Claude to subscribe to RSS/Atom feeds, list feeds with unread counts, fetch and search new items, and mark items as read, all scoped to the authenticated user's account.1MIT