项目简介
MCP RSS服务器是一个实现了Model Context Protocol (MCP) 的后端应用,它将RSS订阅源的内容通过标准化的MCP接口提供给LLM客户端。您可以利用此服务器,让LLM应用便捷地获取和处理来自各种RSS源的新闻、博客文章等信息,构建如信息摘要、新闻监控等应用。
主要功能点
- RSS订阅管理:支持通过OPML文件导入和管理RSS订阅源。
- 内容抓取与更新:自动定时抓取并更新RSS源的最新文章内容。
- 结构化数据访问:通过MCP API提供结构化的文章数据,包括标题、内容、链接、发布日期等。
- 文章状态管理:支持标记文章为“普通”或“收藏”状态。
- 灵活的内容过滤:允许客户端根据来源和状态过滤文章内容。
安装步骤
-
环境准备:
- 确保已安装 Node.js (v14 或更高版本)。
- 确保已安装并运行 MySQL 数据库。可以使用 Docker 快速启动 MySQL,命令如下:
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-
安装 MCP RSS 服务器: 打开终端,运行以下命令全局安装 'mcp_rss':
npm install -g mcp_rss或使用 'npx' 临时安装并运行:
npx mcp_rss
服务器配置
MCP 服务器需要以下配置信息,您需要将这些配置信息以环境变量的形式提供给服务器。如果您使用 'npx mcp_rss' 启动服务器,可以在启动命令前设置环境变量,或者将环境变量写入 '.env' 文件(与 'npx mcp_rss' 命令执行目录同级)。
以下是 MCP 客户端连接 MCP RSS 服务器时需要配置的 'server' 信息 (JSON 格式),请根据您的实际环境修改以下配置:
{ "serverName": "mcp_rss", "command": "npx", "args": ["mcp_rss"], "env": { "DB_HOST": "localhost", // (可选) 数据库主机名,默认为 localhost "DB_PORT": "3306", // (可选) 数据库端口,默认为 3306 "DB_USERNAME": "root", // (可选) 数据库用户名,默认为 root "DB_PASSWORD": "123456", // (可选) 数据库密码,默认为 123456 "DB_DATABASE": "mcp_rss", // (可选) 数据库名称,默认为 mcp_rss "OPML_FILE_PATH": "./feeds.opml", // (可选) OPML 文件路径,默认为 ./feeds.opml "RSS_UPDATE_INTERVAL": "1" // (可选) RSS 更新间隔(分钟),默认为 1 分钟 } }
配置参数说明:
- 'serverName': 服务器名称,客户端用以标识。
- 'command': 启动服务器的命令,这里使用 'npx' 来运行 'mcp_rss' 包。
- 'args': 传递给启动命令的参数,这里为空。
- 'env': 环境变量配置,用于配置数据库连接和 RSS 源文件路径等。
- 'DB_HOST', 'DB_PORT', 'DB_USERNAME', 'DB_PASSWORD', 'DB_DATABASE': MySQL 数据库连接配置。
- 'OPML_FILE_PATH': 指定包含 RSS 订阅源的 OPML 文件的路径。首次启动服务器时,将解析此文件并导入订阅源。
- 'RSS_UPDATE_INTERVAL': 设置服务器自动抓取 RSS 更新的间隔时间,单位为分钟。
注意:请确保 MySQL 数据库服务已启动,并且配置的环境变量信息正确。首次运行服务器时,会自动创建数据库和数据表。
基本使用方法
MCP RSS 服务器通过标准输入/输出 (stdio) 与 MCP 客户端通信。客户端启动服务器后,即可通过 JSON-RPC 协议调用服务器提供的工具 (Tools) 来获取 RSS 数据。
可用工具 (Tools):
-
get_content: 获取文章内容。
- 参数:
- 'status' (string, 可选): 文章状态过滤,可选值为 "normal"(普通)或 "favorite"(收藏)。
- 'source' (string, 可选): RSS 源标题过滤,指定来源。
- 'limit' (number, 可选): 返回文章数量上限,默认为 10。
- 描述:根据条件获取文章列表,默认按文章发布时间倒序排列。
- 参数:
-
get_sources: 获取所有 RSS 订阅源。
- 参数:无
- 描述:获取已订阅的所有 RSS 源的标题和分类信息,用于辅助 'get_content' 工具的 'source' 参数。
-
set_tag: 设置文章标签(状态)。
- 参数:
- 'articleId' (number, 必选): 要更新状态的文章 ID。
- 'status' (string, 必选): 要设置的文章状态,可选值为 "normal" 或 "favorite"。
- 描述:更新指定文章的状态(标签)。
- 参数:
使用示例:
客户端可以调用 'ListTools' 请求获取工具列表,然后使用 'CallTool' 请求调用具体的工具,例如获取最新的文章列表:
{ "jsonrpc": "2.0", "id": 1, "method": "CallTool", "params": { "name": "get_content", "arguments": { "limit": 5 } } }
服务器将返回包含文章内容的 JSON-RPC 响应。具体请求和响应格式请参考 Model Context Protocol 规范。
信息
分类
网页与API