🚀 Discord MCP Server
Discord MCP Serverは、LLMがBotトークンを介してDiscordサーバーを制御できるようにするMCP(Model Context Protocol)サーバーです。このサーバーは、メッセージの送信、メンバーやロール、チャンネル、権限の管理など、包括的なDiscord管理ツールを提供します。

✨ 主な機能
ギルド/サーバー管理
discord_list_guilds - Botがアクセスできるすべてのサーバーをリスト表示します。
discord_get_guild - 特定のサーバーの詳細情報を取得します。
discord_edit_guild - サーバーの設定(名前、検証レベル、システムチャンネルなど)を編集します。
discord_leave_guild - サーバーから退出します。
チャンネル管理
discord_list_channels - サーバー内のチャンネルをリスト表示します(タイプでフィルタリング可)。
discord_get_channel - チャンネルの詳細を取得します(フォーラムチャンネルの場合はフォーラムタグも含みます)。
discord_create_channel - テキスト/ボイス/フォーラムチャンネルおよびカテゴリを作成します。
discord_edit_channel - チャンネルの名前、トピック、位置、カテゴリ、フォーラムタグなどを編集します。
discord_delete_channel - チャンネルまたはカテゴリを削除します。
フォーラムチャンネル機能
type: "forum" でフォーラムチャンネルを作成します。
- デフォルトのリアクション絵文字、並び順、レイアウトを設定します。
- フォーラムタグを管理します(作成、編集、削除)。
- タグはカスタム絵文字とモデレーション設定をサポートします。
権限管理
discord_set_channel_permissions - チャンネルに対するロール/メンバーの権限オーバーライドを設定します。
discord_remove_channel_permissions - 権限オーバーライドを削除します。
discord_get_channel_permissions - チャンネルのすべての権限オーバーライドを表示します。
discord_sync_channel_permissions - チャンネルの権限を親カテゴリと同期します。
メッセージ操作
discord_send_message - メッセージを送信します(返信付きでも可)。
discord_get_messages - チャンネルのメッセージを取得します(ページネーション付き)。
discord_edit_message - Botのメッセージを編集します。
discord_delete_message - メッセージを削除します。
discord_add_reaction - 絵文字リアクションを追加します。
discord_remove_reaction - Botのリアクションを削除します。
discord_pin_message - メッセージをピン留めします。
discord_unpin_message - ピン留めを解除します。
discord_get_pinned_messages - すべてのピン留めされたメッセージを取得します。
メンバー管理
discord_list_members - サーバーのメンバーをリスト表示します(ページネーション付き)。
discord_get_member - メンバーの詳細を取得します。
discord_kick_member - メンバーをキックします。
discord_ban_member - メンバーをBANします(メッセージ削除オプション付き)。
discord_unban_member - ユーザーのBANを解除します。
discord_set_nickname - メンバーのニックネームを設定/クリアします。
discord_move_member - メンバーを別のボイスチャンネルに移動します。
discord_timeout_member - メンバーをタイムアウト/ミュートします(最大28日)。
ロール管理
discord_list_roles - サーバーのすべてのロールをリスト表示します。
discord_create_role - 新しいロールを作成します。
discord_edit_role - ロールの名前、色、権限、設定を編集します。
discord_delete_role - ロールを削除します。
discord_add_role - メンバーにロールを割り当てます。
discord_remove_role - メンバーからロールを削除します。
discord_set_role_positions - ロールの階層を並び替えます。
サーバー管理
discord_list_bans - すべてのBANされたユーザーをリスト表示します。
discord_prune_members - 非アクティブなメンバーを削除します(ドライランオプション付き)。
discord_get_audit_log - 監査ログエントリを表示します。
コミュニティ機能
discord_get_community_settings - コミュニティ設定(ルールチャンネル、機能など)を表示します。
discord_setup_community - コミュニティチャンネル(ルール、更新、セーフティアラート)を設定します。
ウェルカム画面
discord_get_welcome_screen - ウェルカム画面の設定を取得します。
discord_edit_welcome_screen - ウェルカム画面を編集します(説明、チャンネル、絵文字)。
オンボーディング
discord_get_onboarding - オンボーディングの設定を取得します。
discord_edit_onboarding - 既存のオンボーディング設定を編集します。
discord_setup_onboarding - オンボーディングを最初から設定します(プロンプト、デフォルトチャンネル、ロール)。
自動モデレーション
discord_list_automod_rules - 自動モデレーションルールをリスト表示します。
discord_get_automod_rule - 自動モデレーションルールの詳細を取得します。
discord_create_automod_rule - 自動モデレーションルールを作成します。
discord_edit_automod_rule - 自動モデレーションルールを編集します。
discord_delete_automod_rule - 自動モデレーションルールを削除します。
絵文字管理
discord_list_emojis - カスタム絵文字をリスト表示します。
discord_create_emoji - 画像URLから絵文字を作成します。
discord_delete_emoji - カスタム絵文字を削除します。
スタンプ管理
discord_list_stickers - カスタムスタンプをリスト表示します。
discord_delete_sticker - カスタムスタンプを削除します。
招待管理
discord_list_invites - アクティブな招待をリスト表示します。
discord_create_invite - チャンネルの招待を作成します。
discord_delete_invite - 招待を削除します。
ウェブフック管理
discord_list_webhooks - ウェブフックをリスト表示します(ギルドまたはチャンネル)。
discord_create_webhook - ウェブフックを作成します。
discord_edit_webhook - ウェブフックの名前またはチャンネルを編集します。
discord_delete_webhook - ウェブフックを削除します。
予定イベント
discord_list_events - 予定イベントをリスト表示します。
discord_create_event - 予定イベントを作成します(ステージ、ボイス、または外部)。
discord_delete_event - 予定イベントを削除します。
📦 インストール
1. Discord Botを作成する
- Discord Developer Portalにアクセスします。
- 「New Application」をクリックし、名前を付けます。
- 「Bot」セクションに移動し、「Add Bot」をクリックします。
- Botトークンをコピーします(これは秘密にしてください!)
- 以下の特権ゲートウェイインテントを有効にします:
- Server Members Intent
- Message Content Intent
2. Botをサーバーに招待する
-
OAuth2 -> URL Generatorに移動します。
-
スコープを選択します:bot、applications.commands
-
Botの権限を選択します(必要な機能に基づいて選択):
コア権限:
- Manage Channels
- Manage Roles
- Manage Messages
- Read Message History
- Send Messages
- Add Reactions
メンバー管理:
- Kick Members
- Ban Members
- Manage Nicknames
- Moderate Members (タイムアウト用)
サーバー管理:
- Manage Guild (サーバー設定用)
- View Audit Log
- Manage Emojis and Stickers
- Manage Webhooks
- Manage Events
- Create Instant Invite
-
生成されたURLをコピーし、開いてBotを招待します。
3. MCPサーバーをインストールする
オプションA: npmからグローバルにインストールする
npm install -g @mahesvara/discord-mcpserver
オプションB: npxで直接実行する(インストール不要)
npx @mahesvara/discord-mcpserver
💻 使用例
MCPクライアントの設定
MCPクライアントの設定に追加します(例: Claude DesktopまたはClaude Code):
グローバルにインストールされたパッケージを使用する場合:
{
"mcpServers": {
"discord": {
"command": "discord-mcpserver",
"env": {
"DISCORD_BOT_TOKEN": "your_bot_token_here"
}
}
}
}
npxを使用する場合(インストール不要):
{
"mcpServers": {
"discord": {
"command": "npx",
"args": ["-y", "@mahesvara/discord-mcpserver"],
"env": {
"DISCORD_BOT_TOKEN": "your_bot_token_here"
}
}
}
}
環境変数
サーバーは、現在のディレクトリの .env ファイルから環境変数を読み込むことをサポートしています:
DISCORD_BOT_TOKEN=your_bot_token_here
TRANSPORT=http
PORT=3000
HOST=localhost
| 変数 |
説明 |
デフォルト |
DISCORD_BOT_TOKEN |
あなたのDiscord Botトークン(必須) |
- |
TRANSPORT |
トランスポートモード: stdio または http |
stdio |
PORT |
HTTPサーバーのポート(httpトランスポートを使用する場合) |
3000 |
HOST |
HTTPサーバーのホスト(リモートアクセスには 0.0.0.0 を使用) |
localhost |
HTTPトランスポート
リモートアクセスのために、HTTPトランスポートを有効にしてサーバーを実行します:
Linux/macOS:
DISCORD_BOT_TOKEN=your_token TRANSPORT=http PORT=3000 HOST=0.0.0.0 discord-mcpserver
Windows (Command Prompt):
set DISCORD_BOT_TOKEN=your_token && set TRANSPORT=http && set PORT=3000 && set HOST=0.0.0.0 && discord-mcpserver
Windows (PowerShell):
$env:DISCORD_BOT_TOKEN="your_token"; $env:TRANSPORT="http"; $env:PORT="3000"; $env:HOST="0.0.0.0"; discord-mcpserver
または .env ファイルを使用する(すべてのプラットフォームで動作):
discord-mcpserver
次に、MCPクライアントをHTTP経由で接続するように設定します:
{
"mcpServers": {
"discord": {
"type": "http",
"url": "http://your-server-ip:3000/mcp"
}
}
}
ツールの使用例
タグ付きのフォーラムチャンネルを作成する
{
"tool": "discord_create_channel",
"params": {
"guild_id": "1234567890123456789",
"name": "help-forum",
"type": "forum",
"topic": "Ask questions and get help",
"default_reaction_emoji": "✅",
"default_sort_order": "latest_activity",
"default_forum_layout": "list_view",
"available_tags": [
{ "name": "Solved", "emoji_name": "✅", "moderated": false },
{ "name": "Bug", "emoji_name": "🐛", "moderated": false },
{ "name": "Question", "emoji_name": "❓", "moderated": false },
{ "name": "Announcement", "emoji_name": "📢", "moderated": true }
]
}
}
サーバーのオンボーディングを設定する
{
"tool": "discord_setup_onboarding",
"params": {
"guild_id": "1234567890123456789",
"default_channel_ids": ["1111111111111111111"],
"prompts": [
{
"type": "multiple_choice",
"title": "What are you interested in?",
"single_select": false,
"required": true,
"options": [
{ "title": "Gaming", "emoji_name": "🎮", "role_ids": ["2222222222222222222"] },
{ "title": "Tech", "emoji_name": "💻", "role_ids": ["3333333333333333333"] }
]
}
]
}
}
コミュニティ設定を構成する
{
"tool": "discord_setup_community",
"params": {
"guild_id": "1234567890123456789",
"rules_channel_id": "1111111111111111111",
"public_updates_channel_id": "2222222222222222222",
"description": "A friendly gaming community",
"preferred_locale": "en-US"
}
}
ウェルカム画面を編集する
{
"tool": "discord_edit_welcome_screen",
"params": {
"guild_id": "1234567890123456789",
"enabled": true,
"description": "Welcome to our server!",
"welcome_channels": [
{ "channel_id": "1111111111111111111", "description": "Read the rules", "emoji_name": "📜" },
{ "channel_id": "2222222222222222222", "description": "Introduce yourself", "emoji_name": "👋" }
]
}
}
カテゴリを作成する
{
"tool": "discord_create_channel",
"params": {
"guild_id": "1234567890123456789",
"name": "Bot Testing",
"type": "category"
}
}
カテゴリ内にチャンネルを作成する
{
"tool": "discord_create_channel",
"params": {
"guild_id": "1234567890123456789",
"name": "bot-commands",
"type": "text",
"topic": "Channel for bot interactions",
"parent_id": "CATEGORY_ID_HERE"
}
}
チャンネルの権限を設定する
{
"tool": "discord_set_channel_permissions",
"params": {
"channel_id": "1234567890123456789",
"target_id": "ROLE_ID_HERE",
"target_type": "role",
"allow": ["ViewChannel", "SendMessages", "ReadMessageHistory"],
"deny": ["CreatePublicThreads"]
}
}
一般的な権限名
表示とアクセス:
メッセージ:
SendMessages, ReadMessageHistory, ManageMessages
EmbedLinks, AttachFiles, AddReactions
UseExternalEmojis, UseExternalStickers
MentionEveryone
スレッド:
CreatePublicThreads, CreatePrivateThreads
SendMessagesInThreads, ManageThreads
ボイス:
Connect, Speak, Stream
MuteMembers, DeafenMembers, MoveMembers
UseVAD, PrioritySpeaker
管理:
ManageChannels, ManageRoles, ManageWebhooks
メッセージを送信する
{
"tool": "discord_send_message",
"params": {
"channel_id": "1234567890123456789",
"content": "Hello from the MCP server!"
}
}
ロールを割り当てる
{
"tool": "discord_add_role",
"params": {
"guild_id": "1234567890123456789",
"user_id": "9876543210987654321",
"role_id": "1111111111111111111"
}
}
レスポンス形式
ほとんどの読み取り操作は、2つのレスポンス形式をサポートしています:
- json (デフォルト): プログラムによる処理用の構造化データ
- markdown: 人間が読みやすい形式の出力
エラー処理
すべてのツールは、操作が失敗した場合に明確なエラーメッセージと提案を返します:
- 権限不足
- 無効なID(ギルド、チャンネル、ユーザー、ロール、メッセージ)
- レート制限
- ネットワーク問題
セキュリティに関する注意事項
- Botトークンを決してコミットしないでください - 環境変数を使用してください。
- Botは招待されたサーバー内でのみ操作できます。
- 破壊的な操作(削除、キック、BAN)には
destructiveHint: true が付けられています。
- すべての入力はZodスキーマで検証されます。
必要なBot権限
使用するツールに応じて、Botには以下の権限が必要です:
| ツールカテゴリ |
必要な権限 |
| メッセージ |
Send Messages, Read Message History, Manage Messages |
| チャンネル |
Manage Channels |
| 権限 |
Manage Roles (チャンネルの権限オーバーライド用) |
| メンバー |
Kick Members, Ban Members, Manage Nicknames, Moderate Members |
| ロール |
Manage Roles |
| リアクション |
Add Reactions |
| サーバー設定 |
Manage Guild |
| 絵文字/スタンプ |
Manage Emojis and Stickers |
| 招待 |
Create Instant Invite, Manage Guild |
| ウェブフック |
Manage Webhooks |
| イベント |
Manage Events |
| 監査ログ |
View Audit Log |
| コミュニティ/オンボーディング |
Manage Guild |
ツールの使用例
ロールの権限を編集する
{
"tool": "discord_edit_role",
"params": {
"guild_id": "1234567890123456789",
"role_id": "1111111111111111111",
"name": "Moderators",
"color": 3447003,
"permissions": ["KickMembers", "BanMembers", "ManageMessages", "ModerateMembers"]
}
}
ロールの階層を並び替える
{
"tool": "discord_set_role_positions",
"params": {
"guild_id": "1234567890123456789",
"positions": [
{ "role_id": "1111111111111111111", "position": 5 },
{ "role_id": "2222222222222222222", "position": 4 }
]
}
}
メンバーをタイムアウトさせる
{
"tool": "discord_timeout_member",
"params": {
"guild_id": "1234567890123456789",
"user_id": "9876543210987654321",
"duration_minutes": 60,
"reason": "Spamming in chat"
}
}
招待を作成する
{
"tool": "discord_create_invite",
"params": {
"channel_id": "1234567890123456789",
"max_age": 86400,
"max_uses": 10,
"temporary": false
}
}
予定イベントを作成する
{
"tool": "discord_create_event",
"params": {
"guild_id": "1234567890123456789",
"name": "Community Game Night",
"description": "Join us for games!",
"scheduled_start_time": "2024-12-01T20:00:00Z",
"entity_type": "voice",
"channel_id": "1111111111111111111"
}
}
ロールの権限名
ロールを編集する際には、以下の権限名を使用します:
一般:
Administrator - 完全なアクセス権(注意して使用)
ManageGuild, ManageRoles, ManageChannels
KickMembers, BanMembers, ModerateMembers
ViewAuditLog, ViewGuildInsights
メッセージ:
SendMessages, ManageMessages, ReadMessageHistory
EmbedLinks, AttachFiles, AddReactions
MentionEveryone, UseExternalEmojis
ボイス:
Connect, Speak, Stream
MuteMembers, DeafenMembers, MoveMembers
その他:
ManageWebhooks, ManageEmojisAndStickers
ManageEvents, CreateEvents
📄 ライセンス
MIT