RedditAPIs について
RedditAPIsは、Redditのライブデータとアカウント操作を必要とする開発者やAIエージェント向けの公式MCPサーバーです。検索、コミュニティ閲覧、ユーザー検索、監視に対応し、Redditアカウントを接続すると投稿なども行えます。
主な機能
- 01投稿、コメント、コミュニティ、ユーザーの検索
- 02コミュニティのフィード、ルール、Wikiの閲覧
- 03投稿とコメントツリーの取得
- 04アカウント接続後のコメント、投稿、投票、DM
- 05条件に合うコンテンツの監視とWebhook設定
- 06フィードバックツールとプレイブックリソース
活用シーン
- 01トピックに関連するReddit投稿やコメントの検索
- 02コミュニティのルール、メンバー、最近の動向の確認
- 03条件に合う新着投稿を監視してWebhookで通知
- 04接続済みアカウントでRedditの議論に参加
MCP 対応
MCPサーバーとして、Redditの検索、閲覧、アカウント操作、監視、フィードバックのツールとプレイブックリソースをクライアントに提供します。読み取りには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 エージェント向けに構築されており、Reddit の開発者アプリは不要です。エージェントは、投稿やコメントの検索、サブレディットのフィードやルールの閲覧、コメントツリーの展開、ユーザーやコミュニティの検索、新しい条件一致投稿をウェブフックに送信するモニターの設定ができます。読み取りは 1 回あたり $0.0015 です(または月額 $19 からの 30,000 回分の読み取りプラン)。すべてのアカウントで毎月 1,000 回まで無料で読み取ることができ、新規アカウントにはカード不要で $0.50 分の無料クレジットが付与されます。Reddit アカウントを一度接続すれば、自分としてコメント、投稿、投票、DM を送信できます。各ツールは api.redditapis.com の 1 つのエンドポイントに対応しています。
インストール:npx -y redditapis-mcp@latest を実行し、https://www.redditapis.com から取得した REDDITAPIS_KEY を設定します。
ホステッド版では、キーを貼り付ける代わりにサインインします(Claude Code):claude mcp add --transport http reddit https://api.redditapis.com/mcp(自分のアカウントを読み取る 5 つのツールを除く、すべてのツールを利用できます)
ウェブサイト:https://www.redditapis.com/mcp
クイックスタート
インストールは不要です。npx で実行します。必要なのは、redditapis.com から取得した API キーだけです。このキーだけで読み取りができるため、アカウントへのログインやセッションの設定は不要です。モニター/ウェブフックの管理には、別途有効なモニタリングプランが必要です(モニタリングに無料プランはありません)。
セットアップ
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/エージェントモード)
ワークスペース内の .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 個のプレイブックリソースがあります。内訳は、Reddit の読み取りツールが 32 個、Reddit アカウントツールが 10 個(接続、ステータス確認、切断、コメント、投稿、投票、DM、後で行う投稿またはコメントの予約・一覧表示・キャンセル)、モニター/Webhook 管理ツールが 10 個、reddit_set_watch(1 回の呼び出しで監視全体を設定)、reddit_explain(保持している行の取得元を確認)、フィードバックツールが 3 個、アカウントツールが 2 個(reddit_account_me はクレジット残高も確認でき、reddit_account_payments はチャージ履歴を確認できます)です。Reddit への書き込み(コメント、投稿、投票、DM)は、reddit_connect で接続した後に限り、あなたの Reddit アカウントとして実行されます。それぞれ書き込みとしてマークされているため、実行前にクライアントが確認を求めます。モニター/Webhook ツールは、あなた自身の redditapis.com アカウント(アラートのサブスクリプション)を設定するもので、Reddit 自体を設定するものではありません。また、フィードバックツールは redditapis.com チームにレポートを送信するもので、Reddit には送信しません。読み取りツールはすべて API キーだけで利用できます。モニター/Webhook の書き込みツール 6 個には、有効なモニタリングプランも必要です(下記の「モニタリング」を参照)。フィードバックツールは無料で、キーだけで利用できます。
カタログ全体に共通するルールをいくつか示します。
- サブレディット名には
r/の接頭辞を付けず、ユーザー名にはu/の接頭辞を付けずに指定します。reddit_subreddit_postsではコミュニティをsubredditとして指定し、/sub/{name}/...ツールではnameとして指定します。 - 一覧表示および検索ツールは
afterカーソルを返します。次のページを取得するには、返された値をそのままafterとして渡してください。limitに指定できる値は 1~100 です(範囲外の値は API によって上限・下限に調整されます)。 afterがnullで返された場合、次のページはありません。ただし、必ずしもすべての項目を取得できたことを意味するわけではありません。Reddit では、活発な一覧の配信が、項目の終わりに達するよりかなり前に停止することがよくあります。最終レスポンスにはlisting_statusも含まれ、その値はcomplete、truncated、unknownのいずれかです。不足がないことを意味するのはcompleteだけです。それ以外の 2 つは部分的な結果として扱い、さらにページを取得するのではなく、並べ替え順、期間、検索語を変えて範囲を広げてください。t(hour、day、week、month、year、all)は期間を設定します。サブレディットの一覧ではtopとcontroversialの並べ替えに適用され、検索では結果セット全体の期間を指定します。
検索と発見
| ツール | エンドポイント | 機能 |
|---|---|---|
reddit_search | GET /api/reddit/search | Reddit 全体、または 1 つのサブレディット内(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 ユーザーを検索します(ユーザー名、カルマ、アカウント作成からの期間)。 |
サブレディット
| ツール | エンドポイント | 機能 |
|---|---|---|
reddit_subreddit_posts | GET /api/reddit/posts | sort(new、hot、top、rising、controversial、best)でサブレディットの投稿を一覧表示します。 |
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(MCPツールではなくREST呼び出し)から取得したreddit_sessionとloidが必要です。これらはヘッダーで送信され、URLには含まれません。 |
reddit_subreddit_top | GET /api/reddit/sub/{name}/top | 指定した期間(t)のサブレディットのトップ投稿を取得します。 |
reddit_subreddit_comments | GET /api/reddit/sub/{name}/comments | サブレディット全体の新しいコメントをストリーミングします(1件の投稿のスレッドではありません)。 |
reddit_subreddit_about | GET /api/reddit/sub/{name}/about | サブレディットの公開メタデータを取得します。タイトル、説明、登録者数とアクティブユーザー数、種類、NSFWフラグが含まれます。 |
reddit_subreddit_rules | GET /api/reddit/sub/{name}/rules | サブレディットの投稿ルールと、Reddit全体のルールを取得します。 |
reddit_subreddit_moderators | GET /api/reddit/sub/{name}/moderators | サブレディットのモデレーターチームを取得します。各モデレーターの権限、フレア、参加時期が含まれます。 |
reddit_subreddit_flairs | GET /api/reddit/sub/{name}/flairs | サブレディットの投稿フレアテンプレート(id、text、editable、色、mod_only)を取得します。これにより、投稿にコミュニティが必須とするflair_idを設定できます。Redditではサインイン済みアカウントにのみフレアを表示するため、接続済みのRedditセッションとして読み取ります。接続されていない場合は503 SESSION_REQUIREDを返し、課金されません。 |
reddit_subreddit_wiki | GET /api/reddit/sub/{name}/wiki/{page} | サブレディットのWikiページを名前とpageで取得します(Markdown+HTML、改訂メタデータ)。 |
投稿とコメント
| ツール | エンドポイント | 機能 |
|---|---|---|
reddit_post_visibility | GET /api/reddit/post/{id}/visibility | 投稿はまだ一般公開されていますか。それとも、いつの間にか公開されなくなっていますか。投稿と投稿者の一覧の1ページを取得して比較します。理由とともにlive、not_visible、undecidableのいずれかを返し、理由を把握していると断言することはありません。上流への呼び出しは2回、$0.004です。 |
reddit_post | GET /api/reddit/post/{id} | 36進数のid(t3_プレフィックスなし)で単一の投稿を取得します。タイトル、投稿者、スコア、本文、パーマリンク、サブレディット、URLが含まれます。 |
reddit_post_comments | GET /api/reddit/comments | permalinkで投稿と、その完全なスレッド形式のコメントツリーを取得します。 |
reddit_post_duplicates | GET /api/reddit/post/{id}/duplicates | サブレディットをまたいで、この投稿と同じリンクを共有する他のすべての投稿を取得します(Redditの「その他のディスカッション」)。 |
reddit_by_id | GET /api/reddit/by_id/{fullnames} | カンマ区切りのt3_形式のフルネームリストから、1回の呼び出しで最大100件の投稿データをまとめて取得します。 |
ユーザー
| ツール | エンドポイント | 機能 |
|---|---|---|
reddit_user_profile | GET /api/reddit/user/{name} | ユーザーの公開プロフィールを取得します。カルマ、アカウント作成からの経過期間、認証済み/従業員フラグ、アバターが含まれます。 |
reddit_user_comments | GET /api/reddit/user/{name}/comments | ユーザーの最近のコメントを取得します(本文、スコア、サブレディット、親投稿へのリンク、タイムスタンプ)。 |
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 | 現在、登録者数が最も多く、トレンドになっているサブレディットを閲覧します。 |
reddit_subreddits_new | GET /api/reddit/subreddits/new | 新しいサブレディットを、作成日時の新しい順に閲覧します。 |
reddit_subreddits_default | GET /api/reddit/subreddits/default | Reddit のデフォルトのフロントページに表示されるサブレディットを閲覧します。 |
モニタリング:自分のモニターと Webhook を管理する
モニターは、指定したサブレディットまたは Reddit 全体の投稿またはコメント(kind)を監視します。すべてのアカウントには、60 秒間隔で Reddit 全体の投稿を監視する無料の権利が 1 つあります。サブレディットの指定、コメントのマッチング、より短い間隔、追加の監視には有料プランが必要です。Webhook の登録には有料プランは不要です。無料の監視でも、有料プランの場合と同じように 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 の作成/更新/テスト) | 3 回の呼び出しを 1 回にまとめます。平易な文章の説明をモニターフィルターに変換し、このアカウントのプランで利用可能な機能を読み取り、モニターを作成した後、deliver_to Webhook を登録し、接続先を設定してテスト配信します。文中の引用句を最初に取り出してから節に分割するため、各部分はそれぞれ独自の単語だけを読み取ります。サブレディットは r/Name または貼り付けた reddit.com/r/Name リンク、引用句はキーワード用語、except/without/ignoring は除外、at least N upvotes はスコアの下限、comments/posts and comments はマッチ対象の種類として扱います。完全に把握できないフィルターは決して返しません(以下を参照)。確認用に understood と compiled_filter を返し、破棄、書き換え、または全体を 1 つの句として解釈した内容は notes に示します。 |
reddit_monitor_add | POST /api/reddit/monitor/add | モニターを作成します。監視するサブレディットと、任意のフィルター(キーワード、投稿者、ドメイン、包含/除外用語、最小スコア、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)、間隔の変更、またはモニターのフィルターの置き換えを行います。フィルターフィールドを 1 つでも渡すと、フィルター全体が置き換わります。維持したい内容はすべて再指定してください。 |
reddit_monitor_remove | POST /api/reddit/monitor/remove | モニターを完全に削除します。取り消すことはできません。 |
reddit_monitor_health | GET /api/reddit/monitor/health | モニターごとの配信数/失敗数/抑制数(直近 24 時間)、抑制の理由を ceiling と stale に分けた suppressed_breakdown、および配信上限に達したかどうかを表示します。 |
reddit_monitor_deliveries | GET /api/reddit/monitor/deliveries | 実際に配信された(または配信を試みた)投稿を、新しい順に実際の内容付きで表示します。件数だけではありません。自分が所有するすべてのモニターを集計するには、id を省略してください。 |
reddit_monitor_webhook_create | POST /api/reddit/monitor/webhook/create | 配信先(webhook/slack/discord)を登録します。署名シークレットが返されるのは 1 回限りです。 |
reddit_monitor_webhook_list | GET /api/reddit/monitor/webhook/list | 自分の Webhook を一覧表示します。シークレットは決して返しません。 |
reddit_monitor_webhook_test | POST /api/reddit/monitor/webhook/test | Webhook が正しく接続されていることを確認するため、1 回限りのテスト配信を送信します。 |
reddit_monitor_webhook_delete | POST /api/reddit/monitor/webhook/delete | Webhook を完全に削除します。引き続きその Webhook を参照しているモニターは連動して一時停止されません。 |
reddit_set_watch は推測せず、拒否します
説明に含まれるすべての文字は、サブレディット、引用句、キーワード、除外条件、スコア条件、配信条件、またはフィルター内容を持たない語のいずれかに、ちょうど一度だけ割り当てられる必要があります。割り当てられない語が残っている場合、コンパイラーは文全体を理解できていないため、理解できた部分だけで作った監視設定を返すのではなく、フィルターを一切返しません。
| 結果 | 条件 | 取得できるもの |
|---|---|---|
| フィルター | すべての語が割り当てられている | 監視設定に加えて、understood、compiled_filter、notes |
partial_understanding | 割り当てられない語がある、またはフィルターの二つの部分で同じ語が重複して数えられている | 割り当てられなかった語の正確な一覧、理解された内容、作成されたものはなし |
contradictory_filter | 同じ語句が監視対象にも除外対象にもなっており、監視設定から配信される可能性がない | 矛盾する両方の条件、作成されたものはなし |
no_anchor | サブレディットもキーワードもない | 拒否。リクエストは送信されません |
誤った監視設定は見えにくいため、これは重要です。監視 ID とテスト配信の成功が表示されたあと、いつまでも通知が届かないか、通知が大量に届くかのどちらかになります。割り当てられなかった語を示す拒否なら数秒で修正できますが、キーワードが除外条件にもなっている監視設定は、1 週間気づかれないことがあります。説明が拒否された場合は、監視したい語句を正確に引用するか、サブレディットを r/Name の形式で記述するか、reddit_monitor_add を使ってフィルターを直接作成してください。
プレイブック:MCP リソースとして提供される 3 つのレシピ
再利用可能なレシピが 3 つ、ツールではなく 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 アカウント:一度接続すれば、コメント、投稿、投票、DM、予約投稿ができます
reddit_connect は、Reddit で確認したうえで、Reddit のセッションを暗号化(AES-256-GCM、鍵は API のみが保持)してこちら側に保存し、この API キーのアカウントに紐づけます。その後の書き込みでは Cookie を送信しないため、エージェントのツール呼び出しや会話記録に Cookie が残ることはありません。書き込みはすべて、あなた自身として公開されるため、書き込みとしてマークされ、実行前にクライアントが確認を求めます。接続、状態確認、切断は無料です。
| ツール | エンドポイント | 機能 |
|---|---|---|
reddit_connect | POST /api/reddit/session | Reddit のセッションを一度保存します(reddit_session と loid の Cookie。投票と DM には 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 | あなたとしてサブレディットにテキスト投稿またはリンク投稿を送信します。 |
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、クライアント名、このパッケージのバージョンが含まれるため、追加の問い合わせなしでチームが対応できます。返されたサーバー ID を使って reddit_feedback_get を呼び出すと、トリアージ済み、リリース済み、却下のいずれかを確認できます。どちらのツールも無料です。
| ツール | エンドポイント | 機能 |
|---|---|---|
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 の借用チェッカーについて、どのような意見が出ていますか?」
エージェントは reddit_search を次のように呼び出します。
q: "borrow checker"
sort: "relevance"
t: "month"
sort_type: "score"
コミュニティの今週の人気投稿を読む
「今週の r/programming の人気投稿を表示してください。」
エージェントは reddit_subreddit_top を次のように呼び出します。
name: "programming"
t: "week"
さらにページを取得するには、レスポンスの after カーソルを次の呼び出しに渡します。{ name: "programming", t: "week", after: "<レスポンスの after>" }。
製品について話している人を見つける
「メカニカルキーボードを勧めている Reddit ユーザーは誰で、どのようなことを言っていますか?」
エージェントは reddit_deep_comment_search を次のように呼び出します。
q: "mechanical keyboard"
group_by: "author"
sort: "relevance"
調査モードでは、クエリに言及した人物を、該当するコメントの数が多い順に返します。それぞれについて、最も関連性の高いコメントと、該当したサブレディットも表示します。
サブレディットを確認してからスレッドを読む
「r/webdev で API のレート制限に関する議論を見つけ、サブレディットのルールを確認して、スレッド全体を読んでください。」
エージェントはコミュニティを指定して reddit_search を呼び出します。
q: "rate limiting"
subreddit: "webdev"
sort: "relevance"
t: "year"
次に reddit_subreddit_rules を { name: "webdev" } で呼び出し、最後に検索結果の permalink を指定して reddit_post_comments を呼び出します。たとえば、{ permalink: "/r/webdev/comments/abc123/some_title/" } と指定すると、投稿とコメントツリーを取得できます。
ブランドのモニタリングを設定して、届いた内容を確認する
「r/SaaS と r/startups で自社製品への言及を監視し、一致した投稿を Slack に送信して、これまでに届いた内容を表示してください。」
エージェントは reddit_monitor_webhook_create を次のように呼び出します。
url: "https://hooks.slack.com/services/..."
kind: "slack"
次に reddit_monitor_add を次のように呼び出します。
subreddit: ["SaaS", "startups"]
q: "my product name"
その後、{ id: "<追加レスポンスに含まれるモニター ID>" } を指定して reddit_monitor_deliveries を呼び出すと、これまでに送信された、実際に一致した投稿が返されます。件数だけを確認する場合は reddit_monitor_health を呼び出します。
読み取りにはセッション不要。モニター/Webhook の書き込みには有効なプランが必要です
読み取りに必要なのは API キーだけです。アカウントのリンク、ログイン、Cookie の手順は必要ありません。Reddit への書き込み操作(コメント、投稿、投票、DM の送信)には、追加の手順が 1 つ必要です。reddit_connect で Reddit セッションを当方のシステムに保存します。セッションは暗号化されるため、以降の呼び出しで Cookie を渡す必要はありません。接続するまでは、どのツールもあなたの代わりに投稿、投票、DM を送信できません。また、保存したセッションはいつでも 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 の書き込みで subscription_required という 402 の本文が返された場合は、有効なモニタリングプランがありません(モニタリングに無料プランはありません)。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 または upstream_timeout を伴う HTTP 503 読み取りが制限時間内に完了せず、課金されていません(503 は API 自体の読み取り予算を超えたことを示します)。サーバーはすでに、retry_after(または Retry-After ヘッダー)の後に一度再試行しています。その再試行が REDDITAPIS_TIMEOUT_MS 内に完了できる場合に限ります。少し待ってから、ツールを再度呼び出してください。読み取りで 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
FAQ
Reddit 開発者アプリは必要ですか? いいえ。Reddit 開発者アプリを登録しなくても、1 つの RedditAPIs キーですべての読み取りを利用できます。
料金はいくらですか? 従量課金では読み取り 1 回あたり $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 は 1 回の呼び出しでウォッチ全体を設定し、reddit_explain は取得した行の出所を示します。3 つのフィードバックツールは redditapis.com チームへのレポートを送信または読み取り、reddit_account_me と reddit_account_payments はお客様自身の残高、プラン、チャージ履歴を読み取ります。
対応クライアントはどれですか? Claude Desktop、Claude Code、Cursor、Windsurf、VS Code(Copilot エージェントモード)、または任意の Model Context Protocol クライアントに対応しています。
キーやデータは保存されますか? いいえ。サーバーは状態を保持せず、呼び出しごとに API キーを転送します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。