discord-management-mcp について
discord-management-mcpは、Discordサーバーの調査、バックアップ、管理を行うローカルMCPサーバーです。幅広い管理ツールに加え、変更や復元に確認とバックアップのガードを設けています。
主な機能
- 01サーバー、メンバー、監査データの確認
- 02チャンネル、ロール、設定の管理
- 03メンバーのモデレーションとAutoMod設定
- 04JSONバックアップの作成とスナップショット比較
- 05ガード付き復元の計画と実行
- 06変更に確認と理由を要求
活用シーン
- 01サーバー設定の変更前にバックアップ
- 02適用前に変更計画を確認
- 03対応するロールとチャンネル設定を復元
- 04監査理由を付けてサーバーを管理
MCP 対応
ローカルstdioのMCPクライアントに、Discord管理、モデレーション、バックアップ、復元計画の54個のツールを提供します。変更には明示的な確認と監査理由が必要で、影響の大きい操作では同じサーバーのバックアップまたは明示的な免除確認も必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y discord-management-mcpDISCORD_TOKENシークレットDiscord bot token from Developer Portal > Bot > Token.BACKUP_DIRRelative directory for local JSON backups. It must stay inside the project directory.LOG_LEVELStderr log level: error, warn, info, or debug.ENABLE_MESSAGE_CONTENTEnables message-content tools and requires the Discord Message Content intent.ENABLE_GUILD_MEMBERSEnables the Guild Members gateway intent.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
54掲載時のツール一覧 · 1 週間前に更新
このツールにパラメーターはありません。
詳細
Discord Management MCP
あらゆる MCP クライアントから安全をデフォルトとした Discord 管理を実現

Discord Management MCP は、Discord のサーバーを調査、バックアップ、管理するためのローカル Model Context Protocol(MCP)サーバーです。stdio 経由で動作し、ボットのトークンとバックアップファイルはオペレーターのマシンに保存され、すべての変更操作に確認、バックアップ、復元のためのガードが設けられています。このサーバーは、サーバーのインベントリ、モデレーション、ロール、チャンネル、サーバー設定、バックアップ、復元計画にわたる 54 個のツールを公開します。
ローカル stdio サーバーに対応するあらゆる MCP クライアントで動作します。Claude Desktop、Claude Code、Cursor、VS Code、Codex、Windsurf、Cline などが対象です。このプロジェクトは独立して開発されており、Discord Inc. との提携、推奨、後援、承認を受けていません。
Discord ボットを初めて使いますか?セットアップと初回利用ガイドでは、アプリケーションの作成、適切な権限を設定したボットの招待、サーバー ID のコピー、クライアントの登録、接続の確認、最初の安全なバックアップと復元の実行について説明しています。
インストール
公開パッケージは、次のコマンド 1 つで実行できます。
npx --yes discord-management-mcp
このパッケージは npm で discord-management-mcp として公開されており、package.json と server.json を通じて io.github.TheStreamCode/discord-management-mcp の MCP レジストリメタデータを宣言しています。
クライアントへの登録
どのクライアントでも、同じコマンド、引数、DISCORD_TOKEN 環境変数が必要です。次のエントリーに相当する設定を、クライアントの MCP 設定に貼り付けてください。
{
"mcpServers": {
"discord-management": {
"command": "npx",
"args": ["--yes", "discord-management-mcp"],
"env": {
"DISCORD_TOKEN": "your_bot_token"
}
}
}
}
| クライアント | 登録方法 |
|---|---|
| Claude Desktop | 上記のエントリーを MCP サーバー設定に追加します。 |
| Claude Code | 同じコマンドと引数でローカル stdio サーバーを追加します。 |
| Cursor | 上記のエントリーを MCP 設定に追加します。 |
| VS Code | 同じコマンドと引数をクライアントの MCP 設定に追加します。 |
| Codex | 同じコマンドと引数で stdio サーバーのエントリーを追加します。 |
| Windsurf | 上記のエントリーを MCP 設定に追加します。 |
| Cline | MCP 設定パネルでサーバーを追加します。 |
Claude Desktop、Cursor、Windsurf、Cline は、上記の mcpServers JSON 形式に対応しています。異なる設定スキーマを使用するクライアントでも、同じ command、args、env の値を指定できます。正確なファイルやコマンドについては、各クライアントのドキュメントを参照してください。
セットアップ
概要は以下のとおりです。詳しい手順については、セットアップと初回利用をご覧ください。
- ボットを作成します。 Developer Portal > New Application > Bot > Reset Token の順に選択します。このトークンだけがサーバーに必要な認証情報です。Application ID、Public Key、OAuth2 クライアントシークレットは使用しないでください。
- ボットを招待します。 OAuth2 > URL Generator で、スコープ
botと必要な権限を選択します。まずは View Channels、Manage Channels、Manage Roles、Manage Server、View Audit Log と、使用する予定のモデレーション権限を選択してください。次に、ボットが編集する必要のあるロールより上にボットのロールを移動します。 - サーバー ID をコピーします。 Developer Mode を有効にし、サーバーアイコンを右クリックして Copy Server ID を選択します。この番号は
guildId引数であり、ボットのアプリケーション ID ではありません。 - クライアントを登録します。 クライアントへの登録の設定で
envにDISCORD_TOKENを指定するか、作業ディレクトリの.env.localにトークンを記述します。 - 確認してバックアップします。 クライアントに
discord_list_guildsを実行させ、続けてサーバーのdiscord_backup_createを実行し、coverage.channels.completeを確認します。
最初のリクエストの例:
Use discord_list_guilds, then discord_backup_create for the server I name, and report the backup ID and coverage.
以降の変更は、保護された手順を通してのみ行います。バックアップを作成し、対象オブジェクトを確認してから、小さな変更をひとつ適用し、結果を確認してください。変更にはすべて監査理由が必要です。
{
"guildId": "123456789012345678",
"confirm": true,
"reason": "Create the approved community announcements channel"
}
影響の大きい操作では、オペレーターが allowWithoutBackup: true を明示的に受け入れない限り、対象ギルドに一致する backupId も必要です。ツールカタログには、変更を行う各ツールの具体的なポリシーが記載されています。
このサーバーを選ぶ理由
多くの Discord MCP サーバーは読み取り専用の確認や変更のプレビューまでしか対応しておらず、ボットトークンをホスト型サービス経由で送信するものもあります。Discord Management MCP はローカルで変更を実行しますが、ガードと復旧の手順を必ず経由します。
| 機能 | 一般的なプレビュー専用サーバー | Discord Management MCP |
|---|---|---|
| 読み取り専用の確認 | 対応 | 対応、読み取り専用ツール 23 個 |
| 変更の実行 | 非対応 | 対応、変更およびモデレーションツール 31 個 |
| リスクの高い変更前のローカルバックアップ | まれ | チャンネル範囲を含む JSON schema v2 スナップショット |
| 復元 | 非対応 | プランハッシュ付きのプラン作成と、復元前バックアップを伴う適用 |
| ロールバックの保証 | 提供なし | ベストエフォートで、NOT_RESTORED 警告を含めて正直に報告 |
| データの経路 | ホスト型が多い | ローカルの stdio のみ |
実際には、次のような意味があります。
- ローカル設計です。 ボットトークン、スナップショット、復元プラン、stdio トランスポートは、すべてオペレーターのマシン上に保持されます。ホスト型リレーもパブリック HTTP リスナーもありません。
- プレビューしてから適用します。 バックアップを比較し、変更を加える前に復元プランに変換できます。プランには、適用時に検証できるハッシュが付与されます。
- バックアップから復元までを約束します。 リスクの高い変更では、同じギルドのスナップショットを指定できます。復元の適用では、Discord に対する最初の変更の前に、新しい復元前バックアップが作成されます。
- 安全策が明確に定められています。 Discord に対する変更にはすべて
confirm: trueと理由が必要です。一覧に記載された影響の大きいツールでは、同じギルドのバックアップも必要です。緊急時のインシデント対応操作は、バックアップなしでも実行できます。 - 復旧状況を正直に報告します。 実現不可能な完全なロールバックを約束するのではなく、復元でスキップされた操作、情報が失われた操作、適用された操作、失敗した操作を報告します。
バックアップからの復元
復旧手順は次の 3 段階です。
discord_backup_createは、JSON スナップショットをBACKUP_DIRにアトミックに書き込み、招待コード、Webhook トークン、その他のシークレットを除去し、チャンネルのカバレッジをcoverage.channelsに記録します。discord_backup_diffとdiscord_backup_restore_planは、変更内容を表示します。プランにはplanHashと、Discord では再作成できないキャプチャ済みセクションを示すNOT_RESTORED警告が含まれます。discord_backup_restore_applyはexpectedPlanHashを検証し、復元前のバックアップを作成してから、サポート対象のロールフィールドとチャンネルフィールドを慎重に適用できます。削除は引き続きオプトインです。
Discord では、削除して再作成した後に元の ID を復元したり、メッセージや監査ログの履歴、正確な招待コード、Webhook トークン、コミュニティやディスカバリーのすべての設定を復元したりすることはできません。サーバーはそのような制限を隠さずに報告します。全体像については、安全性とバックアップを参照してください。
ツールのカバレッジ
サーバーは 54 個のツールを登録します。すべての名前についてはツールカタログ、バックアップポリシーについてはガードマトリックスを参照してください。
| 領域 | ツール数 |
|---|---|
| ギルド、メンバー、監査インベントリ | 17 |
| バックアップと復元 | 6 |
| チャンネル | 6 |
| ロール | 7 |
| モデレーションと AutoMod | 13 |
| サーバー設定 | 5 |
| 合計 | 54 |
読み取り専用ツールには読み取り専用であることが注記され、確認を求めることはありません。Discord を変更するツールには confirm: true と空でない監査理由が必要で、変更は共通のキューを通じて実行されるため、互いに割り込むことはありません。discord_backup_create はローカルスナップショットのみを書き込むため、確認は不要です。
安全性モデル
- Discord への変更にはすべて
confirm: trueと空でないreasonが必要です。監査ログの理由がサポートされている場合、理由は Discord に渡されます。 - 影響の大きいツールでは、同じギルドのバックアップ、または明示的な
allowWithoutBackup: trueによる承認が必要です。 discord_set_incident_actionsはレイド発生時に使用され、変更を元に戻せるため、意図的に例外としています。- 復元の適用時には独自の復元前バックアップが作成され、すべてのエラーパスでその ID が保持されます。
- バックアップはアトミックに書き込まれます。また、シンボリックリンクとジャンクションを拒否して、バックアップのパスがプロジェクトディレクトリ内に収まるようにします。
- 読み取り専用ツールは、読み取り専用として実装され、注記されています。
ガードマトリックス、チャンネルのカバレッジ、復元の動作については安全性とバックアップ、実行時モデルについては設計と信頼境界を参照してください。脆弱性は SECURITY.md を通じて非公開で報告してください。
要件
- Node.js 24 以降。
- ボットトークンを持つ Discord アプリケーション。
- 対象のギルドで、使用するツールに必要な権限のみを付与してボットを招待していること。
ENABLE_MESSAGE_CONTENT と ENABLE_GUILD_MEMBERS はオプトインであり、Discord Developer Portal で対応する特権インテントを有効にする必要があります。2026-06-10 以降、Discord は特権インテントの使用状況を 100 サーバーではなく 10,000 ユーザーで審査し、承認済みアプリは毎年再申請する必要があります。詳細は設定を参照してください。
設定
設定はまずプロセス環境から読み取られ、次に作業ディレクトリ内の .env.local から読み取られます。ブール値には true/false、yes/no、on/off、または 1/0 を指定できます。
| 変数 | 用途 | デフォルト |
|---|---|---|
DISCORD_TOKEN | Developer Portal > Bot > Token で取得する Discord ボットトークン | 必須 |
BACKUP_DIR | ローカル JSON バックアップ用の相対ディレクトリ。プロジェクトディレクトリ内に収める必要があります | backups |
LOG_LEVEL | 標準エラー出力へのログレベル:error、warn、info、debug。ログは JSON 行形式です | info |
ENABLE_MESSAGE_CONTENT | メッセージ内容ツールを有効にします。Discord の Message Content インテントが必要です | false |
ENABLE_GUILD_MEMBERS | 必要なワークフローで Guild Members ゲートウェイインテントを有効にします | false |
トークンのルール、ログの動作、特権インテントの設定については、設定リファレンスを参照してください。
プライバシーとセキュリティ
すべてローカルで stdio を介して実行されます。ボットトークン、バックアップファイル、復元計画、サーバープロセス自体が、オペレーターのマシンの外に出ることはありません。変更には明示的な確認が必要であり、計画や復元の前に、バックアップのサイズ、深さ、構造、シンボリックリンク、ギルドの識別情報が検証されます。復元では、Discord に対する最初の変更を行う前に復元前バックアップを作成し、操作に失敗した場合はその旨を正確に報告して停止します。全体像については設計と信頼境界および安全性とバックアップを、脆弱性を非公開で報告する方法については SECURITY.md をご覧ください。
トラブルシューティング
DISCORD_TOKEN がない、または無効なためサーバーが終了する
プロセスの環境変数、または作業ディレクトリにある .env.local にボットトークンを設定してください。Discord アプリケーションの公開鍵のように見える値は、明示的なメッセージとともに拒否されます。アプリケーション ID、公開鍵、OAuth2 クライアントシークレットではなく、ボットトークンを使用してください。
メッセージの内容が空で返される
メッセージ内容関連のツールには、ENABLE_MESSAGE_CONTENT=true の設定と、Discord Developer Portal での Message Content Intent の有効化の両方が必要です。どちらか一方でも設定されていないと、Discord が空の content、embeds、attachments フィールドを返すことがあります。いずれかを変更した後は、サーバーを再起動してください。アプリが審査のしきい値に近づいている場合は、特権インテントへのアクセスがユーザー数 10,000 人で審査され、毎年更新する必要があることにご注意ください。
Discord に到達する前に変更が拒否される
変更を行うツールには、confirm: true と空でない reason が必要です。影響の大きいツールではさらに、同じギルドの backupId、または allowWithoutBackup: true による明示的な確認が必要です。緊急時に使用する discord_set_incident_actions は例外です。再試行する前にガードマトリックスを確認してください。
バックアップやチャンネル一覧にチャンネルが表示されない
ボットがバックアップできるのは、表示権限のあるチャンネルのみです。2026-11-16 以降、Discord はボットが表示できないチャンネルを GET /guilds/{id}/channels から除外し、ゲートウェイのペイロードには難読化されたチャンネルオブジェクトが含まれることがあります。バックアップではこれが coverage.channels に記録され、対象範囲が不完全な場合は警告が表示されます。該当するチャンネルには VIEW_CHANNEL 権限を付与し、complete: false は部分的なロールバックポイントとして扱ってください。チャンネルの対象範囲と難読化をご覧ください。
復元でスキップされた操作や情報が失われた操作が報告される
Discord では、元の ID、メッセージや監査ログの履歴、正確な招待コード、Webhook トークン、管理対象のインテグレーションオブジェクト、コミュニティやディスカバリーの設定のすべてを再作成することはできません。計画の planHash と NOT_RESTORED 警告を確認し、再試行する前に報告された操作を確認してください。
ログが少なすぎる、または多すぎる
LOG_LEVEL に error、warn、info、または debug を設定してください。ログは stderr に JSON 行形式で出力されるため、stdout は MCP プロトコルトラフィック用に確保されます。ツール呼び出しの診断には debug、ログを抑えたいホストでは error を使用してください。
開発
要件:Node.js 24 以降、およびロックファイルに記載されたバージョンの npm。
git clone https://github.com/TheStreamCode/discord-management-mcp.git
cd discord-management-mcp
npm ci
npm run lint
npm run typecheck
npm test
npm run build
npm run verify:mcp
npm run preflight
npm run pack:check
npm audit --omit=dev --audit-level=high
npm run verify:mcp は、プレースホルダートークンを使ってビルド済みサーバーを stdio 経由で起動し、公開される MCP インターフェースを検証します。検証対象は、54 個のツール、決定的なツール一覧、タイトル、説明、入出力スキーマ、注釈のヒントです。Discord API は呼び出しません。
テストではモックを使用し、Discord に接続してはなりません。実環境での変更は、通常の検証には含まれません。このリポジトリでは、エンジニアリングに関するガイダンスを AGENTS.md で管理しています。このファイルは npm パッケージには含まれません。コントリビューションのルールについては CONTRIBUTING.md をご覧ください。
サポート
SUPPORT.md をご覧ください。再現可能なバグや機能提案には GitHub Issues を使用し、脆弱性は GitHub Security Advisories を通じて非公開で報告してください。
コントリビューション
CONTRIBUTING.md をご覧ください。プルリクエストは npm run preflight、npm run verify:mcp、および必須の CI チェックに合格する必要があります。
ライセンス
MIT。詳細は LICENSE を参照してください。Copyright (c) 2026 Michael Gasperini (Mikesoft)。
このプロジェクトは独立して開発されており、Discord Inc. との提携、推奨、支援、承認を受けていません。Discord は Discord Inc. の商標です。適用される Discord の規約とポリシーについては、NOTICE を参照してください。
Michael Gasperini (Mikesoft) がメンテナンスしています。 このプロジェクトが Discord コミュニティを安全に管理するのに役立つ場合は、 メンテナンスへのスポンサーをご検討ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。