Reddit MCP 服务器 について
Reddit API を通じて公開 Reddit データを取得する TypeScript 製 MCP サーバーです。subreddit の探索、投稿やコメントの検索・取得に対応し、OAuth トークンも管理します。
主な機能
- 01subreddit の情報取得と探索
- 02並べ替え・期間指定付き投稿検索
- 03投稿とコメントの詳細取得
- 04OAuth 認証とトークン更新
活用シーン
- 01subreddit の人気投稿の発見
- 02トピックに関する公開議論の調査
- 03コミュニティと登録者数の比較
- 04投稿へのコメントの確認
MCP 対応
subreddit の照会、投稿・コメントの取得、検索を行うツールを MCP クライアントに公開します。Reddit API を通じて公開データにアクセスします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🔴 Reddit MCP Server
中文版本 | 英語
Reddit API を通じて Reddit のデータにアクセスするための、包括的な MCP サーバーです。
🎯 概要
サブレディット、投稿、コメント、検索機能など、Reddit のデータにシームレスにアクセスできる Model Context Protocol(MCP)サーバーです。TypeScript と Reddit 公式 API を使用して構築されており、信頼性の高い高速なデータ取得を実現します。
✨ 機能
- 🏠 サブレディット情報:任意のサブレディットの詳細情報を取得します
- 🔍 投稿検索:さまざまな並べ替えオプションを使って、サブレディット内の投稿を検索します
- 📝 投稿の詳細:内容やメタデータを含む、投稿の完全な情報を取得します
- 💬 コメント:さまざまな並べ替え方法で投稿のコメントを取得します
- 🌐 サブレディットの探索:新しいサブレディットを検索して見つけます
- 🔑 OAuth 認証:Reddit API の認証情報を使用して安全にアクセスします
- 🔄 トークンの自動更新:アクセストークンを自動的に管理します
- 🎨 リッチなフォーマット:包括的なデータを含む、見やすく整形された応答を返します
- ⚡ 高パフォーマンス:適切なエラー処理を備えた効率的な API 呼び出しを行います
📦 インストール
npm install reddit-mcp
または、npx で直接使用します:
npx reddit-mcp
🔧 前提条件
この MCP サーバーを使用する前に、Reddit API の認証情報を取得する必要があります:
-
Reddit アプリを作成する:
- Reddit アプリの設定にアクセスします
- 「Create App」または「Create Another App」をクリックします
- アプリの種類として「script」を選択します
client_idとclient_secretを控えておきます
-
環境変数を設定する:
export REDDIT_CLIENT_ID="your_client_id_here" export REDDIT_CLIENT_SECRET="your_client_secret_here"または、
.envファイルを作成します:REDDIT_CLIENT_ID=your_client_id_here REDDIT_CLIENT_SECRET=your_client_secret_here
🔧 設定
Claude Desktop
{
"mcpServers": {
"reddit": {
"command": "npx",
"args": ["reddit-mcp"],
"env": {
"REDDIT_CLIENT_ID": "your_client_id_here",
"REDDIT_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
Cursor IDE
{
"mcpServers": {
"reddit": {
"command": "npx",
"args": ["reddit-mcp"],
"env": {
"REDDIT_CLIENT_ID": "your_client_id_here",
"REDDIT_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
GitHub Copilot を使用する VS Code
{
"mcp.servers": {
"reddit": {
"command": "npx",
"args": ["reddit-mcp"],
"transport": "stdio",
"env": {
"REDDIT_CLIENT_ID": "your_client_id_here",
"REDDIT_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
🛠️ 利用可能なツール
get_subreddit
特定のサブレディットの詳細情報を取得します。
パラメーター:
name(必須):取得するサブレディットの名前(r/接頭辞なし)
使用例:
"Get information about the programming subreddit"
"Show me details for the MachineLearning subreddit"
戻り値:
- サブレディットのタイトルと説明
- 登録者数
- 作成日
- NSFW ステータス
- URL
search_posts
サブレディット内の投稿を検索するか、トレンドの投稿を取得します。
パラメーター:
subreddit(必須):検索するサブレディットの名前query(任意):検索クエリ文字列(空の場合、トレンドの投稿を返します)sort(任意):並べ替え方法 — "relevance"、"hot"、"new"、"top"、"comments"(デフォルト:"hot")time(任意):期間 — "all"、"hour"、"day"、"week"、"month"、"year"(デフォルト:"all")limit(任意):返す投稿の最大数(1~100、デフォルト:10)
使用例:
"Search for posts about 'artificial intelligence' in r/MachineLearning"
"Get the top 20 hot posts from r/programming"
"Find new posts about 'React' in r/webdev from the past week"
戻り値:
- 投稿のタイトルと URL
- 投稿者の情報
- スコアとコメント数
- 追加のクエリに使用する投稿 ID
get_submission
特定の投稿の詳細情報を取得します。
パラメーター:
id(必須):投稿 ID(t3_接頭辞の有無は問いません)
使用例:
"Get details for post ID abc123"
"Show me the full content of post t3_xyz789"
戻り値:
- 投稿のタイトルと内容全体
- 投稿者とサブレディットの情報
- スコアとコメント数
- 作成時刻
- 投稿の種類(テキストまたはリンク)
get_comments_by_submission
特定の投稿のコメントを取得します。
パラメーター:
submission_id(必須):コメントを取得する投稿の IDsort(任意):コメントの並べ替え方法 — "confidence"、"top"、"new"、"controversial"、"old"、"random"、"qa"、"live"(デフォルト:"confidence")limit(任意):返すコメントの最大数(1~100、デフォルト:10)
使用例:
"Get the top 15 comments for post abc123"
"Show me the newest comments for post xyz789"
戻り値:
- コメントの内容と投稿者
- コメントのスコア
- 作成時刻
- コメント ID
get_comment
特定のコメントの詳細情報を取得します。
パラメーター:
id(必須):コメント ID(t1_接頭辞の有無は問いません)
使用例:
"Get details for comment ID def456"
"Show me comment t1_ghi789"
戻り値:
- コメントの内容と投稿者
- スコアと作成時刻
- 関連するサブレディットと投稿
- コメント ID
search_subreddits
名前または説明でサブレディットを検索します。
パラメーター:
query(必須):サブレディットの名前または説明を検索するクエリlimit(任意):返すサブレディットの最大数(1~100、デフォルト:10)
使用例:
"Search for subreddits about cooking"
"Find programming-related subreddits"
戻り値:
- サブレディットの名前と説明
- 登録者数
- NSFW ステータス
- URL
🎮 使用例
コンテンツの発見
"Find the most popular posts in r/technology from this week"
"Search for discussions about 'GPT-4' in r/MachineLearning"
調査と分析
"Get information about r/datascience and show me the top 10 posts"
"Find subreddits related to 'blockchain' and show their subscriber counts"
コメント分析
"Get the top comments for post abc123 and analyze the sentiment"
"Show me controversial comments from post xyz789"
トレンドのモニタリング
"What are the trending topics in r/programming today?"
"Search for posts about 'ChatGPT' across relevant subreddits"
🏗️ 開発
ローカル環境のセットアップ
# Clone the repository
git clone https://github.com/SzeMeng76/mcp-server-reddit-ts.git
cd mcp-server-reddit-ts
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your Reddit API credentials
# Start the server
npm start
プロジェクト構成
mcp-server-reddit-ts/
├── index.js # Main MCP server implementation
├── package.json # Dependencies and scripts
├── .env.example # Environment variables template
└── README.md # Documentation
主な依存関係
- @modelcontextprotocol/sdk:公式の MCP サーバーフレームワーク
- node-fetch:Reddit API 呼び出し用の HTTP クライアント
- dotenv:環境変数の管理
- zod:実行時の型検証とスキーマ定義
🔧 技術的な詳細
認証フロー
- OAuth 2.0 のクライアントクレデンシャルフローを使用します
- トークンの期限切れ時に自動で更新します
- 環境変数を通じて認証情報を安全に取り扱います
API のレート制限
- Reddit API のレート制限を遵守します
- 適切な User-Agent ヘッダーを使用します
- HTTP エラーを適切に処理します
データ処理
- 読みやすさを考慮してデータを包括的にフォーマットします
- Reddit の入れ子になったコメント構造を適切に処理します
- ID を適切に処理します(プレフィックスは自動的に削除されます)
エラー処理
- よくある問題について詳細なエラーメッセージを表示します
- API の障害時には適切に機能を縮退させます
- 入力パラメーターを適切に検証します
⚠️ 重要な注意事項
Reddit API のガイドライン
- Reddit のAPI 利用規約に従ってください
- レート制限を遵守してください(クライアントクレデンシャルでは毎分 60 リクエスト)
- 内容がわかりやすい User-Agent 文字列を使用してください
- 過剰なリクエストは行わないでください
データプライバシー
- このサーバーがアクセスするのは、公開されている Reddit データのみです
- ユーザー認証や非公開データへのアクセスは行いません
- Reddit のプライバシー設定と削除済みコンテンツを尊重します
コンテンツに関するガイドライン
- 一部のサブレディットにアクセスする際は、NSFW コンテンツに注意してください
- コミュニティのルールとガイドラインを尊重してください
- 調査と分析にはデータを責任を持って使用してください
🚀 よくあるユースケース
市場調査
- トレンド分析:製品やトピックに関する議論をモニタリングします
- センチメント分析:ブランドやイベントに対する世論を分析します
- コミュニティのインサイト:オーディエンスの好みや行動を理解します
コンテンツ戦略
- トピックの発見:関連するコミュニティでトレンドのトピックを見つけます
- エンゲージメント分析:反応の良いコンテンツを調査します
- コミュニティ調査:ニッチな分野で活発なコミュニティを特定します
学術研究
- ソーシャルメディア研究:オンラインコミュニティの動態を分析します
- 世論調査:人々の態度や意見を調査します
- コンテンツ分析:コミュニケーションのパターンを調べます
開発とテスト
- API 統合:アプリケーションで Reddit データの統合をテストします
- ボット開発:Reddit のボットや自動化ツールのプロトタイプを作成します
- データ分析:分析に役立つインサイトを得るため、Reddit データを処理します
🤝 コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します:
git checkout -b feature-name - 適切なエラー処理を追加して変更を行います
- さまざまなサブレディットとコンテンツタイプでテストします
- 環境変数について適切に文書化されていることを確認します
- 内容が明確な説明を添えてプルリクエストを送信します
開発ガイドライン
- JavaScript/Node.js のベストプラクティスに従ってください
- 新機能には適切なエラー処理を追加してください
- 人気のあるサブレディットとニッチなサブレディットの両方でテストしてください
- 新しいパラメーターや戻り値の形式について文書化してください
- Reddit API のガイドラインとレート制限を遵守してください
📄 ライセンス
MIT ライセンス。詳細はLICENSEファイルを参照してください。
⚖️ 法律と倫理
- Reddit API の遵守:Reddit の開発者向け利用規約を厳守します
- 公開データのみ:一般公開されている Reddit のコンテンツのみを取得します
- レート制限:サービスの中断を避けるため、API の制限を守ります
- コンテンツに関する責任:取得したデータを適切に利用する責任はユーザーにあります
- プライバシーの尊重:プライベートメッセージや制限付きコンテンツにはアクセスしません
🙏 謝辞
- Reddit:包括的な Reddit API を提供してくださったことに感謝します
- MCP コミュニティ:標準化されたプロトコルに感謝します
- Node-fetch のメンテナー:信頼性の高い HTTP クライアント機能に感謝します
- コントリビューター:このプロジェクトの改善に協力してくださる皆さんに感謝します
Reddit データの分析、コンテンツの調査、コミュニティの洞察のために開発されました 🔴📊
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。