馈电中心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": "",
"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