mcpField
R
Reddit (RSS)

Reddit (RSS)

本地服务
github.com/jorgen-k社交媒体43 周前更新

关于 Reddit (RSS)

Reddit (RSS) 是本地 MCP 服务,可免 API 密钥和账号读取 Reddit 公开 RSS 内容。它支持搜索、浏览版块及读取帖子和评论正文,但不提供投票数据。

主要功能

  1. 01搜索 Reddit 帖子
  2. 02浏览版块动态
  3. 03读取帖子与评论
  4. 04获取用户和域名订阅源
  5. 05重试限流请求

适用场景

  1. 01查找某主题的 Reddit 讨论
  2. 02查看版块最新帖子
  3. 03阅读帖子及其评论

MCP 相关

它向本地兼容 MCP 的客户端提供 Reddit RSS 工具,支持搜索、浏览版块、读取帖子和获取指定订阅源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jorgen-k-reddit": {
"command": "uvx",
"args": [
"reddit-rss-mcp"
]
}
}
}
启动命令uvx reddit-rss-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypireddit-rss-mcp1.2.1

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
sortstring否
limitinteger否
subredditstring是
time_filterstring否

详细介绍

reddit-mcp

无需 API 密钥,即可从本地 MCP 兼容客户端(包括 Claude Code、Codex 和 ChatGPT Desktop)读取 Reddit。 无需注册应用,也无需账户。

Reddit 的数据 API 实际上已经关闭。新应用需要说明审核用途并经过人工批准,匿名 .json 访问已被封锁,第三方工具赖以运行的免费套餐也已取消。如今,大多数“面向大模型的 Reddit”集成都要先经过一套你无法完成的凭据配置流程。

Reddit 仍为每个子版块、帖子、用户和搜索结果发布公开的 Atom/RSS 订阅源。这个小型本地 MCP 服务会将这些订阅源作为工具提供给兼容客户端:浏览子版块、阅读帖子及其评论、搜索整个网站。

这些订阅源本来就是供抓取的,因此这种方式一直有效。它读取的是一种受支持的路径,使用的格式自 2005 年以来就没有变化,因此 Reddit 下次重新设计网站时,不会有标记语言因此失效。

无法获取的内容: 评分、赞成票比例、评论数量。这些内容仅存在于受限 API 中,本项目不会伪造它们。帖子和评论的标题、作者、时间戳及全文均可获取。

安装

reddit-rss-mcp 已发布到 PyPI(普通名称 reddit-mcp 属于另一个无关项目)。你需要在机器上安装 uv;它会自行处理 Python 和依赖项,无需进行其他设置。

Claude Code:

claude mcp add reddit --scope user -- uvx reddit-rss-mcp

运行 claude mcp get reddit 或 claude mcp list 验证。如果 Claude Code 找不到 uvx,请使用其绝对路径(which uvx),而不是直接使用命令名。

Codex CLI:

codex mcp add reddit -- uvx reddit-rss-mcp

运行 codex mcp list 验证。如需使用本地检出版本,请运行:

codex mcp add reddit -- uv --directory "$(pwd)" run server.py

Codex 也支持项目级 .codex/config.toml,但本仓库不包含此文件,因为它会为每个受信任的检出版本自动配置并启动服务。

ChatGPT Desktop: 它与 Codex 共用 MCP 配置,因此上面的 Codex 命令也会为 ChatGPT Desktop 安装 Reddit。重启 ChatGPT 应用,然后使用 /mcp 查看已连接的服务。你也可以在 Settings → MCP servers → Add server 中添加,选择 STDIO,并输入 uvx reddit-rss-mcp。

ChatGPT Work 网页版: 它不会读取你的本地 MCP 配置,而是使用插件及其远程 MCP 工具。

Claude Desktop,一键安装: 从最新版本下载 reddit-rss-mcp.mcpb,然后双击、拖入 Claude Desktop,或选择 Settings → Extensions → Advanced settings → Install Extension。无需编辑 JSON 或填写绝对路径。(它会运行 uvx reddit-rss-mcp,因此 uv 仍需位于你的 PATH 中。)

Claude Desktop,手动配置本地服务: 将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json,并使用 which uvx 获取的绝对路径(应用不会继承你的 shell PATH):

{
  "mcpServers": {
    "reddit": {
      "command": "/absolute/path/to/uvx",
      "args": ["reddit-rss-mcp"]
    }
  }
}

如果文件中已有其他顶层键,请将 mcpServers 与它们并列添加,不要覆盖整个文件。然后:

  1. 完全退出应用(按 Cmd+Q,不要只关闭窗口)。运行中的应用会重写此文件,因此在应用开启时所做的修改可能会被丢弃。
  2. 重新启动应用。 服务可能需要重启几次才能注册。
  3. 应用提示运行服务时,授予权限。

Cowork: 通过 Claude Desktop Extensions 安装上面的 .mcpb 安装包。Cowork 不会从 claude_desktop_config.json 加载本地服务,因此请使用安装包,而不要手动配置。

工具

工具功能
search_reddit(query, subreddit=None, sort="relevance", time_filter="all", limit=25)搜索 Reddit 讨论,了解用户对某个主题的真实看法和体验。
browse_subreddit(subreddit, sort="hot", time_filter="day", limit=25)查看社区当前发布的内容(hot/new/top/rising/controversial)。
get_post(url, comment_limit=50)获取完整的单个帖子:帖子内容及其评论(以平铺列表形式呈现;信息流中不包含回复树)。
fetch_json(url)获取其他 Reddit 信息流形式:/user/<name>、多版块和 /domain/<site>。

fetch_json 并非通用网页抓取工具。除非启动服务时设置 REDDIT_MCP_ALLOW_ANY_URL=1,否则会拒绝其他主机上的 URL,避免客户端的工具列表中出现一个无关的抓取工具,在不合适的时候被选中。

其他安装方式

作为插件安装

plugin/ 目录中是一个采用 Claude Code、Codex 和 RK 通用格式的插件:它会运行 uvx reddit-rss-mcp,使用最新版本。该目录位于子目录中,而非仓库根目录,这样在 Claude Code 中打开此仓库时就不会提示启动服务。RK 会在其内置市场中列出该插件;任何市场都可以使用 git-subdir 来源列出它:

{ "name": "reddit", "source": { "source": "git-subdir", "url": "jorgen-k/reddit-mcp", "path": "plugin" } }
从 GitHub 安装(最新 main,无需克隆)

如需运行尚未发布的更改,请将 uvx 指向仓库和 reddit-rss-mcp 入口点。追加 @vX.Y.Z(或任何标签)即可固定到某个版本,而非跟踪 main:

claude mcp add reddit --scope user -- uvx --from git+https://github.com/jorgen-k/reddit-mcp reddit-rss-mcp
codex mcp add reddit -- uvx --from git+https://github.com/jorgen-k/reddit-mcp reddit-rss-mcp
从本地克隆安装

如果要编辑代码,建议使用此方式:

git clone https://github.com/jorgen-k/reddit-mcp.git
cd reddit-mcp
claude mcp add reddit --scope user -- uv --directory "$(pwd)" run server.py
codex mcp add reddit -- uv --directory "$(pwd)" run server.py

对于 Claude Desktop,使用上文相同的配置文件,并通过 which uv 和 pwd 获取绝对路径:

{
  "mcpServers": {
    "reddit": {
      "command": "/absolute/path/to/uv",
      "args": ["--directory", "/absolute/path/to/reddit-mcp", "run", "server.py"]
    }
  }
}
代码更改后更新

服务是一个长时间运行的进程,会在客户端连接时启动一次。编辑 server.py 不会触发热重载;运行中的进程会继续使用旧代码,直到重启。

  • **Claude Code:**运行 /mcp,选择 reddit,然后重新连接(或重启 Claude Code)。
  • **Codex CLI:**启动一个新的 Codex 会话。使用 codex mcp list 确认已配置的服务。
  • **ChatGPT Desktop:**在 Settings → MCP servers 中选择 Restart,或退出并重新启动应用。
  • **Claude Desktop 或 Cowork:**完全退出应用(Cmd+Q)后重新启动。

需要了解的限制

仅支持只读的公开内容。请注意请求量;这些都是公开信息流。

**不提供评分、投票数或评论数。**RSS 不包含这些数据。如需获取,需要使用 Reddit 的 Data API,而该 API 目前要求提供版主用途并获得批准。

**速率限制。**Reddit 会严格限制未经身份验证的 RSS 请求。遇到 HTTP 429 时,服务会采用退避策略重试;如果存在 Retry-After 标头,则遵循该标头,否则会依次等待约 2、4、8、16、32、64、128 秒(另加随机抖动),最多重试 7 次。服务还会在外发请求之间保持最小间隔,以尽量避免触发限制。所有工具共用此机制。

搜索效果取决于 Reddit 的搜索功能。search_reddit 使用 Reddit 自己的搜索引擎;RSS 只是输出格式,因此结果与网站上的一致,并非来自另一个效果较差的索引。该搜索引擎存在实际限制:

  • 不会搜索评论文本,只搜索帖子标题、正文(以及社区名称)。只出现在评论中的词语不会被找到。
  • 非常新的帖子会有延迟,因为索引并非即时更新。要可靠地找到刚发布的帖子,请使用 browse_subreddit(sort="new")。
  • **搜索结果并不全面。**相关性较低的结果会被丢弃或排到较后位置。

因此,“没有结果”表示 Reddit 的搜索没有找到它,并不意味着从未有人发布过。

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。