mcpField
D
discord-node-mcp

discord-node-mcp

ローカル
github.com/Oratorianコミュニケーション039 週間前に更新

discord-node-mcp について

Bot tokenを使ってDiscordサーバーを管理するMCPサーバーです。コミュニティ運営者や管理チーム向けに、サーバー設定、チャンネル、メッセージ、メンバー、ロール、モデレーション、コミュニティ機能を操作できます。

主な機能

  1. 01サーバーとチャンネルの管理
  2. 02メッセージの送信と管理
  3. 03メンバーとロールの管理
  4. 04権限と自動モデレーションの設定
  5. 05オンボーディング、イベント、Webhookの管理

活用シーン

  1. 01チャンネルの作成と権限設定
  2. 02メンバーのモデレーションと監査ログの確認
  3. 03コミュニティのオンボーディングとウェルカム画面の設定
  4. 04メッセージ、ロール、スケジュールイベントの管理

MCP 対応

DiscordのBot tokenを使って接続し、MCPクライアントに管理ツールを提供します。stdioとHTTPのトランスポートに対応しています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"oratorian-discord-node": {
"command": "npx",
"args": [
"-y",
"@mahesvara/discord-mcpserver"
],
"env": {
"DISCORD_BOT_TOKEN": "<DISCORD_BOT_TOKEN>",
"TRANSPORT": "<TRANSPORT>",
"PORT": "<PORT>",
"HOST": "<HOST>"
}
}
}
}
起動コマンドnpx -y @mahesvara/discord-mcpserver
設定が必要な環境変数
DISCORD_BOT_TOKENシークレットYour Discord bot token
TRANSPORTTransport type: stdio or http
PORTPort for HTTP transport
HOSTHost for HTTP transport

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@mahesvara/discord-mcpserver1.1.4

ツール

67

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
response_formatenumいいえ出力形式:人間が読みやすい形式は 'markdown'、構造化データは 'json'json | markdown

詳細

Build License TAG

Discord MCP サーバー

ボットトークンを使って、LLM が Discord サーバーを操作できるようにする MCP(Model Context Protocol)サーバーです。メッセージの送信、メンバー、ロール、チャンネル、権限の管理など、Discord を包括的に管理するツールを提供します。

機能

ギルド/サーバー管理
  • discord_list_guilds - ボットがアクセスできるすべてのサーバーを一覧表示します
  • 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 - ボットのメッセージを編集します
  • discord_delete_message - メッセージを削除します
  • discord_add_reaction - 絵文字のリアクションを追加します
  • discord_remove_reaction - ボットのリアクションを削除します
  • 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 - 招待を削除
Webhook の管理
  • discord_list_webhooks - Webhook の一覧を取得(サーバーまたはチャンネル)
  • discord_create_webhook - Webhook を作成
  • discord_edit_webhook - Webhook の名前またはチャンネルを編集
  • discord_delete_webhook - Webhook を削除
スケジュール済みイベント
  • discord_list_events - スケジュール済みイベントの一覧を取得
  • discord_create_event - スケジュール済みイベントを作成(ステージ、ボイス、または外部)
  • discord_delete_event - スケジュール済みイベントを削除

セットアップ

1. Discord ボットを作成する
  1. Discord Developer Portal にアクセスします
  2. 「New Application」をクリックし、名前を付けます
  3. 「Bot」セクションに移動し、「Add Bot」をクリックします
  4. ボットトークンをコピーします(秘密にしてください!)
  5. 以下の 特権ゲートウェイインテント を有効にします:
    • Server Members Intent
    • Message Content Intent
2. ボットをサーバーに招待する
  1. OAuth2 -> URL Generator に移動します

  2. スコープを選択します:bot、applications.commands

  3. ボットの権限を選択します(必要な機能に応じて選んでください):

    基本権限:

    • チャンネルの管理
    • ロールの管理
    • メッセージの管理
    • メッセージ履歴の閲覧
    • メッセージの送信
    • リアクションの追加

    メンバー管理:

    • メンバーのキック
    • メンバーの BAN
    • ニックネームの管理
    • メンバーのモデレート(タイムアウト用)

    サーバー管理:

    • サーバーの管理(サーバー設定用)
    • 監査ログの表示
    • 絵文字とスタンプの管理
    • Webhook の管理
    • イベントの管理
    • 招待リンクの作成
  4. 生成された URL をコピーして開き、ボットを招待します

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_TOKENDiscord ボットのトークン(必須)-
TRANSPORTトランスポートモード:stdio または httpstdio
PORTHTTP サーバーのポート(http トランスポート使用時)3000
HOSTHTTP サーバーのホスト(リモートアクセスには 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(コマンドプロンプト):

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

次に、HTTP 経由で接続するよう MCP クライアントを設定します:

{
  "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"]
  }
}
一般的な権限名

表示とアクセス:

  • ViewChannel - チャンネルを表示する

メッセージ:

  • 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(ギルド、チャンネル、ユーザー、ロール、メッセージ)
  • レート制限
  • ネットワークの問題

セキュリティに関する注意事項

  • ボットトークンをコミットしないでください。環境変数を使用してください
  • ボットは招待されたサーバーでのみ操作できます
  • 削除、キック、BAN などの破壊的な操作には、destructiveHint: true が指定されています
  • すべての入力は Zod スキーマで検証されます

必要なボット権限

使用するツールに応じて、ボットには次の権限が必要です。

ツールカテゴリ必要な権限
メッセージメッセージの送信、メッセージ履歴の閲覧、メッセージの管理
チャンネルチャンネルの管理
権限ロールの管理(チャンネルの権限の上書き設定用)
メンバーメンバーのキック、メンバーのBAN、ニックネームの管理、メンバーのモデレーション
ロールロールの管理
リアクションリアクションの追加
サーバー設定ギルドの管理
絵文字/スタンプ絵文字とスタンプの管理
招待インスタント招待の作成、ギルドの管理
WebhookWebhook の管理
イベントイベントの管理
監査ログ監査ログの閲覧
コミュニティ/オンボーディングギルドの管理

ツールの例

ロールの権限を編集する
{
  "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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。