关于 Reddit (RSS)
Reddit (RSS) 是本地 MCP 服务,可免 API 密钥和账号读取 Reddit 公开 RSS 内容。它支持搜索、浏览版块及读取帖子和评论正文,但不提供投票数据。
主要功能
- 01搜索 Reddit 帖子
- 02浏览版块动态
- 03读取帖子与评论
- 04获取用户和域名订阅源
- 05重试限流请求
适用场景
- 01查找某主题的 Reddit 讨论
- 02查看版块最新帖子
- 03阅读帖子及其评论
MCP 相关
它向本地兼容 MCP 的客户端提供 Reddit RSS 工具,支持搜索、浏览版块、读取帖子和获取指定订阅源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sort | string | 否 | |
| limit | integer | 否 | |
| subreddit | string | 是 | |
| time_filter | string | 否 |
详细介绍
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 与它们并列添加,不要覆盖整个文件。然后:
- 完全退出应用(按
Cmd+Q,不要只关闭窗口)。运行中的应用会重写此文件,因此在应用开启时所做的修改可能会被丢弃。 - 重新启动应用。 服务可能需要重启几次才能注册。
- 应用提示运行服务时,授予权限。
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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。