Skip to main content
Glama
j-256

Discord MCP

by j-256

Discord MCP

Discord MCP は、運用者が所有するボットを通じて、安全な Discord ギルドと、別途許可リスト登録された 1対1 アクセスを提供するローカル stdio Model Context Protocol サーバーです。広範な型付きカバレッジと正確なスコープ、プライバシーを最小化した結果、レビュー付きの書き込み、コンテンツフリーの証拠、明示的な曖昧さの処理を組み合わせています。

最小権限。変更前のレビュー。検証可能な結果。Discord コンテンツの永続化なし。

クイックスタート | 機能マップ | セーフティモデル | 信頼と検証 | 完全なリファレンス | セキュリティ

このコネクタが選ばれる理由

懸念事項

強制される動作

Discord の到達範囲

検証済みのアプリケーション ID とボット ID、正確なギルド・チャンネルスコープ、別途の正確なユーザー限定プライベートメッセージスコープ、リスク分離されたツールセット、読み取り専用のセットアッププリセットを持つ、1 つの厳格な非機密ポリシーファイル

正確なターゲティング

正規の Discord ジャンプリンクと公式の型付きメンションを、名前の検索、Discord との通信、入力エコー、永続化、下流への権限委譲なしに、ローカルで正確な ID に変換する

読み取りの安全性

制限付きリクエスト、ロスレスの結果全体のバイト予算、厳格なレスポンス検証、プライバシー層別の射影、信頼できないコンテンツの処理、プライベートチャンネルのディスカバリやスコープ継承なし

書き込みの安全性

正確な ID リクエスト、キー付きの新しいプラン、署名付きインタラクティブ承認、最終的な新しいプラン一致、アクション固有の Discord 権限証明

結果の整合性

保留中のコンテンツフリー証拠、再試行されない書き込み、正確な読み返し、永続的な調整、曖昧さの隔離、制限付きのローカル無効リクエスト圧力

プライバシー

トークンは呼び出し元が所有するシークレットソースに留まる。Discord コンテンツ、プロフィール、URL、監査理由、生の操作キーは永続化されない

プランレビュー

すべてのプランツールは完全なテキストと構造化された証拠を返し、MCP Apps ホストで表示専用・権限なしのレビューを追加できる

リリースの整合性

正確な依存関係とベースイメージの固定、資格情報不要のコントラクトフィンガープリント、再現可能なパッケージと強化された OCI チェック、SPDX SBOM、署名付きリリースの自動化

完全なリファレンス には、すべてのツールファミリー、ポリシーゲート、権限境界、プライバシー層、リソース、プロンプト、Gateway モード、運用者コマンド、既知の制限が記載されています。

Related MCP server: DiscordMCP

クイックスタート

必要条件:

  • Node.js 22 以降

  • ボットユーザーを持つ Discord アプリケーション

  • 1 つの厳格な非機密 JSON ポリシーファイル

  • 環境変数または保護されたファイルで利用できるボットトークン

  • 選択した読み取りまたはレビュー付き書き込みスコープに必要な Discord 権限のみ

各デプロイは、その運用者が管理する Discord アプリケーションとボットを使用します。Discord MCP は共有ボット、ホスト型リレー、共有トークンを提供しません。自分自身のアプリケーションを作成し、そのボットを自分が管理するギルドにのみ招待し、資格情報をローカルのランチャーまたはシークレットストアに保持してください。

ボットに Administrator を付与しないでください。読み取り専用プリセットから正確な初期権限付与を生成し、カテゴリまたはチャンネルの上書きでインストールされたボットロールを絞り込みます。ボットセットアップガイド では、ボットの所有権、オプションのインテント、後続の機能固有の権限について説明しています。

接続前に検査する

正確な公開バージョンについては、トークンや Discord リクエストなしで実際の本番コントラクトと推奨される読み取り専用プリセットを検査してください:

npx --yes @j-256/discord-mcp@0.1.1 catalog --check
npx --yes @j-256/discord-mcp@0.1.1 catalog --html ./discord-mcp-contract.html
npx --yes @j-256/discord-mcp@0.1.1 preset show server-observer

catalog --check は、資格情報不要・実行無効の MCP サーバーを起動し、実際のツール、プロンプト、リソース、テンプレート、補完機能、オプションのプランレビュー MCP App をネゴシエートし、すべてのポリシー補完ルートで返される識別子がゼロであることを検証し、アプリの正確な HTML と権限境界をフィンガープリントし、すべてのツール呼び出しがカタログ専用ガードによってブロックされることを検証します。

catalog --html FILE は、同じネゴシエートされたコントラクトに対する決定的なスタンドアロンエクスプローラーを書き出します。ローカルで開いて、すべてのツールを検索・フィルタリングし、正確な入力・出力スキーマを検査し、プロンプト、リソース、ポリシー補完ルート、完全なプランレビューアプリのソースを確認し、埋め込まれたコントラクト、セーフティ、アプリのダイジェストを比較できます。このエクスポートには資格情報や識別子の補完値は含まれず、外部アセットを使用せず、ネットワークリクエストを行わず、既存ファイルの置き換えを拒否します。

正確なリリースイメージは、トークンなしで同じ安全なカタログを公開し、運用サービスではなくカタログモードをデフォルトにします:

docker run --rm -i \
  --network=none \
  --read-only \
  --cap-drop=ALL \
  --security-opt=no-new-privileges:true \
  --pids-limit=64 \
  ghcr.io/j-256/discord-mcp:0.1.1 catalog --check

オーナー管理のボットをインストールする

デベロッパーポータル で Discord アプリケーションとボットを作成し、公開 Application ID と対象の Server ID をコピーし、推奨プリセットに基づくギルドと最小権限の権限付与を持つコールバック不要のインストールリンクを生成します:

npx --yes @j-256/discord-mcp@0.1.1 preset install server-observer \
  --application-id YOUR_APPLICATION_ID \
  --guild-id YOUR_GUILD_ID \
  --html ./discord-mcp-onboarding.html

そのサーバーを管理できるメンバーとしてサインインした状態で、出力された URL を開きます。この URL は server-observer に対して View Channel のみを要求し、サーバーセレクターを指定された ID に固定し、ユーザートークンを要求せず、ボットトークンをコネクタコマンドに送信することもありません。他の人がアプリケーションをインストールできるようにする必要がない限り、Public Bot は無効のままにしてください。代わりに channel-reader を使用すると、View Channel に加えて Read Message History を要求します。また、そのプランは Message Content を推奨されるデベロッパーポータルのインテントとして識別します。

オプションの --html FILE 出力は、その正確な検証済みインストールプランから生成された決定的なスタンドアロンガイドです。トークンの受け入れ、外部アセットの読み込み、バックグラウンドリクエストの実行、ブラウザ状態の永続化、ブラウザの起動、既存ファイルの置き換えを行うことなく、インメモリのチェックリスト、非機密のコピーコントロール、明示的な Discord インストール操作手順、厳格ポリシーコマンド、正確なプラン証拠を提供します。HTML が不要な場合でも、ターミナル上のプランは完全なままです。

最も安全な最初の構成を作成する

トークンをシークレット対応の起動環境に保持し、1 つの正確なギルドを検証し、完全な非機密ポリシーを 1 つのファイルに保存し、MCP パス全体をテストします:

export DISCORD_BOT_TOKEN="YOUR_DISCORD_BOT_TOKEN"
npx --yes @j-256/discord-mcp@0.1.1 setup \
  --config ./discord-mcp.json \
  --preset server-observer \
  --guild-id YOUR_GUILD_ID
npx --yes @j-256/discord-mcp@0.1.1 config validate ./discord-mcp.json
npx --yes @j-256/discord-mcp@0.1.1 doctor --config ./discord-mcp.json --online
npx --yes @j-256/discord-mcp@0.1.1 smoke --config ./discord-mcp.json

PowerShell では、同じコマンドを実行する前に現在のプロセスでトークンを設定してください:

$env:DISCORD_BOT_TOKEN = "YOUR_DISCORD_BOT_TOKEN"

ランチャー、コンテナランタイム、またはオーケストレーターがトークンをファイルとしてマウントする場合は、代わりにその入力を選択してください。パスは絶対パスである必要があり、検証済みセットアップではファイルがすでに存在している必要があります。また、--token-file は --token-env や環境由来の DISCORD_BOT_TOKEN と組み合わせることはできません:

npx --yes @j-256/discord-mcp@0.1.1 setup \
  --config ./discord-mcp.json \
  --preset server-observer \
  --guild-id YOUR_GUILD_ID \
  --token-file /run/secrets/discord_bot_token

server-observer プリセットは、ギルドメタデータ、ロール、権限診断、コネクタのヘルス、コンテンツフリーのアクティビティ、ツールのディスカバリを公開します。書き込み、Gateway、テレメトリエクスポート、アクティビティの永続化、Message Content アクセスを有効にすることはできません。セットアップは、トークン値ではなく、資格情報の参照と検証済みの公開 ID を保存し、互換性のある MCP クライアント用のポータブルな stdio 起動記述子を出力します。route_discord_goal は、プロンプト対応のすべてのクライアントに 1 つの安全なエントリポイントを提供します。つまり、標準のカタログディスカバリ、制限付き読み取り、書き込みについては最大でもレビュー済みプランまでで、変更(ミューテーション)は決して行われません。

バージョン管理されたファイルが唯一のポリシー境界です。ID、読み取りスコープ、ツール、機能、機能スコープ、制限、ローカルストレージパス、Gateway の動作、ランタイム設定、プライバシー安全な可観測性をカバーします。一般的なデプロイには 2 つの入力があります。1 つの JSON ポリシーファイルと 1 つの外部ボットトークンシークレットです。ボットトークンは、環境変数または厳密に検証されたファイルを通じて参照できます。オプションの認証済みコレクターヘッダーは環境参照のままです。チェックインされた JSON Schema はエディタでの検証をサポートし、config show と config explain はシークレット不要の検査を提供します。ユーザーごとのプライベートストレージが望ましい場合は、マネージドプロファイルでも同じドキュメントを使用します。

limits.mcpReadResponseMaxBytes は、1 回の完全な機密除去済み MCP アプリケーション読み取り結果を、コンパクトな UTF-8 JSON バイトで制限します。デフォルトは 1 MiB で、64 KiB から 8 MiB までを受け付けます。サイズ超過のツール読み取りは、固定のコンテンツフリーの response-too-large エラーを返します。サイズ超過のリソースまたはプロンプトは、固定のプロトコルエラーで失敗します。コネクタは、構造化 JSON を切り詰めたり、プレビューを出力したり、保持中のデータを漏らしたり、測定サイズを報告したりすることはありません。Discord 側で変更がすでに発生している可能性があるため、変更(ミューテーション)可能なツールからの最終結果は常に保持されます。プロトコルのディスカバリと通知はこの結果境界の外にあります。カタログサイズを制御するには、ツールセットと段階的なディスカバリを使用してください。

資格情報認証の受信ウェブフックメッセージは、storage.webhookCredentialRoot、つまりプロセスが所有する既存の標準 0700 ディレクトリを使用します。コネクタが作成した資格情報は、排他的な 0600 ファイルと永続的なディレクトリ同期により、別途ゲートされた正確な参照、制限付きのプレーンテキスト配信、編集、レビュー付き削除を通じて利用可能になります。MCP は、資格情報、実行 URL、パス、ID の上書き、スレッドターゲット、リッチペイロード、ファイル、コンポーネント、ポーリング、生のウェブフックペイロードのいずれも受け入れません。scopes.webhookMessageChannelIds で直接テキストまたはアナウンスチャンネルを許可リストに登録し、必要なウェブフックメッセージ機能のみを有効にしてください。

運用コマンドには、--config FILE、--profile NAME、または非機密の DISCORD_MCP_CONFIG_FILE セレクターが必要です。環境由来のポリシー変数は拒否され、代替の環境ポリシーモードや移行モードはありません。プリセットなしで setup を実行すると、既存のポリシーを書き換えずに検証します。一方、プリセットを使用すると、選択したターゲットを明示的に作成または置き換えます。

オフラインの doctor は、シークレットがマウントされる前や、その参照先ファイルが利用できない場合でも有用です。資格情報の可用性を別の失敗として報告し、厳格なポリシー、ID 固定、スコープ、ツールサーフェス、実効的な読み取りレスポンス予算、セーフティゲートの検証を継続します。doctor --online は、実際に選択された資格情報が利用可能な場合にのみ Discord に接続します。

ポリシー置き換えのレビュー

アクティブなポリシーは変更せずに、別の候補を編集し、正確な新しいプランのみをレビューして適用します:

npx --yes @j-256/discord-mcp@0.1.1 config workbench \
  ./discord-mcp.json \
  --html ./discord-mcp-workbench.html
npx --yes @j-256/discord-mcp@0.1.1 config plan \
  ./discord-mcp.json \
  ./discord-mcp.candidate.json
npx --yes @j-256/discord-mcp@0.1.1 config apply \
  ./discord-mcp.json \
  ./discord-mcp.candidate.json \
  --plan-digest SHA256_FROM_THE_PLAN \
  --confirm ACTIVE_POLICY_NAME

オプションのワークベンチは、アクティブなスキーマ v2 ドキュメントを検証してから、排他的なプライベートスタンドアロンエディタを書き出します。公開 Discord ID、ローカルパス、外部シークレット参照名を含む完全な非機密ポリシーを埋め込むため、HTML はプライベートとして扱ってください。編集内容は、明示的な候補のダウンロードまでブラウザのメモリに留まります。このページには、シークレットフィールド、ネットワークまたは外部ナビゲーション権限、ブラウザの永続化、Discord アクセス、アクティブファイルへの書き込み、承認権限はなく、ブラウザを自動的に開くこともありません。そのローカルチェックと予備的な影響ラベルは参考情報のみです。

プランニングは引き続き権威を持ちます。プランニングは保護された非秘密の2文書を読み取り、すべての正確なフィールド変更、その権限または運用上の影響、標準的なツールの追加と削除、警告、両方の文書ダイジェスト、完全な候補、および構造化された適用後チェックを報告します。参照された秘密情報を解決したり、Discordに連絡したりすることは決してありません。適用時には両ファイルを再読取りし、正確なダイジェストとアクティブポリシー名の確認を要求し、アイデンティティのドリフトまたはいずれかの古い文書を拒否し、復元可能なバックアップを保持し、候補には触れません。アクティブ文書が唯一のポリシーソースであり続けます。レガシー環境のフォールバックや移行レイヤーは存在しません。

Discordリクエストを行わず、その資格情報を解決せずに、同じ選択済みポリシーから最近の書き込み結果と永続的クロスプロセスクレームをレビューします:

npx --yes @j-256/discord-mcp@0.1.1 activity \
  --config ./discord-mcp.json \
  --html ./discord-mcp-activity.html

境界付きレビューは、各アクティビティIDを最新の現在の結果に集約し、古い記録は置き換えられた履歴として保持します。保留中、不確定、失敗、ドリフト、不正形式、レビュー必須の証拠は、クリーンな実行のように見える代わりに警告終了ステータスを生成します。一致するレビュー済み操作は、コンテンツフリーのオペレーションキーハッシュとプランダイジェストの両方を介してのみ永続的クレームに結合され、境界付きウィンドウ内で一致しないクレームは明示的にラベル付けされたままになります。ダイジェストは収集された正確なレポートをバインドしますが、その独立読み取りマーカーは、別々のローカルファイルが単一のグローバル状態ロックの下でキャプチャされたことを示唆することを避けます。オプションのプライベートスタンドアロンエクスプローラーは検索とフィルターを追加しますが、Discordに連絡したり、クレームを解決したり、操作を再試行したり、ブラウザ状態を永続化したり、選択されたアクティビティファイルパスを公開したりすることはできません。所有プロセスを停止し、Discordの正確な状態と監査ログを確認した後にのみ、別の正確確認用 coordination resolve コマンドを使用してください。

機能ポリシーは同じ文書形式を使用します。一括BAN、一括メンバーロール変更、ギルド整理、その他のレビュー済み機能には、それぞれ個別のケイパビリティ、正確なスコープ、境界付き制限、文書化されたツールセットがあります。単一メンバー権限がバッチ権限を付与することは決してありません。環境ポリシーインターフェース、レガシーエイリアス、フォールバックパーサー、移行レイヤーは存在しません。

境界付きメッセージ履歴とネイティブ検索が必要な場合にのみ channel-reader を使用してください。少なくとも1つの正確なチャンネルが必要です:

npx --yes @j-256/discord-mcp@0.1.1 setup \
  --config ./discord-reader.json \
  --preset channel-reader \
  --guild-id YOUR_GUILD_ID \
  --channel-id YOUR_CHANNEL_ID

レビューを通じてポリシーを拡張する

最初のセットアップは読み取り専用に保ち、書き込みワークフローが必要な場合は、追加型レシピを計画してください。guild-builder は、目標やブループリントを保存せずに、ギルド構造、プロフィール、設定、Community、Welcome Screen、オンボーディング、段階的AutoMod、静的出版物に対して、モデル中立で呼び出し元が保持するオーサリングと2パスキャプチャを追加します。その設定、Community、オンボーディングの証拠は、イベントフィードを変更せずに、非特権の GUILDS 専用レイアウト証拠接続を使用します。incident-response は、Gatewayや特権インテントなしで、プライバシー最小化されたインシデント監査と、レビュー済みの時間制限付きロックダウン変更を追加します。channel-publisher は、境界付きテキスト、静的Components V2、リモートフリーのリッチ埋め込み公開を追加し、必要なMessage Contentインテントを報告します。direct-messenger は、正確なユーザー読み取りに加えて、レビュー済みのテキストと静的Components V2配信、同一形式の編集、削除を追加します。オプションのプライベートファイル配信には、別のケイパビリティと所有された添付ファイルルートが必要です。レシピはそれを付与しません。プライベートメッセージングは、ギルド権限、特権インテント、Gatewayフィード、グループDM、受信者発見、リモートファイル取得、インタラクティブコールバック、即時書き込みパスを追加しません。

npx --yes @j-256/discord-mcp@0.1.1 recipe list
npx --yes @j-256/discord-mcp@0.1.1 recipe plan guild-builder ./discord-mcp.json \
  --guild-id YOUR_GUILD_ID
npx --yes @j-256/discord-mcp@0.1.1 recipe apply guild-builder ./discord-mcp.json \
  --guild-id YOUR_GUILD_ID \
  --plan-digest SHA256_FROM_THE_PLAN \
  --confirm guild-builder
npx --yes @j-256/discord-mcp@0.1.1 recipe plan direct-messenger ./discord-mcp.json \
  --user-id EXPECTED_RECIPIENT_USER_ID
npx --yes @j-256/discord-mcp@0.1.1 recipe apply direct-messenger ./discord-mcp.json \
  --user-id EXPECTED_RECIPIENT_USER_ID \
  --plan-digest SHA256_FROM_THE_PLAN \
  --confirm direct-messenger

プランニングは、秘密情報を解決したりDiscordに連絡したりせずに、完全な提案された非秘密文書、正確なフィールド変更、権限、インテント、リスク、警告、パスにバインドされたダイジェストを出力します。適用時はそのプランを再計算し、正確なダイジェストとレシピ名の確認を要求し、同時ソース変更を拒否し、復元可能なバックアップを保持し、それ自体では依然としてDiscord権限を付与しません。適用後、出力されたオフライン検証、オンラインドクター、スモークチェックを実行してください。レシピはポリシーを追加するだけです。既存のケイパビリティ、スコープ、ツールセットを削除することは決してありません。

オンラインドクターは、アイデンティティ、境界付きギルドメンバーシップ、アプリケーションのポスチャを検証します。スモークは、実際の serve エントリポイントを通じて選択されたポリシーを起動し、stdio上で安定したMCPをネゴシエートし、カタログ、アノテーション、読み取り専用ステータスを検証し、Discordには何も書き込みません。設定されたオプションのランタイムは子プロセスとともに開始および停止します。オペレーターリファレンス を参照してください。

ソースからビルドする

git clone https://github.com/j-256/discord-mcp.git
cd discord-mcp
npm run deps:locked
npm run build
node dist/cli.js catalog --check

正確なインストール、オペレーターCLI、構成リファレンスは、スタンドアロン構成、管理プロファイル、OCIバインドマウント、段階的ディスカバリー、ツールセット、許可リスト、オプションのGatewayモード、可観測性、および個別にゲートされたすべての機能をカバーしています。

ケイパビリティマップ

領域

選択されたケイパビリティ

探索と読み取り

ジャンプリンクと型付きメンションからのローカル正確ID変換、ギルド、チャンネル、正確な許可リスト付き1対1プライベートメッセージ、ボイスリージョンと一時的なチャンネルステータス、ロール、実効権限、メンバー安全監査、メッセージ履歴、検索、プライバシー安全な集計アクティビティ、スレッド、フォーラム、投票、リアクション、監査履歴、インテグレーション、招待、テンプレート、ギルドおよびアプリケーション所有の絵文字、ステッカー、サウンドボード、イベント、ステージインスタンス、オンボーディング、Welcome Screens、プロフィール、設定、Communityルーティング、インシデントアクション、チャンネルウェブフック

メッセージとコミュニティ

冪等なギルドボット送信と編集、レビュー済みの正確な受信者へのプライベートメッセージのプレーンテキストまたは静的Components V2送信、返信、同一形式の編集、削除、受信確認、プライベート資格情報付きIncoming-webhookメッセージ検索、プレーンテキスト配信、正確な編集とレビュー済み削除、正確なピン留め、リアクション、アナウンスメントクロスポストと購読、不変の転送、添付ファイル、レビュー済みで再起動検証可能な静的Components V2とリモートフリーのリッチ埋め込み、フォーラム投稿、スレッド作成、ネイティブ投票、正確な削除

ギルド構造

追加型構造、プロフィール、設定、単調なCommunity、完全なWelcome Screensとオンボーディング、段階的AutoMod、順序付けられた再起動検証可能な静的Components V2出版物にわたる、呼び出し元が保持するギルドブループリントへのモデル中立オーサリングと2パスキャプチャ; 追加型チャンネルとロール; レビュー済みの正確なチャンネルと標準ロールの退役; 再開可能なスキャフォールド; アトミックなチャンネルクローン; 相対的なチャンネルとロールの順序付け; ブースト対応のボイスおよびステージチャンネルメタデータ; 接続状態に応じたボイスチャンネルステータス変更; 権限上書き; フォーラムタグ; レビュー済みのローカルまたはUnicodeアイコンによる正確なロール構成

メンバーとモデレーション

プライバシー最小化されたメンバーとBANの読み取り; 正確なニックネーム、名前付きMembership Screeningバイパス、ロール、ボイス、スレッドメンバーシップ、キック、BAN、BAN解除、タイムアウトワークフロー; ターゲットごとの証拠、チェックポイント、承認済み再開を伴うレビュー済みの正確なロールバッチ; 完全なターゲットセット証拠とターゲットごとの読み返しを伴うレビュー済みのネイティブ一括BAN; 保護されたアイデンティティロールシールドと件数のみの結果を伴う境界付き非正確ギルド整理

コミュニティ構成

アプリケーションコマンド、リンクドロール、SKU、受益者エンタイトルメント、購読の監査; テスト付与と消耗品の消費; レビュー済みのギルドおよびグローバルコマンドライフサイクル; ネイティブコマンド管理; レビュー済みのアプリケーションスキーマとインテント変更; レビュー済みのCommunity有効化とルーティング; Guild Templates; インテグレーション; 有限なロール認識プライベートファイル招待; ケイパビリティ安全な招待監査と失効; 資格情報安全なウェブフックとプライベートメッセージ; オンボーディング; Welcome Screens; 認証済みウィジェット設定; 時間制限付きインシデントアクション; アプリケーション所有の絵文字; ギルド表現; サウンドボード; AutoMod; スケジュール済みイベント; Stageライフサイクル

運用

完全または段階的なツールディスカバリー、リソース、プロンプト、ポリシー認識の正確ID補完、オプションの表示専用MCP Appプランレビュー、厳格な非秘密ポリシーファイルと管理プロファイル、プライベートオフラインポリシーワークベンチ、決定論的読み取り専用プリセット、レビュー優先の追加型ポリシーレシピ、プライバシー安全なアプリケーションポスチャ、コマンド、リンクドロールスキーマ、SKUカタログ、ギルドウェブフック露出監査、オプションのプライベートHTML付きダイジェストバインド型コンテンツフリーアクティビティレビュー、永続的クロスプロセス書き込み調整、認証済み正確ルートスパースシャーディング付きオプションのプライバシー安全Gatewayイベント、共有セッション開始プリフライト、シャードごとのアウトバウンド予算、ネイティブInteractionイングレス、ローカルまたはW3C親のOpenTelemetry診断

ケイパビリティは、そのツールセットとポリシーゲートが選択された場合にのみ公開されます。ツールセットは呼び出し可能な表面を狭めますが、Discordまたはローカル書き込み権限を付与することは決してありません。正確なツールリファレンス、リソース、プロンプトを参照してください。

セーフティモデル

Discord権限が外側の境界です。コネクターポリシーはその権限をさらに狭めます。

  • 本番トラフィックは固定のDiscord RESTおよび検証済みGatewayオリジンのみを使用します。ランタイム構成によって資格情報をリダイレクトすることはできません

  • 各Gatewayシャードは、すべての成功した送信イベントを1つのローリング接続バジェットとしてカウントし、発信者コマンドの圧力を予約済みライフサイクル容量未満に制限し、接続境界ごとにキューされた正確IDリクエストを破棄します

  • 正確なギルド、チャンネル、ロール、メンバー、機能の許可リストが各サーフェスを独立に制約します

  • すべてのギルドツールはダイレクトチャンネルとグループダイレクトチャンネルを拒否します。専用のプライベートメッセージツールはその代わりに、独立した正確な一般ユーザー許可リストと発信者が把握している1対1チャンネルIDを必要とし、プレーンテキストまたは制限付き静的Components V2のみをサポートし、すべてのメンションを抑制し、固定のアンチスパム制限を使用し、ディスカバリ、一括ターゲティング、インタラクティブコンポーネント、任意の埋め込みURL、Gatewayフィードを提供しません

  • Discordの名前、メッセージ、埋め込み、コンポーネント、ファイル名、URL、その他のリモートテキストは、命令ではなく信頼できないデータとして扱われます

  • Discordコンテンツは、明示的に要求された場合に一時的に返されることがありますが、コネクタによってキャッシュ、ジャーナル記録、エクスポート、永続化はされません

  • 新しい招待コードとURLは、発信者が選択した排他的なプライベートファイルを通じてのみ配信されます。MCP結果、ライフサイクル記録、エラー、ログ、テレメトリはベアラー資格を一切含みません

  • 受信ウェブフックの資格情報は、排他的な正確ID限定プライベートファイルにのみ保持されます。MCPはウェブフックIDとメッセージIDのみを受け付け、永続的なアクティビティ、受領記録、エラー、ログ、テレメトリは資格情報とコンテンツを含みません

  • エンタイトルメントの書き込みは別途スコープされます。テスト削除には作成証明が必要であり、消費時にはフルフィルメント参照ハッシュのみが保存されます

  • すべての重大な書き込みは、ドメイン固有の権限、鮮度、承認、監査、読み返し、不確実性のゲートを保持します

  • メッセージ削除は正確なメッセージIDのみを受け付け、すべての独立した削除ゲートを保持します

  • チャンネル削除には、1つの正確な許可リスト登録済みチャンネル、完全な依存関係と権限の証拠、不可逆的なコンテンツ喪失への明示的な同意、署名付きレビュー、より新しい完全なGateway不在証明が必要です。影響の見積もりにメッセージコンテンツを読み取ることは決してありません

  • ロール削除には、1つの正確な許可リスト登録済みかつ保持されていない標準ロール、完全な保持者・階層・権限・発見可能な依存関係の証拠、不可逆的なロール喪失への明示的な同意、署名付きレビュー、新鮮な不在証明と生存者保護の証明が必要です

  • ギルドのプルーニングには、別途の正確なギルド許可リスト、任意の正確なinclude-role許可リスト、Discordが候補IDを開示しないことへの明示的な同意、保護されたIDのロールシールド、要求および設定された上限の両方を下回る新鮮なネイティブ見積もり、署名付きレビュー、厳密な件数のみの結果証拠を伴う再試行されない1回のリクエストが必要です

  • ギルドインシデントアクションには、1つの正確な許可リスト登録済みギルド、既知のMANAGE_GUILD権限またはオーナー権限に関する完全な証拠、24時間以内の将来の期限、署名付きレビュー、1回の再試行されないスパース書き込み、正確な応答と新鮮な読み返しが必要です。保護の早期解除は破壊的として扱われます

  • 特権インテントの有効化は、厳格ポリシーがそのインテントの必須または推奨を証明する場合にのみ、Guild MembersまたはMessage Contentを受け付け、観測されたすべての非ターゲットアプリケーションフラグを保持し、Presence、無効化、一般的なアプリケーション編集、自動修復を除外します

一般的なレビュー付き書き込みシーケンスは次のとおりです。

exact request -> fresh keyed plan -> human review -> signed approval
             -> final fresh-plan match -> pending content-free evidence
             -> one non-retried write -> exact readback or quarantine

すでに最新のリクエストは、Discord操作がその証明を許可する場合、記録なしのノーオペレーションとなります。既知のクライアント拒否は失敗として確定します。トランスポート障害、サーバー障害、不正な成功応答、または読み返しの欠落は不確実であり、盲目的に再試行してはなりません。永続的クレームは、安全な受信証拠または明示的なオペレーター解決が続行可能な内容を証明するまで、影響を受ける正確なターゲットをコネクタプロセス間で隔離したままにします。

書き込みサーフェスを有効にする前に、完全な安全性モデルとセキュリティポリシーをお読みください。

信頼と検証

コマンド

証明する内容

Discordアクセス

discord-mcp catalog --check --json

正確な本番MCPインベントリ、スキーマ、アノテーション、ポリシー完了マニフェストとゼロ値カタログ証明、プランレビューアプリのバイト列と権限、固定実行ガード、安定した契約・安全性・アプリダイジェスト

なし

discord-mcp catalog --html FILE

スキーマ、ワークフローとリスクフィルター、完了ルート、アプリソース、指示、リソース、安全性ガイダンスを含む、その正確な合意済み契約の検索可能なスタンドアロンレンダリング

なし

discord-mcp preset show server-observer --json

推奨プリセットの正確な読み取り専用ツール、スコープ要件、インテント、ゼロ書き込み境界

なし

discord-mcp preset install server-observer --application-id ID --guild-id ID [--html FILE]

固定オリジンかつギルドロックされたボット認可プランと、正確なダイジェストとインストール後コマンドを備えた任意の資格情報不要のスタンドアロンチェックリスト

なし

discord-mcp config workbench ACTIVE --html FILE

検証済みのschema-v2ポリシー1件に対するプライベートなオフライン・インメモリエディタと明示的な候補ダウンロード。アクティブファイルへの書き込み権限や承認権限はありません

なし

discord-mcp config plan ACTIVE CANDIDATE --json

完全な候補ポリシー、正確な意味的変更、権限への影響、ツール公開範囲、警告、IDロック、新鮮なパス限定ダイジェスト

なし

discord-mcp config apply ACTIVE CANDIDATE --plan-digest DIGEST --confirm ACTIVE_NAME

古いファイルを拒否し、原子的に公開し、回復可能な以前のバージョンを保持する、正確で新鮮なローカルポリシー置換

なし

discord-mcp recipe show guild-builder --json

正確な追加機能、スコープ、ツールセット、権限、インテント、Gateway証拠、リスク契約

なし

discord-mcp recipe plan guild-builder FILE --guild-id ID --json

完全な提案ポリシー、正確な変更、要件、警告、ソース・パス・リクエスト・契約に紐付くダイジェスト

なし

discord-mcp activity --config FILE [--html FILE] [--json]

制限付きの現在の書き込みライフサイクル、置き換え済み履歴、正確なコンテンツなしの証拠、オペレーターの注意が必要な場合に警告ステータスを伴う相関した永続的クレーム

なし

discord-mcp doctor --config FILE

シークレットが利用可能になる前でも、ローカルNode.js、資格情報の利用可能性、IDピン、ポリシー、スコープ、ツールサーフェス、ロスレスの読み取り応答バジェット、Gateway、可観測性、書き込みゲートの診断

なし

discord-mcp doctor --config FILE --online

厳格ポリシー、固定されたアプリケーションとボットのID、インテントフラグ、制限付きギルドメンバーシップ

読み取り専用

discord-mcp smoke --config FILE

選択されたポリシーを通じた、起動されたstdioネゴシエーション、ディスカバリ、アノテーション、コネクタID

読み取り専用

npm run container:verify

固定ベースのビルド、非ルートのファイルシステムとプロセス制限、シークレットを含まないメタデータ、決定論的なカタログID、MCP動作、安全な資格情報失敗

なし

npm run container:index:verify

正確なマルチアーキテクチャインデックス、プラットフォーム構成とblob、プラットフォームごとの来歴(provenance)とSBOMレコード

公開イメージレジストリのみ

npm run pack:verify

再現可能なアーカイブ、正確なパッケージ内容、分離インストール、インストール済みCLI、決定論的なカタログ証拠とHTML、コンテンツなしのMCPハンドシェイク

なし

npm run security:check

依存関係の脆弱性、レジストリ署名、アテステーション

公開パッケージレジストリのみ

catalog --check --jsonは独立した比較用に設計されています。資格情報を必要とせず、周囲のコネクタ権限を無視し、完了IDを返さず、Discord操作を実行せず、Gatewayを開かず、テレメトリをエクスポートせず、アクティビティレコードを作成しません。一致する契約ダイジェストは、一致する正規化されたMCP指示、サーバー機能、ポリシー完了バインディング、ツールスキーマとアノテーション、プロンプト宣言、リソース宣言、テンプレート、安全性応答、プランレビューアプリ応答、実行ガードを識別します。

リリースワークフローは、ソースから候補を再ビルドし、それらを2回パックし、ライフサイクルスクリプトなしでインストールし、サポートされているNode.jsライン間で比較し、正確なバージョンのマルチアーキテクチャOCIイメージをビルドし、ケーパビリティもネットワークもない読み取り専用ルートファイルシステムでイメージをテストし、SPDX SBOMを生成し、署名付きの来歴(provenance)、SBOM、カタログアテステーションを保持します。リリースランブックには、人間が管理する公開ゲートと独立した検証経路が記載されています。

アーキテクチャ

stdioトランスポート、Discord RESTクライアント、スコープポリシー、ドメインサービス、レビュー付きプランニング、永続的な調整、アクティビティログ、可観測性、Gateway、MCPアダプタは分離されたままです。本番ではネイティブfetch、TypeScript ESM、そして小さく正確に固定された依存関係セットを使用します。

これにより、トランスポート、権限の証跡、ローカルオーソリティ、レビュー済み書き込み、永続化、およびMCPプレゼンテーションがそれぞれ独立してテスト可能に保たれます。新しい機能は、汎用的なDiscordディスパッチャを追加するのではなく、それらの境界に適合する必要があります。

ドキュメント

開発

変更についてはCONTRIBUTING.mdを、セットアップや運用者向けの質問についてはSUPPORT.mdを参照してください。デフォルトのテストは注入されたトランスポートを使用し、Discordに接続しません:

npm run metadata:check
npm run config:schema:check
npm run typecheck
npm test
npm run test:coverage
npm run build
npm run pack:verify
npm run container:verify
npm run container:index:verify
npm run security:check

ライブプローブは明示的であり、デフォルトでは読み取り専用です。デフォルトの検証コマンドはメッセージコンテンツを取得したり、Discord上で変更操作を実行したりしません。

ライセンス

AGPL-3.0-only

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Discord through the REST API and real-time events, supporting message management, user info, channel operations, and more with security controls.
    4 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables autonomous Discord server administration via natural language, allowing users to delegate tasks like channel/role creation, permission checks, and automations to an AI agent with safety gates and audit trails.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients to read, post to, and moderate a Discord server through the Discord REST API, with opt-in guardrails and dry-run safeguards.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI clients to read Discord channels, recent messages, and searchable history, then turn that evidence into freshness-aware team context, briefs, decision baselines, and signed checkpoint diffs through remote MCP and GPT Actions. It keeps Discord access read-only while supporting OAuth/Bearer authentication for multiple clients.
    Apache 2.0