MCPサーバーにどんなのがあるかなーと見ていたらDiscordがあったので、どんなことが出来るか調べると、運営している人にとっては便利なんじゃない?と思ったのでメモ。
DiscordのMCPは2種類ある #
それぞれ出来ることが微妙に違う。メッセージの送受信をLLMから行えるので、コミュニティ運営をまとめて管理するうえで、メッセージ送信が操作できるのはありがたいかもしれない。
【Discord MCP Server】主な機能 #
GitHub - v-3/discordmcp: Discord MCP Server for Claude Integration
- メッセージ送信機能
- Discordの特定チャンネルにメッセージを送信できる
- サーバー名またはIDとチャンネル名またはIDを指定可能
- メッセージ読み取り機能
- Discordチャンネルから最近のメッセージを読み取れる
- 取得するメッセージ数を指定可能(デフォルト:50、最大:100)
- サーバー・チャンネル自動検出
- ボットが参加しているサーバーとチャンネルを自動的に検出
- エラー処理と検証
- 適切なエラーハンドリングと入力検証機能を備える
セットアップ方法 #
- 必要条件:
- Node.js 16.x以上
- Discordボットトークン
- 適切な権限でサーバーに招待されたボット(メッセージ読み取り/チャンネル表示、メッセージ送信、メッセージ履歴読み取り)
- インストール手順:
- リポジトリのクローン
- 依存関係のインストール
.env
ファイルにDiscordボットトークンを設定- サーバーのビルド
- Claude for Desktopとの連携:
- Claudeの設定ファイルにDiscord MCPサーバー設定を追加
- Claude for Desktopを再起動
利用可能なツール #
- send-message
- 指定したDiscordチャンネルにメッセージを送信するツール
- パラメータ: サーバー(オプション)、チャンネル(必須)、メッセージ内容(必須)
- read-messages
- 指定したDiscordチャンネルから最近のメッセージを読み取るツール
- パラメータ: サーバー(オプション)、チャンネル(必須)、取得数(オプション)
セキュリティ面の考慮事項 #
- ボットには適切なDiscord権限が必要
- メッセージ送信には明示的なユーザー承認が必要
- 環境変数は適切に保護する必要あり
- トークンはバージョン管理にコミットしないよう注意
- チャンネルアクセスはボットにアクセス権が与えられたチャンネルに限定
このツールを使うことで、ClaudeなどのAIがDiscordチャンネル内でメッセージのやり取りを自動的に行うことができるようになる。
【SaseQ版 Discord MCP】機能まとめ #
SaseQのDiscord MCPは、Java(JDA)で実装されている。
サーバー情報管理 #
get_server_info
: Discordサーバーの詳細情報を取得
メッセージ管理 #
send_message
: 特定のチャンネルにメッセージを送信edit_message
: 特定のチャンネルのメッセージを編集delete_message
: 特定のチャンネルのメッセージを削除read_messages
: 特定のチャンネルの最近のメッセージ履歴を読み取りsend_private_message
: 特定のユーザーにプライベートメッセージを送信edit_private_message
: 特定のユーザーとのプライベートメッセージを編集delete_private_message
: 特定のユーザーとのプライベートメッセージを削除read_private_messages
: 特定のユーザーとの最近のメッセージ履歴を読み取りadd_reaction
: 特定のメッセージにリアクション(絵文字)を追加remove_reaction
: 特定のメッセージからリアクション(絵文字)を削除
チャンネル管理 #
delete_channel
: チャンネルを削除find_channel
: 名前とサーバーIDを使用してチャンネルタイプとIDを検索list_channels
: すべてのチャンネルのリストを取得
カテゴリ管理 #
create_category
: チャンネル用の新しいカテゴリを作成delete_category
: カテゴリを削除find_category
: 名前とサーバーIDを使用してカテゴリIDを検索list_channels_in_category
: カテゴリ内のチャンネルをリスト表示
インストール方法 #
-
リポジトリのクローン:
git clone https://github.com/SaseQ/discord-mcp
-
プロジェクトのビルド:
cd discord-mcp mvn clean package
-
Claude Desktopの設定:
json
{ "mcpServers": { "discord-mcp": { "command": "java", "args": [ "-jar", "/absolute/path/to/discord-mcp-0.0.1-SNAPSHOT.jar" ], "env": { "DISCORD_TOKEN": "YOUR_DISCORD_BOT_TOKEN" } } } }
-
Smitheryを使用した自動インストール:
npx -y @smithery/cli@latest install @SaseQ/discord-mcp --client claude
このSaseQ版Discord MCPは、他のバージョンと比較して、より多くの機能(プライベートメッセージ、リアクション管理、チャンネル管理、カテゴリ管理など)を提供している。
Discord APIとの連携がより広範囲に実装されているので、LLMと切り離したプログラムやウェブアプリから操作することも可能。
SaseQ版Discord MCPをClaudeなどのLLM経由で使用する場合と、Javaを活用したウェブアプリを開発する場合の比較 #
LLM経由でDiscord MCPを使用する場合の利点 #
- 自然言語でDiscordの操作ができる(「一般チャンネルに挨拶メッセージを送って」など)
- プログラミングの専門知識がなくても操作できる
- AIが文脈を理解して適切なアクションを提案できる
- 複雑な指示も自然言語で伝えられる
Javaウェブアプリを開発する場合の利点 #
- より高速なレスポンス(LLMを介さないため)
- カスタマイズ性が高い(UIやワークフローを完全に制御可能)
- コスト効率が良い(LLMの利用料がかからない)
- 一貫した動作と予測可能な結果
- より複雑なデータ処理や統合が可能
- セキュリティ管理がより直接的
どちらを選ぶべきかは、以下の要素によって変わる:
- 技術的専門知識: Javaでのウェブアプリ開発経験があれば、直接ウェブアプリを作る方が効率的。
- 使用頻度と規模: 頻繁に使用する大規模なシステムであれば、カスタムウェブアプリの方が長期的にはコスト効率が良い。
- カスタマイズの必要性: 特定のワークフローや複雑な処理が必要な場合は、直接Javaアプリを開発した方が細かい制御が可能。
- 開発時間: すぐに使い始めたい場合はLLM経由の方が早く導入できますが、長期的には専用アプリの方が効率的。
大量のデータ処理や複雑な操作が必要で、技術的なリソースがある場合は、Javaを活用したウェブアプリの方が適している。特に、パフォーマンスとカスタマイズ性を重視する場合はウェブアプリの開発をお勧め。
一方、素早く導入したい、または自然言語でのインターフェースが重要な場合は、LLM経由のDiscord MCPの活用が良い選択となるはず。
使うニーズで使い分ける #
MCPはLLMとアプリを繋げるものなので、どちらも性質は同じ。
ClaudeなりCursorにVSCodeなど、MCPを使えるアプリを介して、メッセージ送信を統合アプリから一気に行えるのが魅力。
今までなら、「LLMで文章を考える」「Discordを立ち上げてメッセージを入力&更新」だったのが、「LLMで文章を考えつつ、チャンネルにメッセージを送信する」になるから簡略化することができる。
単一のチャンネル運営なら #
こちらのMCPをClaudeなりCursorで使って、Discordチャンネルの運営をするのが手っ取り早い。
GitHub - v-3/discordmcp: Discord MCP Server for Claude Integration
強みとしては、mdファイルで基本データを読み込ませてルール化できるから、メッセージに特徴ある語尾などを付け加えることも可能。ようするに、チャンネル主の言動をAIに分析させて、「言いそうな言葉」で文章を生成することができる。
ファンサーバーで運用しているなら、定期コンテンツを生成して配信するには適しているから、固定ファンを飽きさせない雰囲気作りに最適。
複数チャンネル運営なら #
アプリ実装も可能なこちらがおすすめ。
特徴的なのは、Java実装が可能なのでLLMを使わず複数チャンネルをコントロールできること。単一チャンネル運営なら特に意味はないけど、複数を同時に運営しているとか、複数から特定だけ操作したい場合に便利。
例えばグループ会社の運営なら、特定の部署や業種に合わせて投稿切り替えが可能になるので、業務報告だったり全体の分析・管理に役立つ。
例えばVTuber企業の運営なら、個人チャンネルを複数管理して、それぞれに適した言語データをセットしておいて、本人が「それっぽいメッセージ」を定期的に送信するのに長けている。
ただアプリ実装はフロントエンドの知識がいるし、APIを使っているアプリが外部アクセス可能になるとマッズイので、管理と運用のリスクがけっこうデカっくなるのがデメリット。