关于 RedditAPIs
RedditAPIs 的官方 MCP 服务,为开发者和 AI Agent 提供 Reddit 实时数据及账户操作。它涵盖搜索、社区浏览、用户查询和监控,并可在连接 Reddit 账户后执行发帖等操作。
主要功能
- 01搜索帖子、评论、社区和用户
- 02浏览社区动态、规则与维基
- 03读取帖子及完整评论树
- 04连接账户后评论、发帖、投票和私信
- 05设置匹配内容监控与 Webhook
- 06提供反馈工具和操作流程资源
适用场景
- 01查找特定主题的 Reddit 帖子和评论
- 02了解社区规则、成员和近期动态
- 03监控符合条件的新帖子并发送 Webhook
- 04通过已连接账户参与 Reddit 讨论
MCP 相关
作为 MCP 服务向客户端提供 Reddit 搜索、浏览、账户操作、监控和反馈工具,并附带 playbook 资源。读取操作使用 API 密钥;写入 Reddit 内容需先连接账户。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.redditapis.com/mcpclaude mcp add --transport http redditapis-redditapis https://api.redditapis.com/mcp{"mcpServers":{"redditapis-redditapis":{"type":"http","url":"https://api.redditapis.com/mcp"}}}在 Cursor 中打开{"servers":{"redditapis-redditapis":{"type":"http","url":"https://api.redditapis.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"redditapis-redditapis":{"type":"http","url":"https://api.redditapis.com/mcp"}}}{"mcpServers":{"redditapis-redditapis":{"serverUrl":"https://api.redditapis.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
redditapis-mcp
redditapis-mcp 是 RedditAPIs 的官方 MCP 服务,面向需要在 Claude、Cursor、Windsurf、VS Code 或任何 MCP 客户端中获取 Reddit 实时数据的开发者和 AI Agent,无需 Reddit 开发者应用。你的 Agent 可以搜索帖子和评论、读取子版块动态和规则、展开评论树、查询用户和社区,还可以设置监控器,将符合条件的新帖子发送到你的 webhook。读取费用为每次调用 $0.0015(也可选择每月 $19 起、包含 30,000 次读取的套餐),每个账户每月可免费读取 1,000 次,新账户还可获得 $0.50 的免费额度,无需绑定银行卡。只需连接一次 Reddit 账户,即可使用你的身份发表评论、发帖、投票和发送私信。每个工具都对应 api.redditapis.com 上的一个端点。
安装:使用 https://www.redditapis.com 提供的 REDDITAPIS_KEY 运行 npx -y redditapis-mcp@latest
托管服务,无需粘贴密钥,直接登录(Claude Code):claude mcp add --transport http reddit https://api.redditapis.com/mcp(包含除 5 个读取你自己账户信息的工具之外的所有工具)
网站:https://www.redditapis.com/mcp
快速开始
无需安装,使用 npx 运行。你只需要一样东西:来自 redditapis.com 的 API 密钥。只需密钥即可进行读取,因此无需设置账户登录或会话。管理监控和 webhook 还需要有效的监控套餐(监控没有免费套餐)。
设置
Claude Desktop
编辑 claude_desktop_config.json(Settings > Developer > Edit Config):
{
"mcpServers": {
"reddit": {
"command": "npx",
"args": ["-y", "redditapis-mcp@latest"],
"env": { "REDDITAPIS_KEY": "YOUR_API_KEY" }
}
}
}
重启 Claude Desktop。reddit_* 工具会显示在工具选择器中。
Claude Code
claude mcp add reddit --env REDDITAPIS_KEY=YOUR_API_KEY -- npx -y redditapis-mcp@latest
Cursor
~/.cursor/mcp.json(或 Settings > MCP > Add New Server):
{
"mcpServers": {
"reddit": {
"command": "npx",
"args": ["-y", "redditapis-mcp@latest"],
"env": { "REDDITAPIS_KEY": "YOUR_API_KEY" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"reddit": {
"command": "npx",
"args": ["-y", "redditapis-mcp@latest"],
"env": { "REDDITAPIS_KEY": "YOUR_API_KEY" }
}
}
}
VS Code(Copilot / Agent 模式)
工作区中的 .vscode/mcp.json,或用户级 MCP 设置:
{
"servers": {
"reddit": {
"type": "stdio",
"command": "npx",
"args": ["-y", "redditapis-mcp@latest"],
"env": { "REDDITAPIS_KEY": "YOUR_API_KEY" }
}
}
}
配置
| 环境变量 | 必填 | 默认值 | 用途 |
|---|---|---|---|
REDDITAPIS_KEY | 是 | (无) | 来自 redditapis.com 的 API 密钥。也接受 REDDIT_APIS_KEY 作为别名。 |
REDDITAPIS_BASE_URL | 否 | https://api.redditapis.com | 覆盖 API 主机。 |
REDDITAPIS_TIMEOUT_MS | 否 | 30000 | 每个请求的超时时间,单位为毫秒。 |
REDDITAPIS_FEEDBACK_DIR | 否 | ~/.redditapis | reddit_feedback_send 保存本地草稿队列的位置(feedback-queue.json)。 |
身份验证使用 Bearer 令牌:服务会在每个请求中发送 Authorization: Bearer <REDDITAPIS_KEY>。
工具
59 个工具和 3 个操作手册资源:32 个 Reddit 读取工具、10 个 Reddit 账户工具(连接、查看状态、断开连接、评论、发布、投票、发送私信,以及安排、列出或取消稍后发布的帖子或评论)、10 个监控/webhook 管理工具、reddit_set_watch(一次调用即可建立完整监控)、reddit_explain(说明你当前查看的数据来自何处)、3 个反馈工具,以及 2 个账户工具(reddit_account_me,也可在此查看余额;以及 reddit_account_payments,用于查看充值记录)。Reddit 写入操作(评论、发帖、投票、发送私信)会以你的 Reddit 账户执行,且只有在你通过 reddit_connect 连接账户后才能执行;每项操作都标记为写入操作,因此客户端会在运行前征求你的同意。监控/webhook 工具用于配置你自己的 redditapis.com 账户(警报订阅),不会操作 Reddit 本身;反馈工具会向 redditapis.com 团队发送报告,不会发送给 Reddit。所有读取操作只需 API 密钥即可使用;6 个监控/webhook 写入操作还需要有效的监控计划(见下文“监控”)。反馈工具免费,只需你的密钥即可使用。
整个目录中有几项约定:
- 子版块名称不带
r/前缀,用户名不带u/前缀。reddit_subreddit_posts将社区作为subreddit;/sub/{name}/...工具则将其作为name。 - 列表和搜索工具会返回一个
after游标。要获取下一页,请按原样将其作为after传回。limit接受 1 到 100(API 会将超出范围的值限制在有效范围内)。 - 如果返回的
after为null,则没有下一页可供请求。但这并不总意味着你已获得所有条目:Reddit 通常会在繁忙列表耗尽之前就停止提供数据。最终响应还会包含listing_status,其值为complete、truncated或unknown。只有complete表示没有遗漏。应将另外两种状态视为部分结果,并通过切换排序方式、时间范围或搜索词来扩大搜索范围,而不是继续深入翻页。 t(hour、day、week、month、year、all)用于设置时间范围;在子版块列表中,它适用于top和controversial排序;在搜索中,它会限定整个结果集。
搜索与发现
| 工具 | 端点 | 功能 |
|---|---|---|
reddit_search | GET /api/reddit/search | 搜索整个 Reddit 或某个子版块(subreddit)中的帖子。 |
reddit_search_comments | GET /api/reddit/search/comments | 按评论文本搜索;由于 Reddit 的评论搜索不会返回匹配的评论本身,因此此工具会返回其父帖子。 |
reddit_deep_comment_search | GET /api/reddit/search/comments/deep | 真正的评论搜索:返回实际匹配的评论正文(分数、作者、评论深层永久链接、父帖子)。limit 设置要展开的父帖子数量;将 group_by="author" 切换为研究模式(查看谈论你的查询的不同用户)。高级调用。 |
reddit_search_media | GET /api/reddit/search/media | 搜索筛选为媒体内容的帖子,可按 kind(image、video、gif、all)缩小范围。 |
reddit_search_communities | GET /api/reddit/search/communities | 按名称或主题查找子版块(标题、订阅人数、描述、NSFW 标记)。 |
reddit_search_users | GET /api/reddit/search/users | 按名称或关键词查找 Reddit 用户(用户名、karma、账户年龄)。 |
Subreddits
| 工具 | 端点 | 功能 |
|---|---|---|
reddit_subreddit_posts | GET /api/reddit/posts | 按 sort(new、hot、top、rising、controversial、best)列出某个 subreddit 的帖子。 |
reddit_feedback_list | GET /feedback | 按时间倒序列出此账号提交的报告及其状态。可借此找回未保存 ID 的报告。免费。 |
reddit_verify_comments | POST /api/reddit/comments/verify | 检查最多 100 条指定评论是否仍然存在且公开可见。虽然使用 POST,但这是一次读取;可区分“作者已删除”“版主已移除”和“仍然存在”。 |
reddit_home_feed | GET /api/reddit/feed | 读取你自己的 Reddit 首页信息流。需要通过 POST /api/reddit/login(REST 调用,而非 MCP 工具)获取 reddit_session 和 loid;它们通过请求头传递,绝不会出现在 URL 中。 |
reddit_subreddit_top | GET /api/reddit/sub/{name}/top | 获取指定时间范围(t)内某个 subreddit 的热门帖子。 |
reddit_subreddit_comments | GET /api/reddit/sub/{name}/comments | 获取整个 subreddit 中最新评论的实时信息流(不是某条帖子的评论串)。 |
reddit_subreddit_about | GET /api/reddit/sub/{name}/about | 获取某个 subreddit 的公开元数据:标题、描述、订阅者和活跃用户数量、类型、NSFW 标记。 |
reddit_subreddit_rules | GET /api/reddit/sub/{name}/rules | 获取某个 subreddit 的发帖规则以及 Reddit 全站规则。 |
reddit_subreddit_moderators | GET /api/reddit/sub/{name}/moderators | 获取某个 subreddit 的版主团队,以及每位版主的权限、 flair 和加入时间。 |
reddit_subreddit_flairs | GET /api/reddit/sub/{name}/flairs | 获取某个 subreddit 的帖子 flair 模板(id、text、editable、颜色、mod_only),以便帖子使用该社区要求的 flair_id。Reddit 仅向已登录账号列出 flair,因此此工具会读取你已连接的 Reddit 会话;若未连接会话,则返回 503 SESSION_REQUIRED,且不收费。 |
reddit_subreddit_wiki | GET /api/reddit/sub/{name}/wiki/{page} | 按名称和 page 获取某个 subreddit 的 wiki 页面(markdown + HTML,含修订元数据)。 |
帖子和评论
| 工具 | 端点 | 功能 |
|---|---|---|
reddit_post_visibility | GET /api/reddit/post/{id}/visibility | 检查帖子是否仍然公开可见,还是悄然变得不可见。获取帖子和作者列表页中的一页,并进行比较。返回带原因的 live、not_visible 或 undecidable,绝不声称知道原因。调用上游两次,费用为 $0.004。 |
reddit_post | GET /api/reddit/post/{id} | 按帖子 base-36 id(不含 t3_ 前缀)获取单条帖子:标题、作者、得分、正文、永久链接、subreddit、URL。 |
reddit_post_comments | GET /api/reddit/comments | 根据 permalink 获取一条帖子及其完整的树状评论串。 |
reddit_post_duplicates | GET /api/reddit/post/{id}/duplicates | 获取所有分享此帖子链接的其他帖子,涵盖各个 subreddit(Reddit 的“其他讨论”)。 |
reddit_by_id | GET /api/reddit/by_id/{fullnames} | 从以逗号分隔的 t3_ 完整名称列表中,一次调用批量获取最多 100 条帖子的完整信息。 |
用户
| 工具 | 端点 | 功能 |
|---|---|---|
reddit_user_profile | GET /api/reddit/user/{name} | 获取用户的公开个人资料:karma、账号年龄、已验证/员工标记、头像。 |
reddit_user_comments | GET /api/reddit/user/{name}/comments | 获取用户近期评论(正文、得分、subreddit、父级链接、时间戳)。 |
reddit_user_submitted | GET /api/reddit/user/{name}/submitted | 获取用户发布的帖子(与 reddit_user_comments 对应)。 |
reddit_user_achievements | GET /api/reddit/user/{name}/achievements | 获取用户的公开成就(个人资料中的奖杯):名称、描述、授予时间戳、图标。没有成就的账号会返回空列表。 |
社区浏览(无关键词)
| 工具 | 端点 | 功能 |
|---|---|---|
reddit_subreddits_popular | GET /api/reddit/subreddits/popular | 浏览当前订阅人数最多、最热门的 subreddit。 |
reddit_subreddits_new | GET /api/reddit/subreddits/new | 浏览最新的 subreddit,按创建时间从近到远排列。 |
reddit_subreddits_default | GET /api/reddit/subreddits/default | 浏览 Reddit 默认首页中的 subreddit 集合。 |
监控:管理自己的监控器和 Webhook
监控器会监视指定的 subreddit 或整个 Reddit中的帖子或评论(kind)。每个账户都享有一项免费权益:以 60s 的间隔监视整个 Reddit 上的帖子;指定 subreddit、匹配评论、使用更短的间隔以及添加其他监控都需要付费计划。注册 Webhook 不需要付费计划,因为免费监控器的投递方式与付费监控器完全相同。查看自己的列表、健康状况和投递记录始终不需要计划。
reddit_monitor_list 会返回一个 slots 对象,明确列出此账户的能力:used、total、tier、is_free、cadence_s(该等级允许的最短间隔)、sitewide_slots、distinct_subreddits_used、distinct_subreddits_total、comments_allowed、scoped_allowed 和 sitewide_allowed。reddit_set_watch 会先读取这些标志,再进行任何设置。
| 工具 | 端点 | 功能 |
|---|---|---|
reddit_set_watch | POST /api/reddit/monitor/add(+ Webhook 创建/更新/测试) | 一次调用,无需分三步:将自然语言描述编译为监控筛选条件,读取此账户的计划能力,创建监控器,然后注册、指定并测试触发 deliver_to Webhook。先从句子中提取引号内的短语,再将句子拆分为分句,因此每部分只读取自身的词语:subreddit 可写作 r/Name 或粘贴的 reddit.com/r/Name 链接;引号内的短语作为关键词;except/without/ignoring 表示排除项;at least N upvotes 表示最低分数;comments / posts and comments 表示匹配类型。它绝不会返回无法完整解释的筛选条件(见下文)。返回 understood 和 compiled_filter,供你检查;notes 会说明它丢弃、改写或作为完整短语读取的内容。 |
reddit_monitor_add | POST /api/reddit/monitor/add | 创建监控器:指定要监视的 subreddit,以及可选的筛选条件(关键词、作者、域名、包含/排除词、最低分数、NSFW)。仅监视创建之后的内容(或从 baseline_item_id 开始)。 |
reddit_monitor_list | GET /api/reddit/monitor/list | 列出账户上的所有监控器,以及 slots({used, total, tier})。 |
reddit_monitor_update | POST /api/reddit/monitor/update | 暂停/恢复(active)、重新设置间隔,或替换监控器的筛选条件。传入任何筛选字段都会替换整个筛选条件——请重新提供所有想保留的内容。 |
reddit_monitor_remove | POST /api/reddit/monitor/remove | 永久删除监控器。无法撤销。 |
reddit_monitor_health | GET /api/reddit/monitor/health | 按监控器统计已投递/失败/已抑制数量(最近 24h),通过 suppressed_breakdown 将抑制原因细分为 ceiling 和 stale,并说明是否已触及投递上限。 |
reddit_monitor_deliveries | GET /api/reddit/monitor/deliveries | 显示实际投递(或尝试投递)的帖子,按时间从新到旧排列,并包含真实内容,而不只是数量。省略 id 可汇总你拥有的所有监控器。 |
reddit_monitor_webhook_create | POST /api/reddit/monitor/webhook/create | 注册投递目标(webhook/slack/discord)。返回一个仅显示一次的签名密钥。 |
reddit_monitor_webhook_list | GET /api/reddit/monitor/webhook/list | 列出你的 Webhook。绝不返回密钥。 |
reddit_monitor_webhook_test | POST /api/reddit/monitor/webhook/test | 发送一次性测试投递,以确认 Webhook 配置正确。 |
reddit_monitor_webhook_delete | POST /api/reddit/monitor/webhook/delete | 永久删除 Webhook。不会级联暂停仍指向它的监控器。 |
reddit_set_watch 会拒绝请求,而不是猜测
描述中的每个字符都必须且只能归入一项:subreddit、引用短语、关键词、排除项、分数条件、交付条件,或不携带筛选内容的词。只要有任何内容未归类,就意味着编译器没有理解整个句子,它会返回完全不创建筛选条件,而不是根据它理解的部分创建监控。
| 结果 | 条件 | 你会得到什么 |
|---|---|---|
| 筛选条件 | 每个词都有归属 | 监控,以及 understood、compiled_filter 和 notes |
partial_understanding | 有些词无法归类,或筛选条件中的两部分重复计算了同一批词 | 无法归类的准确词语、已理解的内容,以及不创建任何内容 |
contradictory_filter | 同一短语既被监控又被排除,因此监控永远不会发送结果 | 列出冲突的两部分,且不创建任何内容 |
no_anchor | 既没有 subreddit,也没有关键词 | 在发送任何请求之前拒绝 |
这很重要,因为错误的监控不会显现出来:你会得到一个监控 ID 和一次成功的测试投递,然后要么永远没有动静,要么信息泛滥。拒绝请求并指出无法归类的词语,几秒内就能修正;而关键词同时也是排除项的监控,可能一周都不会被发现。如果描述被拒绝,请准确引用要监控的短语,将 subreddit 写成 r/Name,或直接用 reddit_monitor_add 构建筛选条件。
操作手册:三份配方,以 MCP 资源形式提供
这里提供三份可复用的配方,作为 MCP 资源而非工具,因为协议规定资源由应用驱动:主机在选择器或搜索框中展示资源,只有在收到 URI 请求时才会读取。不会预先获取,也不会注入任何内容。
| URI | 涵盖内容 |
|---|---|
playbook://competitor-mention-watch | 建立对竞争对手名称的持续监控,并将每条匹配结果转发到频道;包括如何减少品牌名称同时也是普通词语所产生的误报,以及如何区分安静的监控与故障监控。 |
playbook://subreddit-audit | 在某个社区发帖前对其进行分析:将规模与实际评论率对比,检查明文规则及其执行情况、版主团队、长期稳定的内容与本月有效的内容,以及帖子能否保留下来。 |
playbook://pain-point-mining | 从人们实际使用的措辞中发现问题,分析评论正文而非帖子标题,按不同作者数而非命中数排序,并将一次性扫描转为持续信息流。 |
每份都是简短的 Markdown 文档,只使用本软件包已提供的调用,因此配方不会指向尚未实现的功能。测试会将每份操作手册中提及的所有工具与实时目录进行核对。
正文属于文档,会列出对应配方所用的调用,这正是它们的用途。这与工具描述有意不同:客户端会在连接时获取工具描述,而没有人选择这些描述;描述只陈述产品事实,并由一道检查机制强制确保这一点。只有在有请求要求读取某个 URI 时,才会读取相应资源,因此它是你主动打开的文档,而非注入内容。正文仍会接受检查,以排查隐藏或编码文本、指向我们自有主机以外的链接,以及对抗性引导(覆盖你的指令、隐瞒信息、窃取数据或循环消耗你的额度);每项检查都有一个植入缺陷的对照项。
// resources/list, then
{ "method": "resources/read", "params": { "uri": "playbook://subreddit-audit" } }
你的 Reddit 账号:连接一次,即可评论、发帖、投票、私信和安排发布时间
reddit_connect 会将你的 Reddit 会话加密(AES-256-GCM,密钥仅由 API 持有)后存储在我们这边,并关联到此 API 密钥对应的账号,存储前会先通过 Reddit 验证。之后的每次写入操作都不会发送 Cookie,因此它们不会出现在 Agent 的工具调用或对话记录中。每次写入都会以你的身份公开执行,因此会标记为写入操作,并由客户端在执行前询问你。连接、查看状态和断开连接均免费。
| 工具 | 端点 | 功能 |
|---|---|---|
reddit_connect | POST /api/reddit/session | 存储你的 Reddit 会话(reddit_session 和 loid Cookie;投票和私信还需添加 csrf_token)。已登出的会话将被拒绝。免费。 |
reddit_session_status | GET /api/reddit/session | 查看会话是否已连接、用户名以及上次使用时间。不会返回 Cookie。免费。 |
reddit_disconnect | POST /api/reddit/session/delete | 删除已存储的会话。免费。 |
reddit_comment | POST /api/reddit/comment | 以你的身份评论帖子。 |
reddit_submit | POST /api/reddit/submit | 以你的身份向 subreddit 发布文本帖或链接帖。 |
reddit_vote | POST /api/reddit/vote | 以你的身份对帖子或评论投赞成票、反对票,或取消投票。 |
reddit_dm | POST /api/reddit/dm | 以你的身份发送私信。 |
reddit_scheduled_create | POST /api/reddit/schedule | 安排稍后发布帖子或评论(run_at 为 60 秒至 30 天后)。到时将使用你已连接的会话执行。安排发布时间免费;仅在执行成功时按写入费率计费。 |
reddit_scheduled_list | GET /api/reddit/schedule | 查看你安排发布的帖子和评论,按时间从新到旧排列,并显示各项的 status、result 或 error,以及是否已计费。免费。 |
reddit_scheduled_cancel | POST /api/reddit/schedule/cancel | 取消尚未执行的已安排帖子或评论。取消的操作不会执行,也不会收费。免费。 |
反馈:审核草稿后,告诉团队出了什么问题
参考了 Claude Code 自带的反馈工具。当调用因非密钥、余额或速率限制问题而失败,当你请求的内容没有工具支持,或结果明显错误时,模型可以将报告草拟到本地队列(~/.redditapis/feedback-queue.json,最多 10 份草稿,可通过 REDDITAPIS_FEEDBACK_DIR 覆盖目录)。只有在你要求查看队列并指定要发送的草稿后,才会发送任何内容。每份报告都包含最近一次失败调用的端点、状态和请求 ID、你的客户端名称以及此软件包的版本,团队无需后续跟进即可处理。使用 reddit_feedback_get 和返回的服务器 ID,可查看报告是否已分类处理、已发布修复或已拒绝。两种工具均免费。
| 工具 | 端点 | 功能 |
|---|---|---|
reddit_feedback_send | POST /feedback | action: "draft"(默认)将报告加入本地队列,不会发送任何内容;"list" 显示队列;"send" 仅发送你指定的草稿;"discard" 丢弃草稿。 |
reddit_explain | 无(进程内) | 说明此会话中已获取数据行的来源:对每次已完成的调用,显示工具、端点、响应到达时间、该副本目前的时效、上游请求 ID 和响应大小。读取路径不保留响应缓存,因此这里显示的是你手中副本的时效,而非已存储数据行的时效。 |
reddit_account_me | GET /account/me | 查看此密钥剩余的额度,不会产生任何支出。免费,不计量。 |
reddit_account_payments | GET /account/payments | 查看此密钥的所有充值记录:金额、增加的额度、状态和日期,按时间从新到旧排列。免费,不计量。 |
reddit_feedback_get | GET /feedback/{id} | 查看已发送报告的状态(new、triaged、shipped、declined)和团队的回复。 |
使用示例
跨 Reddit 研究某个话题
“这个月大家都在怎么评价 Rust 借用检查器?”
Agent 调用 reddit_search,参数如下:
q: "borrow checker"
sort: "relevance"
t: "month"
sort_type: "score"
查看某个社区本周的热门帖子
“给我看看 r/programming 本周的热门帖子。”
Agent 调用 reddit_subreddit_top,参数如下:
name: "programming"
t: "week"
若要继续翻页,请在下一次调用时传入响应中的 after 游标:{ name: "programming", t: "week", after: "<after from response>" }。
查找讨论某款产品的人
“哪些 Reddit 用户在推荐机械键盘?他们都说了什么?”
Agent 调用 reddit_deep_comment_search,参数如下:
q: "mechanical keyboard"
group_by: "author"
sort: "relevance"
研究模式会返回提到该查询的不同用户,并按其匹配评论的数量排序;每位用户都附有其热门评论,以及匹配到的子版块。
审查某个子版块,然后阅读帖子
“在 r/webdev 中找一条关于 API 速率限制的讨论,查看该子版块的规则,并阅读完整讨论串。”
Agent 调用针对该社区的 reddit_search,参数如下:
q: "rate limiting"
subreddit: "webdev"
sort: "relevance"
t: "year"
然后调用 reddit_subreddit_rules,参数为 { name: "webdev" };最后调用 reddit_post_comments,并传入搜索结果中的 permalink,例如 { permalink: "/r/webdev/comments/abc123/some_title/" },以获取帖子及其评论树。
设置品牌监控并查看收到的内容
“监控 r/SaaS 和 r/startups 中对我产品的提及,将匹配结果发送到我的 Slack,并告诉我目前收到了哪些内容。”
Agent 调用 reddit_monitor_webhook_create,参数如下:
url: "https://hooks.slack.com/services/..."
kind: "slack"
然后调用 reddit_monitor_add,参数如下:
subreddit: ["SaaS", "startups"]
q: "my product name"
稍后,调用 reddit_monitor_deliveries,并传入 { id: "<monitor id from the add response>" },即可返回迄今已发送的实际匹配帖子;若只想查看数量,则调用 reddit_monitor_health。
读取操作无需会话;监控/Webhook 写入操作需要有效套餐
读取操作只需要 API 密钥——无需关联账户、登录或 Cookie。Reddit 写入操作(评论、发帖、投票、发送私信)需要额外一步:reddit_connect 会在我们这边加密保存你的 Reddit 会话,因此后续调用无需携带 Cookie。在你完成连接之前,任何工具都无法以你的身份发帖、投票或发送私信;你也可以随时调用 reddit_disconnect 删除已保存的会话。监控/Webhook 管理工具属于另一类写入操作:它们会配置你自己的 redditapis.com 账户(提醒订阅),创建或更改状态的操作(reddit_monitor_add/update/remove、reddit_monitor_webhook_create/test/delete)都需要有效的监控套餐;读取你自己的列表、健康状态或投递历史则无需套餐。
故障排查
HTTP 401 (invalid or missing API key) 检查 MCP 客户端配置中的 REDDITAPIS_KEY 是否设置正确,并确认它与 redditapis.com 提供的密钥一致。
HTTP 402 (insufficient credits) 在 redditapis.com 为账户充值。对于监控/ webhook 写入,若 402 响应正文为 subscription_required,表示没有有效的监控计划(监控没有免费套餐);若为 monitor_slots_exhausted,表示计划中的监控槽位已全部占用——reddit_monitor_list 的 slots 字段会显示已用槽位数和总数。
HTTP 403 (access forbidden) 子版块或用户可能是私密的、已被封禁或处于隔离状态,也可能是你的计划不包含此端点。
HTTP 404 (not found) 子版块、帖子 ID、用户或永久链接可能有误,也可能是内容已被删除或移除。
HTTP 429 (rate limited) 等待几秒后重试,或降低请求频率。对于批量操作,请拉开调用间隔并调高 REDDITAPIS_TIMEOUT_MS。
HTTP 408 或 HTTP 503 且带有 upstream_timeout 读取未能及时完成,且不会计费(503 表示 API 自身的读取时限已用尽)。当重试仍可在 REDDITAPIS_TIMEOUT_MS 时限内完成时,服务端已根据 retry_after(或 Retry-After 标头)重试过一次;请稍后再次调用工具。读取请求遇到 503 upstream_unavailable 时也会进行同样的一次重试。
Request failed: timed out after 30000ms 默认超时时间为 30 秒。对于大型 reddit_deep_comment_search 或分页获取操作,请调高 REDDITAPIS_TIMEOUT_MS(例如 60000)。
Claude / Cursor 中未显示工具 确保 npx 位于 PATH 中,且已安装 Node.js 18+(node --version)。检查 MCP 客户端日志中是否有启动错误。
开发
npm install
npm run check # syntax-check both source files
npm test # unit-test the tool catalog + query/path builders (no network)
npm start # run the stdio server (needs REDDITAPIS_KEY)
链接
- 网站和 API 密钥:redditapis.com
- REST API 基础 URL(无需 MCP,直接调用):
https://api.redditapis.com
常见问题
需要 Reddit 开发者应用吗? 不需要。一个 RedditAPIs 密钥即可用于所有读取操作,无需注册 Reddit 开发者应用。
费用是多少? 按需付费,每次读取 $0.0015;也可以选择月度读取套餐,$19 起,可读取 30,000 次。每个账户每月可免费读取 1,000 次,注册时还可获得 $0.50 免费额度,无需绑定银行卡。监控需要监控计划,没有免费套餐。
可以发帖、评论或投票吗? 可以,使用 reddit_connect 连接一次 Reddit 账户后即可(会话会在我们这边加密存储,之后的调用不会传输会话)。随后,reddit_comment、reddit_submit、reddit_vote 和 reddit_dm 会以该账户身份执行操作,并且都会标记为写入操作,以便客户端在运行前征求确认。reddit_disconnect 会删除已存储的会话。其他工具中,10 个监控/ webhook 工具用于管理你自己的 redditapis.com 监控项和 webhook(属于写入操作,但不会写入 Reddit 本身);reddit_set_watch 可通过一次调用设置完整的监控;reddit_explain 会说明你持有的各行数据的来源;3 个反馈工具用于向 redditapis.com 团队发送报告或读取报告;reddit_account_me 和 reddit_account_payments 则用于读取你自己的余额、计划和充值记录。
支持哪些客户端? Claude Desktop、Claude Code、Cursor、Windsurf 和 VS Code(Copilot Agent 模式),以及任何 Model Context Protocol 客户端。
它会存储我的密钥或数据吗? 不会。服务不保存任何状态,并会在每次调用时转发你的 API 密钥。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。