discord-mcp
discord-mcp
Discordのデスクトップクライアントを起動したまま、そのクライアントを通じてDiscordを読み取り、操作できます。チャンネルメッセージ、ダイレクトメッセージ、グループチャット、スレッド、フォーラム投稿、検索。
仕組み
DiscordのデスクトップアプリはElectron製です。--remote-debugging-port を付けて起動すると、そのレンダラーにはChrome DevTools Protocol経由で到達できます。discord-mcpはそのレンダラーに接続し、クライアントが自身のAPI呼び出しで既に送信しているヘッダー群を観察し、同じページの内部からリクエストを発行します。
したがって、すべてのリクエストは実際のクライアントプロセスから、実際のセッションで、実際のフィンガープリントとともに送信されます。検出される2番目のクライアントは存在せず、トークンがDiscordのストレージから読み出されることもありません。トークンは、クライアントが既に送信しているリクエスト上でのみ観察されるのです。
Related MCP server: Discord MCP Bridge
使用前に読んでください
これはDiscordの利用規約に違反します。 セッションの入手方法に関係なく、ユーザーアカウントの自動化は禁止されており、第11条はクライアントの改変を別途禁止しています。
実際のリスクは、VencordのようなクライアントMODと同じ範疇にあります。Discordはこれらを公に優先度を下げており、2026年現在、確認されたBANはありません。これは非執行のパターンであり、約束ではありません。リスクは読み取りではなく書き込みに集中しています。
ボットトークンであれば完全に準拠しますが、ボットがあなたのダイレクトメッセージを読むことは決してできません。その制限こそが、このプロジェクトが存在するすべての理由です。
セットアップ
npm install
npm run buildDiscordは単一インスタンスのロックを保持しているため、デバッグフラグは起動時のみ有効になります。先に実行中のクライアントを終了してください。
node dist/cli/main.js launch # starts Discord on a random loopback port
node dist/cli/main.js doctor # verifies attach, capture and a real readdoctor は、あなたのアカウント、ギルド数、ダイレクトメッセージ数を表示するはずです。
最初の接続ではレンダラーが一度だけリロードされます。アイドル状態のクライアントは、ヘッダーを観察するためのRESTリクエストを行わないためです。その後、キャプチャはポートごとに12時間、~/.local/state/discord-mcp/headers.json に記憶されるため、以降の実行は約1秒で接続され、クライアントには触れません。
MCPクライアントへの接続
{
"mcpServers": {
"discord": {
"command": "node",
"args": ["/path/to/discord-mcp/dist/cli/main.js", "serve"]
}
}
}ツール
デフォルトで18のツールが公開されます。読み取り12、書き込み6です。
ツール | 種類 | 目的 |
| 読み取り | このアカウントが所属するギルド |
| 読み取り | 1つのギルドのチャンネル |
| 読み取り | ギルドで定義されているロール |
| 読み取り | チャンネルまたはスレッドの説明 |
| 読み取り | メッセージの1ページ。双方向にページング可能 |
| 読み取り | 固定されたメッセージ |
| 読み取り | IDによる1件のメッセージ |
| 読み取り | ダイレクトおよびグループ会話 |
| 読み取り | チャンネルのオープンスレッド。フォーラム投稿はこれで読み取る |
| 読み取り | アーカイブされたスレッド。静かなフォーラム投稿はここにたどり着く |
| 読み取り | 1つのギルドを検索 |
| 読み取り | 1つのチャンネルまたは会話を検索 |
| 書き込み | メッセージまたは返信を送信 |
| 書き込み | このアカウントが送信したメッセージを編集 |
| 書き込み | リアクションを追加 |
| 書き込み | メッセージまでチャンネルを既読にする |
| 書き込み | スレッドを開始。既存のメッセージからも可能 |
| 書き込み | フォーラム投稿を最初のメッセージ付きで作成 |
フォーラムの読み取りは、フォーラムチャンネルのスレッドを一覧表示することで機能します。各投稿には、それを開始したメッセージと適用されたタグが付いて返されるため、追加の呼び出しなしで投稿を読むことができます。
破壊的ツール
さらに7つの操作が存在しますが、それらのカテゴリが有効化されない限り、一切登録されません。ツール一覧には表示されないため、どのホストもモデルも到達できません。
ツール | カテゴリ |
|
|
|
|
|
|
|
|
|
|
|
|
必要なものだけ有効にしてください:
{ "destructive": ["messages", "threads"] }node dist/cli/main.js serve --config /path/to/policy.jsonこれが要となる制御です。ホストの承認プロンプトは第二の層です。ホストの挙動はさまざまで、自動的に承認するホストもあるためです。各破壊的ツールは、作用した対象を解決して返すため、結果はスノーフレークを単に返すのではなく、チャンネル名を示します。
セキュリティ
DevToolsポートを開いたままにすることは、ローカルでの認証バイパスになります。あなたとして実行されている任意のプロセスが、二要素認証も含めて、セッションを操作できるからです。discord-mcpはループバックのみにバインドし、デフォルトの9222ではなくランダムな高番号ポートを使用します。使用していない間は、ポートを開いたままクライアントを実行したままにしないでください。
ヘッダーキャッシュには有効なトークンが保持されます。 キャプチャを再利用するということは、それを保持するということです。そのため、~/.local/state/discord-mcp/headers.json には、期限が切れるまであなたの Authorization ヘッダーが含まれます。これは所有者のみ、モード 0600 で書き込まれ、その隣にある起動状態も同様です。新しいキャプチャを強制するにはファイルを削除してください:
rm ~/.local/state/discord-mcp/headers.json毎回キャプチャしてトークンを一切保存しないほうを選ぶなら、キャッシュパスなしで実行してください。代償として、接続のたびにレンダラーのリロードが発生します。
レイアウト
src/attach/ CDP connection, target selection, launch, state
src/bridge/ header capture, request execution, rate limiting
src/api/ typed wrappers over Discord REST v9
src/normalize/ reduce Discord's wire format to what a reader needs
src/policy/ operation tiers and the destructive gate
src/tools/ MCP tool registration
src/cli/ launch, doctor, serve依存関係は下方向にのみ発生します。normalize/ と policy/ は純粋で、何にも依存しません。テストスイートの大部分はここにあります。
npm test # 152 tests, no Discord required
npm run typecheckブリッジを形作ったSpike 0の調査結果を含む設計ドキュメントは、docs/superpowers/specs/ にあります。
This server cannot be deployed
Maintenance
Related MCP Connectors
Control your Discord community: send/read messages, manage channels and forums, and handle webhook…
Connect a Discord bot (bot token from the developer portal) to read/send messages, list guilds and c
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Discord using personal user tokens instead of bot applications, allowing for seamless message management and server exploration. It provides tools for reading history, sending messages, and searching across channels and DMs directly through MCP-compatible clients.10MIT
- FlicenseNot gradedqualityCmaintenanceEnables local AI agents to securely search and read Discord messages and channels visible to the current client, without requiring a bot or user token.-
- AlicenseAqualityAmaintenanceEnables AI assistants to read and control a local Discord desktop client, including viewing channels and messages, managing voice calls and volumes, and setting Rich Presence.91MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to control a logged-in Discord account through 70+ tools: browsing guilds and channels, sending and reacting to messages, moderating members, managing channels, roles, emojis, and webhooks, plus searching and analyzing captured message history stored in SQLite. Authenticates using tokens already cached by the local Discord client, requiring no bot account or manual token setup.154 npmMIT