Discord Mcp について
Discord Mcpは、MCP対応アプリ向けのDiscord APIサーバーです。AIアシスタントを通じてDiscordサーバーを管理するチーム向けに、メッセージ、チャンネル、メンバー、ロール、イベントの操作ツールを提供します。
主な機能
- 01メッセージの送信・編集・検索
- 02チャンネル・カテゴリ・スレッドの管理
- 03メンバー・ロール・権限の管理
- 04ボイスチャンネルとイベントの操作
- 05招待とWebhookの管理
活用シーン
- 01チャンネル履歴の検索と返信
- 02チャンネル作成と権限の調整
- 03メンバーのロールとタイムアウト管理
MCP 対応
メッセージ、サーバー情報、チャンネル、メンバーなどのDiscord API操作を、MCPクライアント向けのツールとして公開します。HTTPエンドポイントまたは従来のstdioモードで接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
📖 説明
(JDA)を使用した、Discord API 向けのModel Context Protocol(MCP)サーバーです。 Claude、ChatGPT などの MCP 対応アプリケーションと Discord ボットを統合できるよう設計されています。AI アシスタントがチャンネルの管理、メッセージの送信、サーバー情報の取得を通じて Discord とやり取りできるようになります。強力な Discord 自動化や AI 主導のワークフローの構築に最適です。
🔬 インストール
► 🐳 Docker のインストール(推奨)
メモ
Docker のインストールが必要です。詳しい手順はこちらをご覧ください。
1) ローカル環境変数を設定
export DISCORD_TOKEN="YOUR_DISCORD_BOT_TOKEN"
export DISCORD_GUILD_ID="OPTIONAL_DEFAULT_SERVER_ID"
export SPRING_PROFILES_ACTIVE=http
重要
Discord ボットの作成方法とトークンの取得方法については、こちらをご覧ください。
ヒント
DISCORD_GUILD_ID環境変数は省略可能です。設定すると、デフォルトの Discord サーバー ID が指定されるため、
guildIdパラメーターを受け取るツールではこの値を省略できます。
2) Docker コンテナを実行
docker run -d -i \
--name discord-mcp \
--restart unless-stopped \
-p 8085:8085 \
-e SPRING_PROFILES_ACTIVE \
-e DISCORD_TOKEN \
-e DISCORD_GUILD_ID \
saseq/discord-mcp:latest
デフォルトの MCP エンドポイント URL(HTTP プロファイル):http://localhost:8085/mcp
🐋 Docker Compose のインストール
1) リポジトリをクローン
git clone https://github.com/SaseQ/discord-mcp
2) プロジェクトディレクトリに移動
cd discord-mcp
3) ローカル実行環境を作成
cat > .env <<EOF
SPRING_PROFILES_ACTIVE=http
DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN>
DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID>
EOF
4) 共有 MCP サーバーコンテナを起動
docker compose up -d --build
5) 動作を確認
docker ps --filter name=discord-mcp
curl -fsS http://localhost:8085/actuator/health
ヒント
LOGGING_PATTERN_CONSOLEを手動で設定する必要はありません。 ロギングはhttpモードと従来のstdioモードの両方で自動的に設定されます。
デフォルトの MCP エンドポイント URL(HTTP プロファイル):http://localhost:8085/mcp
ヘルスエンドポイント(Actuator):http://localhost:8085/actuator/health
🔧 手動インストール
1) リポジトリをクローン
git clone https://github.com/SaseQ/discord-mcp
2) プロジェクトをビルド
注:mvn コマンドを使用するには、Maven のインストールが必要です。詳しい手順はこちらをご覧ください。
cd discord-mcp
mvn clean package # The jar file will be available in the /target directory
3) AI クライアントを設定
JAR を長時間稼働するサーバーとして実行します。
DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN> \
DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID> \
SPRING_PROFILES_ACTIVE=http \
java -jar /absolute/path/to/discord-mcp-1.0.0.jar
注:
DISCORD_GUILD_ID環境変数は省略可能です。設定すると、デフォルトの Discord サーバー ID が指定されるため、guildIdパラメーターを受け取るツールではこの値を省略できます。
デフォルトの MCP エンドポイント URL(HTTP プロファイル):http://localhost:8085/mcp
🔗 接続
► 🗞️ デフォルトのconfig.json接続
推奨(HTTPシングルトンモード):
{
"mcpServers": {
"discord-mcp": {
"url": "http://localhost:8085/mcp"
}
}
}
レガシーモード(stdio、クライアントセッションごとに新しいプロセス/コンテナを起動):
{
"mcpServers": {
"discord-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN>",
"-e",
"DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID>",
"saseq/discord-mcp:latest"
]
}
}
}
⌨️ Claude Code接続
推奨(HTTPシングルトンモード):
claude mcp add discord-mcp --transport http http://localhost:8085/mcp
レガシーモード(stdio、クライアントセッションごとに新しいプロセス/コンテナを起動):
claude mcp add discord-mcp -- docker run --rm -i -e DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN> -e DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID> saseq/discord-mcp:latest
🤖 Codex CLI接続
codex mcp add discord-mcp --url http://localhost:8085/mcp
codex mcp list
🦞 OpenClaw接続
次のコマンドを実行します:
openclaw mcp set discord-mcp '{"url":"http://localhost:8085/mcp","transport":"streamable-http"}'
openclaw mcp list
または
次の設定をOpenClawの~/.openclaw/config.jsonファイルに貼り付けます:
{
"mcp": {
"servers": {
"discord-mcp": {
"url": "http://localhost:8085/mcp",
"transport": "streamable-http"
}
}
}
}
🖲 Cursor接続
次の場所に移動します:Settings -> Cursor Settings -> MCP -> Add new global MCP server
次の設定をCursorの~/.cursor/mcp.jsonファイルに貼り付ける方法をおすすめします。プロジェクトフォルダーに.cursor/mcp.jsonを作成すれば、特定のプロジェクトにインストールすることもできます。詳しくはCursor MCP docsをご覧ください。
{
"mcpServers": {
"discord-mcp": {
"url": "http://localhost:8085/mcp"
}
}
}
🚀 n8n接続
n8nで接続する
- n8nを開き、MCP Clientノードを追加します。
- HTTPまたはStreamable HTTPトランスポートを選択します(n8nのバージョン/ノードのオプションに応じて選択してください)。
- サーバーURLを次のように設定します:
http://localhost:8085/mcp - ノードを保存して、接続をテストします。
- 接続後、ワークフロー内で
discord-mcpが公開する利用可能なDiscordツールを使用できます。
注意事項
- n8nがDockerで実行されている場合、
localhostはホストマシンではなく、n8nコンテナを指すことがあります。 - その場合は、Dockerサービス名または到達可能な別のホストを使用します。例:
http://discord-mcp:8085/mcp
🖥 Claude Desktop接続
STDIOローカル設定(デフォルト、レガシー):
次の設定をClaude Desktopの
claude_desktop_config.jsonファイルに貼り付けます。
{
"mcpServers": {
"discord-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN>",
"-e",
"DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID>",
"saseq/discord-mcp:latest"
]
}
}
}
リモートMCPコネクター:
- Claude Desktopを開き、
Settings->Connectorsに移動します。 - カスタムコネクターを追加し、MCP URLにサーバーのエンドポイントを設定します(例:
https://<PUBLIC_HOST>/mcp)。 - 保存して再接続します。
Claude Desktopのリモートコネクターは、
claude_desktop_config.jsonではなく、Connectors UIで管理します。http://localhost:8085/mcpにアクセスできるのは、お使いのマシンからのみです。Claude Desktopのリモートコネクターを使用する場合は、パブリックHTTPSでエンドポイントを公開してください(例:トンネル/リバースプロキシ)。
🛠️ 利用可能なツール
サーバー情報
get_server_info: Discordサーバーの詳細情報を取得します
ユーザー管理
get_user_id_by_name: pingで使用する<@id>のために、ギルド内のユーザー名からDiscordユーザーのIDを取得しますget_member_by_id: 安定したユーザーIDを指定してDiscordギルドメンバーを取得します。ユーザー名、グローバル名、ニックネーム、有効名、ボットフラグ、参加時刻、ロールが含まれますsearch_members: ID、ユーザー名、グローバル名、ニックネーム、有効名でDiscordギルドメンバーを検索し、安定したユーザーIDを含む候補者情報を返しますsend_private_message: 特定のユーザーにプライベートメッセージを送信しますedit_private_message: 特定のユーザー宛てのプライベートメッセージを編集しますdelete_private_message: 特定のユーザー宛てのプライベートメッセージを削除しますread_private_messages: 特定のユーザーとのプライベートメッセージ履歴を読み取ります(作成者IDと添付ファイルのメタデータを含み、countは1~100を指定できます。また、任意のカーソルbefore、after、aroundをサポートします)
メッセージ管理
send_message: 特定のチャンネルにメッセージを送信しますedit_message: 特定のチャンネルのメッセージを編集しますdelete_message: 特定のチャンネルのメッセージを削除しますread_messages: 特定のチャンネルのメッセージ履歴を読み取ります(作成者 ID、添付ファイルのメタデータを含み、countは 1~100 に対応し、オプションのカーソルbefore、after、aroundを指定できます)add_reaction: 特定のメッセージにリアクション(絵文字)を追加しますremove_reaction: メッセージから指定したリアクション(絵文字)を削除します
チャンネル管理
create_text_channel: 新しいテキストチャンネルを作成しますedit_text_channel: テキストチャンネルの設定(名前、トピック、nsfw、スローモード、カテゴリ、位置)を編集しますdelete_channel: チャンネルを削除しますfind_channel: 名前とサーバー ID を使ってチャンネルの種類と ID を検索しますlist_channels: すべてのチャンネルの一覧を取得しますget_channel_info: チャンネルの詳細情報を取得しますmove_channel: チャンネルを別のカテゴリに移動したり、位置を変更したりします
カテゴリ管理
create_category: チャンネル用の新しいカテゴリを作成しますedit_category: カテゴリを編集します(名前の変更または位置の移動)delete_category: カテゴリを削除しますfind_category: 名前とサーバー ID を使ってカテゴリ ID を検索しますlist_channels_in_category: 特定のカテゴリ内のチャンネル一覧を取得します
Webhook 管理
create_webhook: 特定のチャンネルに新しい Webhook を作成しますdelete_webhook: Webhook を削除しますlist_webhooks: 特定のチャンネルの Webhook 一覧を取得しますsend_webhook_message: Webhook 経由でメッセージを送信します
ロール管理
list_roles: サーバー上のすべてのロールの詳細な一覧を取得しますcreate_role: サーバーに新しいロールを作成しますedit_role: 既存のロール設定を変更しますdelete_role: サーバーからロールを完全に削除しますassign_role: ユーザーにロールを割り当てますremove_role: ユーザーからロールを削除します
モデレーションとユーザー管理
kick_member: メンバーをサーバーからキックしますban_member: ユーザーをサーバーから BAN しますunban_member: ユーザーの BAN を解除しますtimeout_member: 指定した期間、メンバーの発言を無効にしますremove_timeout: 期限前にメンバーのタイムアウト(ミュート)を解除しますset_nickname: サーバー上のメンバーのニックネームを変更しますget_bans: BAN 理由とともに、サーバー上の BAN されたユーザー一覧を返します
ボイスチャンネルとステージチャンネルの管理
create_voice_channel: ギルドに新しいボイスチャンネルを作成しますcreate_stage_channel: 音声イベント用の新しいステージチャンネルを作成しますedit_voice_channel: ボイスチャンネルまたはステージチャンネルの設定(名前、ビットレート、ユーザー上限、リージョン)を編集しますmove_member: メンバーを別のボイスチャンネルに移動しますdisconnect_member: メンバーを現在のボイスチャンネルから切断しますmodify_voice_state: ボイスチャンネルでメンバーをサーバーミュートまたはスピーカーミュートにします
スケジュール済みイベントの管理
create_guild_scheduled_event: サーバーで新しいイベント(ボイス、ステージ、外部)をスケジュールしますedit_guild_scheduled_event: イベントの詳細を変更したり、ステータス(開始、完了、キャンセル)を変更したりしますdelete_guild_scheduled_event: スケジュール済みイベントを完全に削除しますlist_guild_scheduled_events: サーバー上の進行中およびスケジュール済みのイベントをすべて一覧表示しますget_guild_scheduled_event_users: スケジュール済みイベントに関心を示しているユーザーの一覧を取得します
チャンネル権限の上書き
list_channel_permission_overwrites: ロール/メンバー別の内訳とともに、チャンネルのすべての権限上書きを一覧表示しますupsert_role_channel_permissions: チャンネル上のロールの権限上書きを作成または更新しますupsert_member_channel_permissions: チャンネル上のメンバーの権限上書きを作成または更新しますdelete_channel_permission_overwrite: チャンネルからロールまたはメンバーの権限上書きを削除します
招待の管理
create_invite: 特定のチャンネルの新しい招待リンクを作成しますlist_invites: サーバー上の有効な招待とその統計情報をすべて一覧表示しますdelete_invite: 招待を削除(取り消し)して、リンクを無効にしますget_invite_details: 特定の招待の詳細を取得します(すべての公開招待で利用できます)
フォーラムの管理
create_forum_channel: 新しいフォーラムチャンネルを作成しますedit_forum_channel: フォーラムチャンネルの設定(名前、トピック、NSFW、スローモード、カテゴリ、位置、デフォルトの並べ替え、デフォルトのレイアウト)を編集しますlist_forum_channels: サーバー内のすべてのフォーラムチャンネルを一覧表示しますget_forum_channel_info: タグや設定など、フォーラムチャンネルの詳細情報を取得しますlist_forum_tags: フォーラムチャンネルで利用できるすべてのタグを一覧表示しますcreate_forum_post: フォーラムチャンネルに初期メッセージ付きの新しいフォーラム投稿(スレッド)を作成しますlist_forum_posts: フォーラムチャンネル内のアクティブな投稿(スレッド)を一覧表示しますmodify_forum_post: フォーラム投稿を変更します。ロック/ロック解除、アーカイブ/アーカイブ解除、ピン留め/ピン留め解除、適用するタグの変更ができます
絵文字の管理
list_emojis: サーバー上のすべてのカスタム絵文字を一覧表示しますget_emoji_details: 特定のカスタム絵文字の詳細情報を取得しますcreate_emoji: 新しいカスタム絵文字をサーバーにアップロードします(base64または画像URL、最大256KB)edit_emoji: 既存の絵文字の名前またはロール制限を編集しますdelete_emoji: サーバーからカスタム絵文字を完全に削除します
DISCORD_GUILD_IDが設定されている場合、上記のすべてのツールでguildIdパラメーターは省略可能です。
さらに詳しい例はWikiをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。