MCP-Discord について
MCP-Discord は、AI アシスタントが Discord ボットを通じて Discord プラットフォームを操作するための MCP サーバーです。サーバー、チャンネル、フォーラム、メッセージ、ロール、メンバー、Webhook を扱え、stdio と streamable HTTP の両方のトランスポートに対応しています。Node.js で実装され、Docker イメージも提供されています。
主な機能
- 01ボットトークンによるログインとサーバー一覧の取得
- 02テキスト、フォーラム、ボイスチャンネルとカテゴリの管理
- 03フォーラム投稿の作成、返信、タグ管理
- 04メッセージの読み取り、検索、編集とリアクション
- 05ロール、メンバー、Webhook の管理
- 06stdio と streamable HTTP のトランスポート
活用シーン
- 01AI アシスタントによるコミュニティサーバーへの通知投稿やチャンネル整理
- 02フォーラムツールを使った投稿の作成とアーカイブ
- 03ロールや権限によるサーバー構成の管理
MCP 対応
本プロジェクトは MCP サーバーであり、discord_send、discord_read_messages、discord_create_role などの Discord 操作を MCP クライアントにツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
22掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| guildId | string | はい | |
| name | string | はい | |
| position | number | いいえ | |
| reason | string | いいえ |
詳細
MCP-Discord
AI アシスタントが Discord プラットフォームとやり取りできるようにする、Discord 用の MCP(Model Context Protocol)サーバーです。
概要
MCP-Discord は、以下の Discord 関連機能を提供します。
- Discord ボットにログインする
- ボットが参加しているサーバーを一覧表示する
- サーバー情報を取得する
- メンバーを一覧表示し、メンバーの詳細を確認する
- ロールの一覧表示、作成、編集、削除、割り当て、解除を行う
- サーバー内のメッセージを検索する
- チャンネルのメッセージを読み取り、編集、削除する
- 指定したチャンネルにメッセージを送信する
- フォーラムチャンネルの一覧を取得する
- フォーラム投稿を作成、更新、削除し、返信する
- フォーラムスレッドを一覧表示し、フォーラムタグを管理する
- テキスト、フォーラム、ボイスチャンネル、カテゴリーを作成、編集、削除する
- チャンネルの権限の上書きを設定、解除する
- メッセージリアクションを追加、削除する
- Webhook を作成、編集、削除、使用する
目次
前提条件
-
Node.js(v18.0.0 以上)
-
npm(v7.0.0 以上)
-
適切な権限を持つ Discord ボット
- ボットトークン(Discord Developer Portalから取得できます)
- Message Content Intent が有効
- Server Members Intent が有効
- Presence Intent が有効
-
Discord サーバーで必要な権限:
最も簡単な設定
- Administrator(すばやく設定してすべての機能を使う場合に推奨)
または、必要な権限のみを選択:
- メッセージを送信
- パブリックスレッドを作成
- スレッドでメッセージを送信
- メッセージを管理
- スレッドを管理
- チャンネルを管理
- Webhook を管理
- ロールを管理
- リアクションを追加
- チャンネルを表示
-
Discord ボットをサーバーに追加する
- Discord ボットをサーバーに追加するには、次の招待リンクのいずれかを使用してください(
INSERT_CLIENT_ID_HEREをボットのクライアント ID に置き換えてください)。
- Discord ボットをサーバーに追加するには、次の招待リンクのいずれかを使用してください(
注:
Discord のセキュリティモデルにより、ボットがアクセスできるのは、明示的に追加されたサーバーの情報のみです。
この MCP サーバーを使って特定の Discord サーバーにアクセスするには、まずそのサーバーにボットを追加する必要があります。
以下の招待リンクを使って、対象のサーバーにボットを追加してください。
インストール
NPM 経由でのインストール
次のコマンドで使用できます:
npx mcp-discord --config ${DISCORD_TOKEN}
詳細については、NPM パッケージをご覧ください。
Smithery 経由でのインストール
Smithery 経由で mcp-discord を自動的にインストールするには
Docker を使用したインストール
Docker を使用して mcp-discord を実行できます。Docker イメージは自動的にビルドされ、Docker Hub に公開されます。
Docker Hub リポジトリ:barryy625/mcp-discord
Docker は、デフォルトで build/app.js を介してストリーム可能な HTTP サーバーを使用します。
# Pull the latest image
docker pull barryy625/mcp-discord:latest
# Run HTTP server on port 8080
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 8080:8080 barryy625/mcp-discord:latest
# Override the listening port if needed
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000
利用可能なタグ:
latest- main ブランチの最新安定版v1.3.8など - 特定のバージョンのリリース
手動インストール
# Clone the repository
git clone https://github.com/barryyip0625/mcp-discord.git
cd mcp-discord
# Install dependencies
npm install
# Compile TypeScript
npm run build
設定
適切に動作させるには、Discord ボットのトークンが必要です。サーバーは、stdio とストリーム可能な HTTP の 2 つのトランスポート方式をサポートしています。
トランスポート方式
-
stdio(デフォルト)
- 基本的な用途向けの従来の stdio トランスポート
- シンプルな連携に適しています
-
ストリーム可能な HTTP
- より高度なシナリオ向けの HTTP ベースのトランスポート
- ステートレスな動作をサポートします
- ポート番号を設定できます
設定オプション
設定は次の 2 つの方法で指定できます。
- 環境変数:
DISCORD_TOKEN=your_discord_bot_token
- コマンドライン引数:
# For stdio transport (default)
node build/index.js --config "your_discord_bot_token"
# For streamable HTTP transport
node build/app.js --transport http --port 3000 --config "your_discord_bot_token"
Claude/Cursor での使用方法
1. Claude/Cursor で stdio トランスポートを使用する
MCP クライアントがコマンドベースの stdio サーバーを想定している場合は、build/index.js を使用します。
Claude Desktop / Claude Code
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js"
],
"env": {
"DISCORD_TOKEN": "your_discord_bot_token"
}
}
}
}
Cursor
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js"
],
"env": {
"DISCORD_TOKEN": "your_discord_bot_token"
}
}
}
}
これは、ローカルのコマンドベース MCP クライアントに推奨される設定です。
2. ストリーム可能な HTTP サーバーをセルフホストする
mcp-discord を HTTP MCP サーバーとして実行する場合は、build/app.js を使用します。
Node.js で実行する
DISCORD_TOKEN=your_discord_bot_token node build/app.js --transport http --port 3000
Windows PowerShell の場合:
$env:DISCORD_TOKEN="your_discord_bot_token"
node build/app.js --transport http --port 3000
Docker で実行する
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000
起動すると、MCP HTTP エンドポイントは次のようになります。
http://localhost:3000/mcp
3. ホストされた HTTP MCP サーバーに接続する
mcp-discord をすでに別の場所でホストしている場合は、コマンドとして build/app.js を起動するのではなく、MCP クライアントからサーバーの /mcp エンドポイントに接続します。
エンドポイントの例:
https://your-server.example.com/mcp
重要な注意事項:
build/app.jsは HTTP サーバーを起動します。stdio には対応していません。build/index.jsは、コマンドベースの stdio MCP クライアントに適したエントリーポイントです。- ホストされた HTTP を使用する場合は、デプロイ先から提供された HTTP エンドポイント URL に接続するよう、MCP クライアントを設定してください。
- HTTP クライアントの設定形式は、使用する MCP クライアントによって異なります。
ツールのドキュメント
基本機能
discord_login:設定されたトークンを使用して Discord にログインするdiscord_list_servers:ボットが参加しているすべての Discord サーバーを一覧表示するdiscord_send:指定したチャンネルにメッセージを送信するdiscord_get_server_info:Discord サーバーの情報を取得する
チャンネル管理
discord_create_text_channel:テキストチャンネルを作成するdiscord_create_forum_channel:フォーラムチャンネルを作成するdiscord_create_voice_channel:ボイスチャンネルを作成するdiscord_edit_channel:チャンネル名、トピック、親カテゴリ、または位置を編集するdiscord_delete_channel:チャンネルを削除するdiscord_create_category:チャンネルカテゴリを作成するdiscord_edit_category:チャンネルカテゴリを編集するdiscord_delete_category:チャンネルカテゴリを削除するdiscord_set_channel_permissions:チャンネル/カテゴリで、ロールまたはユーザーの権限オーバーライドを設定するdiscord_remove_channel_permissions:チャンネル/カテゴリから権限オーバーライドを削除する
フォーラム機能
discord_get_forum_channels:フォーラムチャンネルの一覧を取得するdiscord_create_forum_post:フォーラム投稿を作成する(任意でチャンネルの先頭に固定できます)discord_get_forum_post:フォーラム投稿を取得するdiscord_list_forum_threads:フォーラムチャンネル内のアクティブなスレッドとアーカイブ済みのスレッドを一覧表示するdiscord_reply_to_forum:フォーラム投稿に返信するdiscord_get_forum_tags:フォーラムチャンネルで利用可能なすべてのタグを取得するdiscord_set_forum_tags:フォーラムチャンネルで利用可能なタグを置き換えるdiscord_update_forum_post:フォーラム投稿のタイトル、タグ、アーカイブ状態、ロック状態、または固定状態を更新するdiscord_delete_forum_post:フォーラム投稿を削除する
メッセージとリアクション
discord_search_messages: サーバー内のメッセージを検索しますdiscord_read_messages: チャンネルのメッセージを読み取ります(before、after、aroundパラメーターに対応。スノーフレーク ID または"2025-03-01T00:00:00Z"のような ISO 8601 形式の日付を指定できます)discord_edit_message: ボットが作成したメッセージを編集しますdiscord_add_reaction: メッセージにリアクションを追加しますdiscord_add_multiple_reactions: メッセージに複数のリアクションを追加しますdiscord_remove_reaction: メッセージからリアクションを削除しますdiscord_delete_message: チャンネルから特定のメッセージを削除しますdiscord_pin_message: メッセージをチャンネルにピン留めします(チャンネルあたり最大 50 件)discord_unpin_message: チャンネルのピン留めされたメッセージからメッセージを削除しますdiscord_list_pinned_messages: チャンネルのピン留めされたメッセージを新しい順に一覧表示します
Webhook の管理
discord_create_webhook: Discord チャンネル用の新しい webhook を作成しますdiscord_send_webhook_message: webhook を使用して Discord チャンネルにメッセージを送信しますdiscord_edit_webhook: Discord チャンネル用の既存の webhook を編集しますdiscord_delete_webhook: Discord チャンネル用の既存の webhook を削除します
ロールの管理
discord_list_roles: サーバー内のすべてのロールを一覧表示しますdiscord_create_role: 色、ホイスト、メンション可能かどうか、権限のオプションを指定してロールを作成しますdiscord_edit_role: 既存のロールを編集しますdiscord_delete_role: ロールを削除しますdiscord_assign_role: メンバーにロールを割り当てますdiscord_remove_role: メンバーからロールを削除します
メンバーの管理
discord_list_members: サーバーのメンバーとそのロールを一覧表示しますdiscord_get_member: 特定のメンバーの詳細情報を取得します
開発
# Development mode
npm run dev
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。