Feed MCP 服务器是一个基于 Model Context Protocol (MCP) 实现的应用后端,旨在为大语言模型 (LLM) 客户端提供访问和处理 RSS、Atom 和 JSON Feed 内容的能力。通过将各种 Syndication Feed 封装为 MCP 工具,它允许 LLM 获取最新的资讯和文章列表,作为其对话或任务的上下文信息。
主要功能点
- 支持读取和解析 RSS、Atom 和 JSON Feed 格式的内容。
- 能够根据配置的 URL 列表管理多个 Feed 源。
- 提供 MCP 工具,允许 LLM 客户端:
- 列出所有当前服务器正在管理的 Feed 源及其基本信息。
- 根据 Feed ID 获取特定 Feed 的详细元数据和包含的文章列表。
- (额外功能)抓取并返回任意指定 URL 的网页内容。
- 支持 Stdio 和 HTTP/SSE 等多种传输协议与 MCP 客户端通信。
- 内置缓存机制,提高访问 Feed 数据的效率。
安装步骤
您可以通过 Go 工具链或 Docker 容器安装和运行 Feed MCP 服务器。
使用 Go 安装(需要 Go 环境):
go install github.com/richardwooding/feed-mcp@latest
安装后,'feed-mcp' 可执行文件将位于您的 Go bin 路径下。
使用 Docker 安装(需要 Docker 环境): 直接使用预构建的 Docker 镜像。
服务器配置(供 MCP 客户端使用)
Feed MCP 服务器是为 MCP 客户端设计的,您需要在 MCP 客户端(例如 Claude Desktop)的配置文件中添加相应的服务器配置。以下是配置该服务器的示例信息,您需要将其添加到客户端配置文件的 'mcpServers' 部分。请根据您的实际安装方式(Go 或 Docker)调整 'command' 和 'args'。
例如,使用 Docker 运行服务器并加载两个 Feed:
{ "mcpServers": { "feed": { // 您可以为此服务器实例指定一个名称,如 "feed" "command": "docker", // 启动服务器的命令,这里是运行 Docker 容器 "args": [ // 传递给 command 的参数列表 "run", // Docker 命令:运行容器 "-i", // Docker 参数:保持 stdin 打开,允许 Stdio 传输 "--rm", // Docker 参数:容器停止后自动移除 "ghcr.io/richardwooding/feed-mcp:latest", // Docker 镜像名称及标签 "run", // feed-mcp 应用的子命令:运行服务器 "https://www.reddit.com/r/golang/.rss", // 要加载的第一个 Feed URL "https://www.reddit.com/r/mcp/.rss" // 要加载的第二个 Feed URL // 可以在此处添加更多 Feed URL 作为参数 ] // "transport": "stdio" // 如果客户端需要显式指定传输方式,但通常 Stdio 是默认的 } // 您可以在此处添加其他 MCP 服务器的配置 } }
如果您使用 Go 安装并在本地运行,配置可能如下所示:
{ "mcpServers": { "feed-local": { "command": "feed-mcp", // 本地安装的 feed-mcp 可执行文件 "args": [ "run", "https://www.example.com/feed.rss", // 要加载的 Feed URL "https://www.anotherfeed.net/atom.xml" // 要加载的另一个 Feed URL ] } } }
请注意,'args' 列表中的最后一个或多个参数是您希望该 MCP 服务器加载和管理的 Feed URL。
基本使用方法
配置完成后,重启您的 MCP 客户端。如果服务器成功启动并连接,您的 LLM 客户端将能够感知到这个新的 MCP 服务器及其提供的工具。
您可以通过向 LLM 提问或发送指令来使用这些工具,例如:
- 询问 LLM:“你能列出我所有的 Feed 源吗?” (LLM 可能会调用 'all_syndication_feeds' 工具)
- 在知道某个 Feed 的 ID 后,指示 LLM:“请获取 ID 为 [Feed ID] 的 Feed 的最新文章列表。” (LLM 可能会调用 'get_syndication_feed_items' 工具)
- 要求 LLM:“请帮我抓取并总结一下这个网页的内容:[URL]” (LLM 可能会调用 'fetch_link' 工具)
LLM 将使用 MCP 协议与 Feed MCP 服务器通信,获取信息并用于生成响应。
信息
分类
网页与API