Feed聚合服务

Feed Hub MCP是一个用于聚合RSS/Atom/JSON源的服务,提供管理订阅、过滤、去重和分页等功能。

  • by shalomwang
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 shaloong/feed-hub-mcp

使用说明

馈电中心MCP

用于聚合RSS/Atom/JSON提要的MCP服务器。提供管理订阅源和获取项目的工具,包括过滤、重复数据删除和分页。

特性

  • 饲料管理 --添加、更新、删除、列出和获取提要
  • 多格式解析 --通过以下方式提供RSS、Atom和JSON提要 gofeed
  • 过滤和重复数据删除 --关键字/正则表达式过滤,自动重复数据删除
  • 分页 --大型结果集的基于光标的分页
  • 速率限制 --全局和每主机请求限制
  • 重试逻辑 --可配置的指数回退重试
  • 干净关闭 --信号感知(SIGINT/SIGTERM)终止合同

需求

  • 转到1.24+

快速开始

# Run the MCP server (stdio transport)
go run ./cmd/feed-hub-mcp

# With custom DB and debug logging
$env:FEED_HUB_DB = 'feed-hub.db'
$env:LOG_LEVEL = 'debug'
go run ./cmd/feed-hub-mcp

服务器通过stdio进行通信。通过任何MCP客户端连接。

配置

变量 默认值 描述
FEED_HUB_DB feed-hub.db SQLite数据库路径
LOG_LEVEL info 日志级别: debug, info, warn, error
FEED_HUB_HTTP_TIMEOUT 15s 远程订阅源请求的HTTP超时
FEED_HUB_USER_AGENT FeedHub/0.1 订阅源请求的User-Agent标头
FEED_HUB_MAX_RESPONSE_BYTES 10485760 最大响应大小(字节)
FEED_HUB_RETRY_MAX 3 最大重试次数
FEED_HUB_RETRY_BASE_DELAY 500ms 基础退避延迟
FEED_HUB_RETRY_MAX_DELAY 5s 最大退避延迟
FEED_HUB_GLOBAL_RPS 5 每秒全局请求数
FEED_HUB_GLOBAL_BURST 5 全局速率限制器突发
FEED_HUB_HOST_RPS 2 每台主机每秒请求数
FEED_HUB_HOST_BURST 2 每台主机突发
FEED_HUB_HOST_LIMITER_TTL 30m 每台主机限制缓存TTL
FEED_HUB_MAX_HOST_LIMITERS 1024 主机限制缓存大小上限

MCP工具

工具 说明
feed_add 添加新的订阅源
feed_update 更新现有提要
feed_delete 删除订阅源
feed_get 按ID获取订阅源
feed_list 列出带分页的提要
feed_fetch 使用可选的刷新、筛选、去重和分页功能获取项目

feed_add

按URL添加新的提要源。

{"tool": "feed_add", "input": {"url": "https://example.com/rss"}}

答复:

{
  "id": "abc123",
  "title": "Example Blog",
  "url": "https://example.com/rss",
  "type": "rss",
  "created_at": "2026-04-05T00:00:00Z"
}

feed_list

列出所有带分页的提要。

{"tool": "feed_list", "input": {"page": 1, "page_size": 20}}

进料加工

通过可选的过滤和重复数据删除从提要中获取项目。

{
  "tool": "feed_fetch",
  "input": {
    "id": "<feed-id>",
    "refresh": true,
    "keyword": "golang",
    "regex": "^Go\\s",
    "dedup": true,
    "page": 1,
    "page_size": 20
  }
}

参数:

  • refresh --从源重新获取(默认值: false)
  • keyword --筛选包含此关键字的项目
  • regex --筛选与此正则表达式模式匹配的项
  • dedup --启用重复数据删除(默认值: false)
  • page / page_size --分页控制

支持的源格式

  • RSS 2.0
  • 原子1.0
  • JSON源1.1

架构说明

  • 取件是手动的 --无内置调度程序;呼叫 feed_fetch 更新
  • 店面优化 --何时 dedup 和 regex 不请求,过滤和分页在SQLite级别运行以提高性能
  • 重复数据删除和正则表达式 --在服务层处理,可能需要全内存扫描

项目结构

cmd/feed-hub-mcp/    Entry point
internal/
  feed/              Feed models and metadata
  store/             SQLite storage and queries
  fetch/             HTTP fetching with retry/rate-limit
  parse/             Feed parsing (gofeed)
  mcp/               MCP tool handlers