支持MCP的AI版RSS阅读器zenfeed

什么是 zenfeed ?

zenfeed 是一个智能信息助手,旨在利用人工智能技术优化用户的 RSS 订阅体验。通过 AI 赋能 RSS,自动为你筛选、总结、推送重要信息,告别信息过载,重拾阅读掌控感,让你在信息洪流(Feed)中保持禅定(Zen)。

主要功能

  • 自动筛选和总结: zenfeed 自动收集并筛选用户关注的新闻或话题,提供简明摘要,帮助用户快速获取重要信息,从而减少信息过载。

  • AI 驱动的内容处理: zenfeed 结合 AI 技术,对内容进行分类、评分和摘要处理,允许用户更轻松地管理和过滤信息。

  • 个性化推荐: 通过自定义数据源和智能算法,zenfeed 提供个性化的信息流,帮助用户找到更有价值的内容。

  • 简报功能: 用户可以配置每日简报,在固定时间接收汇总信息,便于快速浏览。

  • 用户友好的界面: zenfeed 提供美观的邮件样式和易于使用的 Web 界面,增强用户体验。

zenfeed 是你的智能信息助手。它自动收集、筛选并总结关注的新闻或话题,然后发送给你。

安装

在群晖上以 Docker 方式安装。

采用 docker-compose 安装,需要准备两个文件

config.yaml

官方提供的 docker-compose.ymlDocker Compose 的标准模式下不支持使用 configs 键,所以老苏将其拆成了一个单独的配置文件

这个设置文件,遵从 https://github.com/glidea/zenfeed/blob/main/docs/config-zh.md 中的约定,但只包含了最基础的设置

原文件中默认使用了硅基流动的 Qwen/Qwen2.5-7B-Instruct(免费) 和 Pro/BAAI/bge-m3。如果你还没有硅基账号,可以用下面的注册地址注册一个。目前新用户注册会获得 14 元免费额度,相当于 2000 万 Tokens,虽然不是免费,但也够用一阵子的

注册地址

https://cloud.siliconflow.cn/i/NkUiXVhQ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
timezone: Asia/Shanghai
llms:
- name: general
default: true
provider: siliconflow
model: Qwen/Qwen2.5-7B-Instruct
api_key: <你的硅基流动 api key>
- name: embed
provider: siliconflow
embedding_model: Pro/BAAI/bge-m3
api_key: <你的硅基流动 api key>
scrape:
rsshub_endpoint: http://rsshub:1200
storage:
feed:
rewrites:
- transform:
to_text:
prompt: |
{{ .summary_html_snippet }} Respond in Chinese
label: summary_html_snippet
embedding_llm: embed
notify:
channels:
email:
feed_html_snippet_template: |
{{ .summary_html_snippet }}

docker-compose.yml

下面的内容基于官方的 docker-compose.yml 文件修改而成,源文件地址:https://github.com/glidea/zenfeed/blob/main/docker-compose.yml

相比官方的 docker-compose.yml ,主要变化是:

  • 删除了 configs 部分;
  • 增加了 config.yaml 的挂载;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
services:
zenfeed-web:
image: glidea/zenfeed-web:latest
container_name: zenfeed-web
ports:
- "1400:1400"
environment:
- PUBLIC_DEFAULT_API_URL=http://zenfeed:1300
depends_on:
- zenfeed

zenfeed:
image: glidea/zenfeed:latest
container_name: zenfeed-app
entrypoint: >
sh -c "
if [ ! -f /app/config/config.yaml ]; then
echo 'Config file not found in volume, initializing from base config...'
cp /app/config.base.yaml /app/config/config.yaml;
else
echo 'Existing config file found in volume.'
fi &&
echo 'Starting Zenfeed...' &&
exec /app/zenfeed --config /app/config/config.yaml
"
volumes:
- ./data:/app/data
- ./config:/app/config
- ./config.yaml:/app/config.base.yaml
ports:
- "1300:1300"
- "1301:1301"
depends_on:
- rsshub

rsshub:
image: diygod/rsshub:2024-12-14
container_name: zenfeed-rsshub
ports:
- "1200:1200"
environment:
- NODE_ENV=production

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 zenfeed 和 子目录
mkdir -p /volume1/docker/zenfeed/{config,data}

# 进入 zenfeed 目录
cd /volume1/docker/zenfeed

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

Web

在浏览器中输入 http://群晖IP:1400 就能看到主界面

需要 添加源

  1. 还是以老苏的博客为例,通过 URL 添加 https://laosu.tech/atom.xml
  2. 另一个是 WeWe RSS 订阅的公众号源,http://192.168.0.197:4500/feeds/all.atom

直接搜索

或者生成每日简报

88 邮箱为例

  • SMTP Endpoint:填入 smtp.88.com:465
  • 邮箱:填入了老苏的另一个邮箱 wbsu2003@hotmail.com

其实这里应该是填的发件箱,但按老苏的理解,这里应该有两个邮箱地址才正确,一个发件箱,和一个收件箱;

  • 应用密码/授权码:填入 88 邮箱的第三方邮件客户端密码;

因为只填了收件箱,还需要进入 高级配置 进一步设置

找到 notify.channels.email.from,默认会和 notify.receivers.email 一样,需改成和 SMTP Endpoint 对应的发送邮箱

如果以上设置无误,到简报发送时间点之后,会收到邮件

邮件详情

MCP

软件的神奇之处在于还有一种更有趣的玩法,可以将 zenfeed 作为 MCP 接入到 Cherry Studio 或者其他 MCP client

  • 类型:选择 sse
  • URL:填入 http://群晖IP:1301/sse

启用之后,如果设置正确,在 工具 中会看到支持的功能

新建一个助手,提示词来自官方:https://github.com/glidea/zenfeed/blob/main/docs/mcp-client-prompt.md

启用对应的 MCP

接下来就可以开始聊天了

参考文档

glidea/zenfeed: Make RSS 📰 great again with AI 🧠✨!!
地址:https://github.com/glidea/zenfeed

【投票】这几天水了 300 ⭐️,佬们来投票提需求 - 开发调优 - LINUX DO
地址:https://linux.do/t/topic/590717