mcpField
R
reddit-mcp-server

reddit-mcp-server

本地服务
github.com/jordanburke社交媒体309今天更新

关于 reddit-mcp-server

reddit-mcp-server 是用于读取和管理 Reddit 内容的 MCP 服务,面向需要检索帖子、用户和社区信息或发布内容的客户端。它结合读写工具与默认启用的安全模式及机器人披露设置。

主要功能

  1. 01浏览社区、帖子和评论
  2. 02搜索帖子并查看用户信息
  3. 03创建、回复、编辑和删除内容
  4. 04安全模式限制写入频率并检测重复
  5. 05可选添加机器人披露页脚

适用场景

  1. 01检索某个 subreddit 的帖子和评论
  2. 02分析用户发布的内容
  3. 03在具备用户凭据时发布或回复
  4. 04降低自动发布重复内容的风险

MCP 相关

该 MCP 服务向兼容客户端提供 Reddit 浏览、搜索、用户信息及内容写入工具。部分读取可在无 OAuth 凭据时通过 RSS 和 Arctic Shift 获取;写入操作需要 OAuth 和用户凭据。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"jordanburke-reddit": {
"command": "npx",
"args": [
"-y",
"reddit-mcp-server"
],
"env": {
"REDDIT_CLIENT_ID": "<REDDIT_CLIENT_ID>",
"REDDIT_CLIENT_SECRET": "<REDDIT_CLIENT_SECRET>",
"REDDIT_USERNAME": "<REDDIT_USERNAME>",
"REDDIT_PASSWORD": "<REDDIT_PASSWORD>",
"REDDIT_AUTH_MODE": "<REDDIT_AUTH_MODE>",
"REDDIT_SAFE_MODE": "<REDDIT_SAFE_MODE>",
"REDDIT_BOT_DISCLOSURE": "<REDDIT_BOT_DISCLOSURE>",
"REDDIT_BOT_FOOTER": "<REDDIT_BOT_FOOTER>"
}
}
}
}
启动命令npx -y reddit-mcp-server
需要配置的环境变量
REDDIT_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 secret
REDDIT_USERNAMEReddit username (required for write operations)
REDDIT_PASSWORD密钥Reddit password (required for write operations)
REDDIT_AUTH_MODE密钥Authentication mode: auto, authenticated, or anonymous
REDDIT_SAFE_MODEWrite safeguards: off, standard (default), or strict
REDDIT_BOT_DISCLOSUREBot disclosure footer: auto or off (default)
REDDIT_BOT_FOOTERCustom bot footer text (used with REDDIT_BOT_DISCLOSURE=auto)

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

安装包
npmreddit-mcp-server1.7.0

工具

25

收录的工具列表 · 更新于 今天

此工具无需参数。

详细介绍

Reddit MCP 服务

一个用于与 Reddit 交互的模型上下文协议(MCP)服务——获取帖子、评论、用户信息,并创建内容。

npm version npm downloads GitHub stars License: MIT

reddit-mcp-server MCP server

功能一览

功能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 会自动安装:

下载 reddit-mcp-server.mcpb

选项 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否3HTTP 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无否仅用于明确选择退出
standard2 秒最近 10 项 + 跨 subreddit默认,推荐
strict5 秒最近 20 项 + 跨 subreddit适用于谨慎的自动发帖
禁用安全模式

安全模式默认启用。若要明确禁用:

export REDDIT_SAFE_MODE=off
npx reddit-mcp-server
安全模式的作用
  1. 速率限制:强制要求写入操作之间至少间隔一段时间
  2. 重复内容检测:阻止重复发布相同内容
  3. 跨子版块检测:防止在多个子版块发布相同内容(遵循 Reddit 政策)
  4. 智能 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_postsRSS,然后是 Arctic Shift归档回退结果按最新优先排列,而非按排名排列
get_reddit_postArctic Shift
get_post_commentsArctic Shift可能缺少近期评论;不支持排序
get_more_commentsArctic Shift
get_user_infoArctic Shift根据首次活动时间估算账户年龄;状态标记未知
get_user_posts、get_user_commentsArctic Shift仅按最新优先排列
get_subreddit_info、get_subreddit_rulesArctic Shift
search_redditArctic 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 助手遵守数据使用限制

致谢

评论

支持 Markdown

第一次接触 MCP?

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

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