Token导航 LogoToken导航TokenDH.com
My MCP Rss logo
搜索检索stdio官方级别未说明来源级核验

My MCP Rss

MCP Server

MCP RSS是一款基于AI嵌入技术的智能RSS订阅管理服务器,提供高级搜索、语义搜索和全面的阅读工作流程。

工具数

8

提示词数

0

GitHub Stars

5

资源数

0
TypeScriptClaude搜索Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ronnycoding

提供方

ronnycoding

最后核验

2026/5/17 20:22

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -d \

详细介绍

](https://mseep.ai/app/buhe-mcp-rss)

MCP RSS

MCP RSS是一个模型上下文协议(MCP)服务器,用于智能RSS提要管理,具有高级搜索功能、使用AI嵌入的语义搜索和全面的阅读工作流程。

特性

  • 📰 RSS源管理 -解析OPML文件并自动从RSS提要中获取文章
  • 🔍 高级搜索 -具有日期范围、类别和状态过滤的关键字搜索
  • 🤖 语义搜索 -使用OpenAI嵌入的人工智能驱动的自然语言搜索(可选)
  • 📊 智能组织 -四状态工作流(未读/已读/收藏/已存档)
  • 📅 每日摘要 -获取按类别分组的今天未读文章
  • 🚀 高性能 -PostgreSQL与pgvector的高效向量相似性搜索
  • 🔄 自动重复数据删除 -防止重复的文章和浪费的API调用
  • 代币高效 -首先浏览标题/摘录,仅在需要时获取完整内容
  • 📑 分页支持 -通过高效分页处理大型饲料收集(500+)

安装

先决条件

  • Node.js(v18或更高版本)
  • Docker和Docker Compose(用于PostgreSQL和pgvector)
  • OpenAI API密钥(可选,仅用于语义搜索)

Docker Compose快速入门

  1. 克隆或安装软件包:
   npm install -g mcp_rss
   # OR for local development
   git clone 
   cd mcp_rss
   npm install
  1. 用pgvector启动PostgreSQL:
   docker-compose up -d
  1. 配置环境变量:
   cp .env.example .env
   # Edit .env with your settings
  1. 构建项目:
   npm run build

数据库设置

该项目使用PostgreSQL 17和pgvector扩展进行向量相似性搜索。

使用Docker Compose(推荐):

docker-compose up -d             # Start PostgreSQL
docker-compose down              # Stop PostgreSQL
docker-compose down -v           # Stop and remove volumes (fresh start)
docker-compose logs -f postgres  # View PostgreSQL logs

PostgreSQL手动设置:

docker run -d \
  --name mcp-rss-postgres \
  -p 5433:5432 \
  -e POSTGRES_USER=mcp_user \
  -e POSTGRES_PASSWORD=123456 \
  -e POSTGRES_DB=mcp_rss \
  pgvector/pgvector:pg17

配置

环境变量

创建一个 .env 具有以下配置的文件:

变量描述默认值必填
数据库配置
DB_HOSTPostgreSQL主机localhost没有
DB_PORTPostgreSQL端口5433没有
DB_USER / DB_USERNAME数据库用户名mcp_user没有
DB_PASSWORD数据库密码123456没有
DB_NAME / DB_DATABASE数据库名称mcp_rss没有
RSS配置
OPML_FILE_PATH带有RSS源的OPML文件路径./feeds.opml是的
RSS_UPDATE_INTERVAL馈送更新间隔(分钟)1没有
OpenAI配置
OPENAI_API_KEY用于嵌入的OpenAI API密钥-否\*

\* *仅语义搜索功能需要。所有其他功能都可以在没有它的情况下工作。*

Claude桌面配置

对于本地开发,请使用内置的dist文件夹:

{
  "mcpServers": {
    "rss": {
      "command": "node",
      "args": ["/absolute/path/to/mcp_rss/dist/index.js"],
      "env": {
        "OPML_FILE_PATH": "/path/to/your/feeds.opml",
        "DB_HOST": "localhost",
        "DB_PORT": "5433",
        "DB_USER": "mcp_user",
        "DB_PASSWORD": "123456",
        "DB_NAME": "mcp_rss",
        "RSS_UPDATE_INTERVAL": "60",
        "OPENAI_API_KEY": "sk-your-key-here"
      }
    }
  }
}

通过npm进行全局安装:

{
  "mcpServers": {
    "rss": {
      "command": "npx",
      "args": ["mcp_rss"],
      "env": {
        "OPML_FILE_PATH": "/path/to/your/feeds.opml",
        "OPENAI_API_KEY": "sk-your-key-here"
      }
    }
  }
}

MCP工具参考

该服务器提供了8个强大的RSS源管理工具:

代币效率指南

所有列表/搜索工具现在都支持超高效的令牌使用:

  • 默认行为:仅返回标题和元数据(无摘录,无内容)
  • 可选摘录:设置 includeExcerpt: true 用于内容预览(适度使用令牌)
  • 完整内容:设置 includeContent: true 获取完整的文章文本(高令牌使用率)
  • 按需内容:使用 get_article_full 按ID获取特定文章(最有效)

推荐的工作流程(节省90%以上的代币):

  1. 仅通过以下方式浏览标题 get_contentsearch_articles (默认设置)
  2. 仅从标题中识别有趣的文章
  3. 可选择获取边缘案例的摘录 includeExcerpt: true
  4. 使用获取完整内容 get_article_full 仅适用于选定的文章

令牌使用情况比较:

  • 仅标题:每篇文章约50-100个代币
  • 标题+摘录:每篇文章约150-300个标记
  • 标题+完整内容:每篇文章约1000-5000个代币

1.获取内容

获取具有基本过滤和分页功能的文章。 首先返回最新文章 (按pubDate DESC排序)。

使用此功能:

  • 浏览最近的文章
  • 检查未读文章
  • 按状态或来源进行简单筛选
  • 特定时间段的日期范围筛选

令牌效率:

  • 默认情况下,只返回标题和元数据(令牌效率最高)
  • includeExcerpt: true 添加内容预览
  • includeContent: true 获取文章全文
  • 为了获得最佳效率:只浏览标题,然后使用 get_article_full 针对特定文章

参数:

参数类型描述默认值
statusesstring[]按状态筛选: "unread", "read", "favorite", "archived"所有状态
sourcestring按源标题筛选所有源
limitnumber要退回的文章数量10
offsetnumber分页偏移量0
favoriteBlogsOnlyboolean仅显示来自喜爱博客的文章false
prioritizeFavoriteBlogsboolean首先显示最喜欢的博客文章false
includeContentboolean包含完整的文章内容(使用更多标记)false
includeExcerptboolean包括文章摘录/预览false
startDatestring开始日期(ISO:YYY-MM-DD或YYYY-MM-DDHH:MM:ssZ)-
endDatestring结束日期(ISO格式)-

示例(仅标题-最有效):

{
  "statuses": ["unread"],
  "limit": 20
}

示例(包括日期范围和摘录):

{
  "startDate": "2025-10-01",
  "endDate": "2025-10-25",
  "includeExcerpt": true,
  "limit": 15
}

示例(最喜欢的博客,内容完整):

{
  "favoriteBlogsOnly": true,
  "limit": 5,
  "includeContent": true
}

响应(默认-仅标题,无摘录/内容):

{
  "articles": [
    {
      "id": 123,
      "title": "Article Title",
      "link": "https://example.com/article",
      "pubDate": "2024-01-15T10:30:00Z",
      "fetchDate": "2024-01-15T11:00:00Z",
      "status": "unread",
      "feedTitle": "Engineering Blog",
      "feedCategory": "Technology"
    }
  ],
  "total": 150,
  "success": true
}

______________________________________________________________________

2.搜索_文章

具有关键字匹配、日期范围、类别和状态过滤器的高级搜索。 搜索标题和内容.

使用此功能:

  • 查找关于特定主题的文章
  • 基于日期的过滤
  • 复杂的多条件搜索
  • 特定类别搜索

参数:

参数类型描述默认值
keywordstring搜索词(不区分大小写,搜索标题+内容)-
categorystring按饲料类别筛选-
statusesstring[]按文章状态筛选全部
startDatestring开始日期(ISO格式: YYYY-MM-DDYYYY-MM-DDTHH:mm:ssZ)-
endDatestring结束日期(ISO格式)-
limitnumber结果数量20
offsetnumber分页偏移量0
includeContentboolean包含完整的文章内容(使用更多标记)false

例子:

{
  "keyword": "kubernetes",
  "category": "Engineering",
  "startDate": "2024-01-01",
  "endDate": "2024-12-31",
  "statuses": ["unread"],
  "limit": 10
}

______________________________________________________________________

3.语义研究

基于人工智能的语义搜索 使用OpenAI嵌入。即使没有精确的关键字匹配,也能查找概念上相似的文章。

使用此功能:

  • 自然语言查询
  • 查找相关概念
  • 研究与发现
  • 主题探索

要求:

  • OPENAI_API_KEY 必须设置
  • 仅适用于2020年以后的文章
  • 如果API密钥丢失(正常失败),则自动禁用

参数:

参数类型描述默认值
querystring自然语言搜索查询(必填)-
includeContentboolean包含完整的文章内容(使用更多标记)false
limitnumber结果数量10
statusesstring[]按文章状态筛选全部
categorystring按饲料类别筛选-

例子:

{
  "query": "how to optimize database performance and reduce query latency",
  "limit": 5,
  "statuses": ["unread"]
}

它是如何工作的:

  1. 使用OpenAI将查询转换为1536维向量
  2. 使用pgvector余弦相似度与文章嵌入进行比较
  3. 返回按相关性排序的语义相似的文章

______________________________________________________________________

4.获取信息

获取 今天未读的文章 按类别分组。非常适合日常阅读工作流程。筛选条件 发布日期 (pubDate),不获取日期。

使用此功能:

  • 上午简报会
  • 每日追赶
  • 分类有序阅读
  • 今天发表的文章(基于pubDate)

参数:

参数类型描述默认值
limitnumber每个类别的最大文章数5
includeContentboolean包含完整的文章内容(使用更多标记)false

例子:

{
  "limit": 5
}

答复: 按类别分组的文章,今天每个类别最多可提取N篇文章。

______________________________________________________________________

5.每周订阅

获取过去7天内最喜欢的文章(仅标题)。非常适合每周查看书签内容。

使用此功能:

  • 每周阅读清单
  • 查看过去一周保存的文章
  • 跟踪重要书签内容
  • 快速概述您最近发现的有价值的东西

参数:

例子: 无需参数,只需调用该工具即可。

答复:

{
  "articles": [
    {
      "id": 789,
      "title": "Optimizing PostgreSQL for High Write Throughput",
      "link": "https://engineering.example.com/postgres-optimization",
      "pubDate": "2025-10-22T14:30:00Z",
      "fetchDate": "2025-10-22T15:00:00Z",
      "status": "favorite",
      "feedTitle": "Engineering at Example",
      "feedCategory": "Database"
    },
    {
      "id": 654,
      "title": "Building Resilient Microservices with Circuit Breakers",
      "link": "https://blog.example.com/circuit-breakers",
      "pubDate": "2025-10-20T09:15:00Z",
      "fetchDate": "2025-10-20T10:00:00Z",
      "status": "favorite",
      "feedTitle": "Tech Blog",
      "feedCategory": "Architecture"
    }
  ],
  "total": 2,
  "success": true
}

特征:

  • 返回过去7天内发表的标记为“收藏”的文章
  • 按发布日期排序(最新者优先)
  • 超代币效率-仅限标题和元数据
  • 默认情况下没有摘录或内容
  • 使用 get_article_full 阅读任何文章的全部内容

______________________________________________________________________

6.获取_条_满

按ID获取完整的文章内容。使用此方法进行令牌高效阅读:首先浏览标题,然后仅获取您想要阅读的文章的完整内容。

使用此功能:

  • 浏览标题后阅读全文
  • 获取特定有趣文章的完整内容
  • 令牌高效工作流程(浏览→ 选择→ read)

参数:

参数类型说明必填
articleIdnumber来自get_content/search_articles的文章ID

例子:

{
  "articleId": 123
}

答复:

{
  "articles": [
    {
      "id": 123,
      "title": "Complete Article Title",
      "content": "Full article content with all HTML and formatting...",
      "link": "https://example.com/article",
      "pubDate": "2024-01-15T10:30:00Z",
      "fetchDate": "2024-01-15T11:00:00Z",
      "status": "unread",
      "feedTitle": "Engineering Blog",
      "feedCategory": "Technology",
      "excerpt": "First 200 characters..."
    }
  ],
  "success": true
}

令牌高效工作流程:

1. get_content(limit=20) → Browse 20 titles/excerpts
2. Find interesting article with id=456
3. get_article_full(articleId=456) → Read full content
4. set_tag(articleId=456, status="favorite") → Save for later

______________________________________________________________________

7.获取资源

通过分页和过滤获取RSS提要源。对于数百个提要,分页对于避免令牌限制至关重要。

使用此功能:

  • 发现可用资源
  • 查找用于筛选的有效源名称
  • 探索饲料类别
  • 浏览喜爱的博客

参数:

参数类型描述默认值
limitnumber要返回的源数量(建议的最大值:100)50
offsetnumber分页偏移量(例如,第2页为50)0
favoritesOnlyboolean仅显示最喜欢的博客false
categorystring按类别筛选(不区分大小写,部分匹配)所有类别

示例(第一页):

{
  "limit": 50,
  "offset": 0
}

示例(仅限收藏夹):

{
  "favoritesOnly": true,
  "limit": 20
}

示例(按类别筛选):

{
  "category": "Engineering",
  "limit": 30
}

答复:

{
  "sources": [
    {
      "id": 1,
      "title": "Engineering at Meta",
      "category": "Engineering Blogs",
      "url": "https://engineering.fb.com/feed/",
      "isFavorite": true
    },
    {
      "id": 2,
      "title": "Netflix Tech Blog",
      "category": "Engineering Blogs",
      "url": "https://netflixtechblog.com/feed",
      "isFavorite": false
    }
  ],
  "total": 518,
  "success": true
}

分页示例:

Page 1: offset=0, limit=50   → Sources 1-50 of 518
Page 2: offset=50, limit=50  → Sources 51-100 of 518
Page 3: offset=100, limit=50 → Sources 101-150 of 518

______________________________________________________________________

8.设置标签

更新文章状态以管理您的阅读工作流程。

使用此功能:

  • 将文章标记为已读
  • 保存收藏夹
  • 归档旧文章
  • 管理读取队列

参数:

参数类型说明必填
articleIdnumber要更新的文章ID
statusstring新状态: "unread", "read", "favorite", "archived"是的

例子:

{
  "articleId": 123,
  "status": "favorite"
}

文章状态工作流

服务器支持全面的4状态工作流:

┌─────────┐
│ unread  │ ← New articles start here
└────┬────┘
     │
     ├──→ read      (marked as read)
     ├──→ favorite  (important/bookmarked)
     └──→ archived  (old/irrelevant)

矢量搜索和嵌入

嵌入是如何工作的

  1. 自动生成:在获取RSS文章时,服务器会自动为以下来源的文章生成嵌入 2020年以后
  2. OpenAI集成:用途 text-embedding-3-small 模型(1536个维度)
  3. 去重:每篇文章只生成一次嵌入(通过URL检查)
  4. 优雅降级:如果 OPENAI_API_KEY 缺失或无效,服务器继续正常工作(跳过嵌入)

存储

  • 嵌入存储为 vector(1536) 在PostgreSQL中使用pgvector扩展
  • 启用快速余弦相似性搜索: ORDER BY embedding query_vector

成本优化

  • 只有2020年以后的文章才能获得嵌入(可在中配置 RssService.shouldGenerateEmbedding())
  • 重复的项目被跳过(没有多余的API调用)
  • 嵌入生成失败不会阻止文章保存

发展

项目结构

mcp_rss/
├── src/
│   ├── entities/           # TypeORM entities
│   │   ├── Article.ts      # Article entity with vector embeddings
│   │   └── Feed.ts         # RSS feed source entity
│   ├── services/
│   │   ├── OpmlService.ts  # OPML parsing
│   │   ├── RssService.ts   # RSS fetching + embedding generation
│   │   ├── McpService.ts   # MCP tool implementations
│   │   └── EmbeddingService.ts # OpenAI embedding wrapper
│   ├── config/
│   │   └── database.ts     # TypeORM + pgvector setup
│   └── index.ts            # MCP server entry point
├── docker-compose.yml      # PostgreSQL with pgvector
├── .env.example            # Environment template
└── package.json

建筑

npm run build        # Compile TypeScript
npm run watch        # Watch mode for development

测试

# Test database connection
docker-compose ps

# Test MCP server locally
node dist/index.js

# Debug with MCP inspector
npx @modelcontextprotocol/inspector node dist/index.js

故障排除

数据库连接问题

错误: connect ETIMEDOUT

  • 确保PostgreSQL正在运行: docker-compose ps
  • 检查端口5433是否可用: lsof -i :5433
  • 验证环境变量是否与docker compose设置匹配

OpenAI API错误

错误: 401 Incorrect API key

  • 在验证您的API密钥https://platform.openai.com/api-keys
  • 确保你有可用的学分
  • 检查钥匙是否过期

未生成嵌入:

  • 服务器在没有API密钥的情况下工作正常(跳过嵌入)
  • 检查文章日期(只有2020+的文章才能嵌入)
  • 在控制台日志中查找错误

MCP服务器问题

服务器未出现在Claude Desktop中:

  1. 检查Claude Desktop配置路径是否正确
  2. 验证 dist/index.js 存在(运行 npm run build)
  3. 配置更改后重新启动Claude Desktop
  4. 检查Claude Desktop日志是否有错误

性能提示

  1. 调整更新间隔:设置 RSS_UPDATE_INTERVAL 生产时间超过60分钟
  2. 限制嵌入生成:嵌入仅适用于2020年以后的文章+
  3. 使用分页:始终使用 offsetlimit 对于大型结果集
  4. 数据库索引PostgreSQL会自动为向量列建立索引

许可证

麻省理工学院

贡献

欢迎投稿!请确保:

  • TypeScript编译时没有错误(npm run build)
  • 记录环境变量
  • 新功能包括适当的错误处理

目录标签

目录标签

TypeScriptClaude搜索RSS管理本地部署语义搜索AI嵌入阅读工作流数据库优化

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP