弗雷德里克斯mcp去
用于FreshRSS的基于Go的MCP(模型上下文协议)服务器,将现有的最佳实现与令牌高效输出相结合。
特性
- 15个MCP工具 完整的FreshRSS管理
- HTML剥离 删除标签以获得干净的文本输出
- 字边界截断 用于令牌高效摘要
- 压缩JSON 与缩进相比,输出节省了20-30%的令牌
- 身份验证重试 401(自动重新认证)
- 健康终点 在
/health用于Docker监控 - 可流式传输的HTTP、SSE和stdio 运输方式
- ~32MB Docker镜像 (Alpine多级构造)
工具
| 工具 | 描述 | 类型 |
|---|---|---|
freshrss_list_subscriptions | 列出所有订阅的订阅源 | 阅读 |
freshrss_list_folders | 列出文件夹/标签标签 | 已读 |
freshrss_get_unread_count | 每个订阅源的未读计数 | 已读 |
freshrss_get_articles | 使用过滤和分页功能获取文章 | 阅读 |
freshrss_search_articles | 按关键字搜索文章(支持提要/文件夹范围) | 阅读 |
freshrss_get_article_detail | 获取完整的文章内容(无截断,直接查找API) | 阅读 |
freshrss_mark_read | 将文章标记为已读 | 写 |
freshrss_mark_unread | 将文章标记为未读 | 写 |
freshrss_mark_all_read | 将提要/文件夹中的所有内容标记为已读 | 写入 |
freshrss_star_article | 明星文章 | 写 |
freshrss_unstar_article | 从文章中删除星号 | 写 |
freshrss_add_label | 为文章添加标签 | 写 |
freshrss_remove_label | 从文章中删除标签/标记 | 写入 |
freshrss_subscribe | 订阅订阅源 | 写 |
freshrss_unsubscribe | 取消订阅源 | 写入 |
设置
环境变量
看 .env.example.必填:
FRESHRSS_URL--您的FreshRSS实例URLFRESHRSS_EMAIL(或FRESHRSS_USERNAME)--登录用户名FRESHRSS_API_PASSWORD(或FRESHRSS_PASSWORD)-API密码(在FreshRSS设置中设置→ 身份验证)
可选:
FRESHRSS_API_PATH-API路径(默认值:/api/greader.php)MCP_TRANSPORT—http,sse,或stdio为空MCP_PORT--HTTP/SSE模式的端口(默认值:8080)
用Go奔跑
export FRESHRSS_URL=... FRESHRSS_EMAIL=... FRESHRSS_API_PASSWORD=...
go run . # stdio
MCP_TRANSPORT=http MCP_PORT=8080 go run . # Streamable HTTP
MCP_TRANSPORT=sse MCP_PORT=8080 go run . # SSE使用Docker运行
docker build -t freshrss-mcp-go .
docker run --rm \
-e FRESHRSS_URL \
-e FRESHRSS_EMAIL \
-e FRESHRSS_API_PASSWORD \
-e MCP_TRANSPORT=http \
-p 8080:8080 \
freshrss-mcp-goDocker Compose
cp .env.example .env
# Edit .env with your credentials
docker compose up -d健康检查
在HTTP模式下运行时,健康端点可用:
curl http://localhost:8080/health
# {"status":"healthy"}当FreshRSS身份验证有效时返回200,否则返回503,并显示错误详细信息。
MCP客户端配置
流式HTTP(Docker)
{
"mcpServers": {
"freshrss": {
"type": "streamableHttp",
"url": "http://localhost:8080/mcp"
}
}
}stdio(本地二进制)
{
"mcpServers": {
"freshrss": {
"command": "/path/to/freshrss-mcp-go",
"env": {
"FRESHRSS_URL": "https://rss.example.com",
"FRESHRSS_EMAIL": "user",
"FRESHRSS_API_PASSWORD": "api-password"
}
}
}
}代币效率
这 get_articles 和 search_articles 工具支持三种令牌保存选项:
strip_html(默认值:true)--删除HTML标记,折叠空白trim_content(默认值:true)--截断单词边界max_summary_length(默认值:400)--内容/摘要的最大字符数
所有JSON输出都使用紧凑格式(无缩进),以减少令牌使用。典型节省: 减少约90% 与原始HTML内容相比,在令牌使用方面。
