关于 reddit-mcp-server
reddit-mcp-server 是用于读取和管理 Reddit 内容的 MCP 服务,面向需要检索帖子、用户和社区信息或发布内容的客户端。它结合读写工具与默认启用的安全模式及机器人披露设置。
主要功能
- 01浏览社区、帖子和评论
- 02搜索帖子并查看用户信息
- 03创建、回复、编辑和删除内容
- 04安全模式限制写入频率并检测重复
- 05可选添加机器人披露页脚
适用场景
- 01检索某个 subreddit 的帖子和评论
- 02分析用户发布的内容
- 03在具备用户凭据时发布或回复
- 04降低自动发布重复内容的风险
MCP 相关
该 MCP 服务向兼容客户端提供 Reddit 浏览、搜索、用户信息及内容写入工具。部分读取可在无 OAuth 凭据时通过 RSS 和 Arctic Shift 获取;写入操作需要 OAuth 和用户凭据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y reddit-mcp-serverREDDIT_CLIENT_IDReddit app client ID (optional - live Reddit data; without it, reads come from RSS feeds and the Arctic Shift archive)REDDIT_CLIENT_SECRET密钥Reddit app client secretREDDIT_USERNAMEReddit username (required for write operations)REDDIT_PASSWORD密钥Reddit password (required for write operations)REDDIT_AUTH_MODE密钥Authentication mode: auto, authenticated, or anonymousREDDIT_SAFE_MODEWrite safeguards: off, standard (default), or strictREDDIT_BOT_DISCLOSUREBot disclosure footer: auto or off (default)REDDIT_BOT_FOOTERCustom bot footer text (used with REDDIT_BOT_DISCLOSURE=auto)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
25收录的工具列表 · 更新于 今天
此工具无需参数。
详细介绍
Reddit MCP 服务
一个用于与 Reddit 交互的模型上下文协议(MCP)服务——获取帖子、评论、用户信息,并创建内容。
功能一览
| 功能 | reddit-mcp-server | 其他 Reddit MCP 服务 |
|---|---|---|
| 创建帖子 | :white_check_mark: | :x: |
| 回复帖子/评论 | :white_check_mark: | :x: |
| 编辑帖子/评论 | :white_check_mark: | :x: |
| 删除帖子/评论 | :white_check_mark: | :x: |
| 垃圾内容防护(安全模式) | :white_check_mark: | :x: |
| 机器人声明页脚 | :white_check_mark: | :x: |
| 内置政策合规支持 | :white_check_mark: | :x: |
| 浏览 Subreddit | :white_check_mark: | :white_check_mark: |
| 搜索 Reddit | :white_check_mark: | :white_check_mark: |
| 用户分析 | :white_check_mark: | :white_check_mark: |
| 帖子评论 | :white_check_mark: | :white_check_mark: |
| OAuth 身份验证(每分钟 60–100 次请求) | :white_check_mark: | :white_check_mark: |
| 无密钥模式(零配置) | :white_check_mark: | :x: |
快速开始
选项 1:Claude Desktop 扩展(最简单)
下载并打开扩展文件——Claude Desktop 会自动安装:
选项 2:NPX(无需安装)
使用 Reddit OAuth 凭据,将其添加到 MCP 配置中(Claude Desktop、Cursor 等):
{
"mcpServers": {
"reddit": {
"command": "npx",
"args": ["reddit-mcp-server"],
"env": {
"REDDIT_CLIENT_ID": "your_client_id",
"REDDIT_CLIENT_SECRET": "your_client_secret"
}
}
}
}
选项 3:Claude Code
REDDIT_CLIENT_ID=your_client_id REDDIT_CLIENT_SECRET=your_client_secret \
claude mcp add --transport stdio reddit -- npx reddit-mcp-server
功能
只读工具
| 工具 | 说明 |
|---|---|
get_reddit_post | 获取指定 Reddit 帖子及其互动分析 |
get_top_posts | 获取 Subreddit 或主页信息流中的热门帖子 |
browse_subreddit | 按排序方式(热门、最新、最高、上升、争议)浏览 Subreddit/主页信息流 |
get_user_info | 获取 Reddit 用户的详细信息 |
get_user_posts | 获取特定用户提交的帖子 |
get_user_comments | 获取特定用户发表的评论 |
get_subreddit_info | 获取 Subreddit 详情和统计数据 |
get_trending_subreddits | 获取当前热门的 Subreddit |
get_post_comments | 获取指定帖子的评论,并按讨论串呈现 |
search_reddit | 搜索 Reddit 上的帖子 |
写入工具(需要用户凭据)
| 工具 | 描述 |
|---|---|
create_post | 在某个 subreddit 中创建新帖子 |
reply_to_post | 回复现有帖子或评论 |
edit_post | 编辑自己的 Reddit 帖子(仅限正文) |
edit_comment | 编辑自己的 Reddit 评论 |
save_content | 将帖子或评论保存到自己的账户 |
unsave_content | 从已保存内容中移除帖子或评论 |
delete_post | 永久删除自己的帖子 |
delete_comment | 永久删除自己的评论 |
配置
环境变量
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
REDDIT_CLIENT_ID | 是 | - | Reddit 应用客户端 ID(自 2026 年年中起需要 OAuth) |
REDDIT_CLIENT_SECRET | 是 | - | Reddit 应用客户端密钥 |
REDDIT_USERNAME | 否 | - | Reddit 用户名(用于写入操作) |
REDDIT_PASSWORD | 否 | - | Reddit 密码(用于写入操作) |
REDDIT_USER_AGENT | 否 | 自动生成 | 自定义 User-Agent 字符串 |
REDDIT_AUTH_MODE | 否 | auto | 身份验证模式:auto、authenticated(anonymous 已弃用) |
REDDIT_SAFE_MODE | 否 | standard | 写入安全保护:off、standard、strict |
REDDIT_BOT_DISCLOSURE | 否 | off | 机器人声明页脚:auto、off |
REDDIT_BOT_FOOTER | 否 | 内置 | 自定义机器人页脚文本(当声明为 auto 时) |
REDDIT_CACHE | 否 | on | 读请求的内存缓存:on、off |
REDDIT_CACHE_MAX_MB | 否 | 50 | 缓存大小上限,单位为 MB(超过后按 LRU 淘汰) |
REDDIT_MAX_RETRIES | 否 | 3 | HTTP 429 时的重试次数,并采用 Retry-After 退避策略(0 表示禁用) |
Reddit 于 2025 年 11 月关闭了自助创建应用的功能。有关如何获取凭据,请参阅身份验证。
完整 MCP 配置示例
{
"mcpServers": {
"reddit": {
"command": "npx",
"args": ["reddit-mcp-server"],
"env": {
"REDDIT_CLIENT_ID": "your_client_id",
"REDDIT_CLIENT_SECRET": "your_client_secret",
"REDDIT_USERNAME": "your_username",
"REDDIT_PASSWORD": "your_password",
"REDDIT_SAFE_MODE": "standard"
}
}
}
}
安全模式(垃圾信息防护)
通过内置安全保护,避免 Reddit 账户被判定为发送垃圾信息或遭到封禁。根据 Reddit 的《负责任构建者政策》,此功能默认启用(standard 模式)。
为什么要使用安全模式?
Reddit 的垃圾信息检测可能会标记以下行为:
- 快速发帖或评论
- 重复或相似的内容
- 在多个 subreddit 中发布相同内容
- 使用非标准的 User-Agent 字符串
安全模式有助于自动防止这些问题。
模式选项
| 模式 | 写入延迟 | 重复检测 | 适用场景 |
|---|---|---|---|
off | 无 | 否 | 仅用于明确选择退出 |
standard | 2 秒 | 最近 10 项 + 跨 subreddit | 默认,推荐 |
strict | 5 秒 | 最近 20 项 + 跨 subreddit | 适用于谨慎的自动发帖 |
禁用安全模式
安全模式默认启用。若要明确禁用:
export REDDIT_SAFE_MODE=off
npx reddit-mcp-server
安全模式的作用
- 速率限制:强制要求写入操作之间至少间隔一段时间
- 重复内容检测:阻止重复发布相同内容
- 跨子版块检测:防止在多个子版块发布相同内容(遵循 Reddit 政策)
- 智能 User-Agent:提供用户名时,自动生成符合 Reddit 要求的 User-Agent 格式
机器人声明
Reddit 的负责任构建者政策要求机器人披露其自动化属性。启用自动机器人页脚,为所有发布的内容添加页脚:
export REDDIT_BOT_DISCLOSURE=auto
npx reddit-mcp-server
启用后,所有帖子、回复和编辑内容都会附加页脚:
---
🤖 I am a bot | Built with reddit-mcp-server
使用 REDDIT_BOT_FOOTER 自定义页脚:
export REDDIT_BOT_DISCLOSURE=auto
export REDDIT_BOT_FOOTER=$'\n\n---\n^(🤖 Custom bot footer text)'
身份验证
⚠️ Reddit API 变更(2026)
匿名模式已不可用。 自 2026 年年中起,Reddit 会通过 HTTP 403 拒绝所有未经身份验证的 API 请求。现在,任何 API 访问都需要 OAuth 凭据。
Reddit 正在关闭其公共 API 和 RSS feed。 Reddit 于 2026-09-30 宣布,将于 2026-10-31 起不再接受新的公共 API 访问申请,2026-11-13 终止 RSS feed,2027-01-12 起开始移除未注册的应用,并于 2027 年 3 月关闭公共 API 访问。没有凭据时,此服务已改为从 Arctic Shift 存档读取数据(参见无密钥模式)。
此外,Reddit 于 2025 年 11 月关闭了自助创建 OAuth 应用的功能。新开发者必须通过 Reddit 开发者支持申请访问权限。现有的 OAuth 凭据(于 2025 年 11 月之前获取)仍可使用。
获取凭据
如果你已有 Reddit 应用(于 2025 年 11 月之前在 /prefs/apps 创建):使用现有的客户端 ID 和密钥,它们仍可正常使用,速率为每分钟 60–100 个请求。
如果你需要新的凭据:通过 Reddit 开发者支持提交申请,说明你的使用场景。申请需要获得批准,可能需要一些时间。
模式对比
| 模式 | 速率限制 | 是否需要设置 | 可用工具 | 适用场景 |
|---|---|---|---|---|
auto(默认) | 每分钟 60–100 个请求 | OAuth 凭据 | 所有工具 | 大多数用户 |
authenticated | 每分钟 60–100 个请求 | OAuth 凭据 | 所有工具 | 显式指定模式 |
auto(无凭据) | 共享,免费 | 无 | 大多数读取工具(无密钥模式) | 快速测试 |
anonymous | 共享,免费 | 无 | 与不带凭据的 auto 相同 | 兼容旧版别名 |
无密钥模式
没有 OAuth 凭据时,读取数据来自两个免费来源:
- Reddit 的 RSS 订阅源,用于获取排序列表(
hot、top、rising、controversial和首页订阅源)。Reddit 将于 2026-11-13 停用 RSS。当某个具名 subreddit 的订阅源失效时,服务会改用归档中的最新帖子,并说明无法提供排序。 - Arctic Shift 归档,这是由一位志愿者维护的 Reddit 免费第三方副本。它不是 Reddit 的 API,也不保证正常运行时间。
| 工具 | 无密钥来源 | 限制 |
|---|---|---|
browse_subreddit(new) | Arctic Shift | 单个 subreddit;不支持 multireddits |
browse_subreddit(其他)、get_top_posts | RSS,然后是 Arctic Shift | 归档回退结果按最新优先排列,而非按排名排列 |
get_reddit_post | Arctic Shift | |
get_post_comments | Arctic Shift | 可能缺少近期评论;不支持排序 |
get_more_comments | Arctic Shift | |
get_user_info | Arctic Shift | 根据首次活动时间估算账户年龄;状态标记未知 |
get_user_posts、get_user_comments | Arctic Shift | 仅按最新优先排列 |
get_subreddit_info、get_subreddit_rules | Arctic Shift | |
search_reddit | Arctic Shift | 帖子搜索需要 subreddit;type=sr 匹配名称前缀;不支持 type=user |
归档注意事项: 分数和评论数会有延迟,近期帖子的数值通常为 0 或 1。在大型 subreddit 中进行关键词搜索速度较慢,且归档会对其限流;服务会重试一次。每条归档结果的末尾都会注明来源。
仍需 OAuth: get_trending_subreddits、get_post_flairs、get_me、get_my_overview、get_my_saved 以及所有写入工具。
只读访问(OAuth)
{
"env": {
"REDDIT_CLIENT_ID": "your_client_id",
"REDDIT_CLIENT_SECRET": "your_client_secret"
}
}
写入操作(OAuth + 用户凭据)
若要创建帖子、回复、编辑或删除内容,请添加你的 Reddit 用户名和密码:
{
"env": {
"REDDIT_CLIENT_ID": "your_client_id",
"REDDIT_CLIENT_SECRET": "your_client_secret",
"REDDIT_USERNAME": "your_username",
"REDDIT_PASSWORD": "your_password",
"REDDIT_SAFE_MODE": "standard"
}
}
开发
命令
pnpm install # Install dependencies
pnpm build # Build TypeScript
pnpm dev # Build and run MCP inspector
pnpm test # Run tests
pnpm lint # Lint code
pnpm format # Format code
CLI 选项
npx reddit-mcp-server --version # Show version
npx reddit-mcp-server --help # Show help
npx reddit-mcp-server --generate-token # Generate OAuth token for HTTP mode
HTTP 服务模式
对于 Docker 部署或基于 Web 的客户端,请使用 HTTP 传输:
TRANSPORT_TYPE=httpStream PORT=3000 node dist/index.js
使用 OAuth 保护
export OAUTH_ENABLED=true
export OAUTH_TOKEN=$(npx reddit-mcp-server --generate-token | tail -1)
TRANSPORT_TYPE=httpStream node dist/index.js
发送经过身份验证的请求:
curl -H "Authorization: Bearer $OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"method":"tools/list","params":{}}' \
http://localhost:3000/mcp
Docker
快速开始
# Pull and run
docker pull ghcr.io/jordanburke/reddit-mcp-server:latest
docker run -d \
--name reddit-mcp \
-p 3000:3000 \
-e REDDIT_CLIENT_ID=your_client_id \
-e REDDIT_CLIENT_SECRET=your_client_secret \
-e REDDIT_SAFE_MODE=standard \
ghcr.io/jordanburke/reddit-mcp-server:latest
Docker Compose
services:
reddit-mcp:
image: ghcr.io/jordanburke/reddit-mcp-server:latest
ports:
- "3000:3000"
environment:
- REDDIT_CLIENT_ID=${REDDIT_CLIENT_ID}
- REDDIT_CLIENT_SECRET=${REDDIT_CLIENT_SECRET}
- REDDIT_USERNAME=${REDDIT_USERNAME}
- REDDIT_PASSWORD=${REDDIT_PASSWORD}
- REDDIT_SAFE_MODE=standard
- OAUTH_ENABLED=${OAUTH_ENABLED:-false}
- OAUTH_TOKEN=${OAUTH_TOKEN}
restart: unless-stopped
在本地构建
docker build -t reddit-mcp-server .
docker run -d --name reddit-mcp -p 3000:3000 --env-file .env reddit-mcp-server
Reddit 负责任构建者政策
此服务的设计遵循 Reddit 的负责任构建者政策:
- 默认启用安全模式——速率限制和重复内容检测可防止垃圾信息
- 跨 subreddit 重复内容检测——阻止在多个 subreddit 发布相同内容
- 支持机器人声明——可选的自动页脚,用于提高透明度
- 不操纵投票或 Karma——有意排除点赞/点踩工具
- 不发送私信——有意排除私信工具
- 遵循政策的 AI 指令——MCP 服务指令会提醒 AI 助手遵守数据使用限制
致谢
- 分叉自 Alexandros Lekkas 的 reddit-mcp-server
- 受 Arindam200 的 Python Reddit MCP Server 启发
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。