Skip to main content
Glama
fmarcac

discord-mcp

by fmarcac

discord-mcp

Discordのデスクトップクライアントを起動したまま、そのクライアントを通じてDiscordを読み取り、操作できます。チャンネルメッセージ、ダイレクトメッセージ、グループチャット、スレッド、フォーラム投稿、検索。

仕組み

DiscordのデスクトップアプリはElectron製です。--remote-debugging-port を付けて起動すると、そのレンダラーにはChrome DevTools Protocol経由で到達できます。discord-mcpはそのレンダラーに接続し、クライアントが自身のAPI呼び出しで既に送信しているヘッダー群を観察し、同じページの内部からリクエストを発行します。

したがって、すべてのリクエストは実際のクライアントプロセスから、実際のセッションで、実際のフィンガープリントとともに送信されます。検出される2番目のクライアントは存在せず、トークンがDiscordのストレージから読み出されることもありません。トークンは、クライアントが既に送信しているリクエスト上でのみ観察されるのです。

Related MCP server: discord-user-mcp

使用前に読んでください

これはDiscordの利用規約に違反します。 セッションの入手方法に関係なく、ユーザーアカウントの自動化は禁止されており、第11条はクライアントの改変を別途禁止しています。

実際のリスクは、VencordのようなクライアントMODと同じ範疇にあります。Discordはこれらを公に優先度を下げており、2026年現在、確認されたBANはありません。これは非執行のパターンであり、約束ではありません。リスクは読み取りではなく書き込みに集中しています。

ボットトークンであれば完全に準拠しますが、ボットがあなたのダイレクトメッセージを読むことは決してできません。その制限こそが、このプロジェクトが存在するすべての理由です。

セットアップ

npm install
npm run build

Discordは単一インスタンスのロックを保持しているため、デバッグフラグは起動時のみ有効になります。先に実行中のクライアントを終了してください。

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 read

doctor は、あなたのアカウント、ギルド数、ダイレクトメッセージ数を表示するはずです。

最初の接続ではレンダラーが一度だけリロードされます。アイドル状態のクライアントは、ヘッダーを観察するための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です。

ツール

種類

目的

guild_list

読み取り

このアカウントが所属するギルド

guild_channels

読み取り

1つのギルドのチャンネル

guild_roles

読み取り

ギルドで定義されているロール

channel_get

読み取り

チャンネルまたはスレッドの説明

channel_history

読み取り

メッセージの1ページ。双方向にページング可能

channel_pins

読み取り

固定されたメッセージ

message_get

読み取り

IDによる1件のメッセージ

dm_list

読み取り

ダイレクトおよびグループ会話

thread_list

読み取り

チャンネルのオープンスレッド。フォーラム投稿はこれで読み取る

thread_archived

読み取り

アーカイブされたスレッド。静かなフォーラム投稿はここにたどり着く

search_guild

読み取り

1つのギルドを検索

search_channel

読み取り

1つのチャンネルまたは会話を検索

message_send

書き込み

メッセージまたは返信を送信

message_edit

書き込み

このアカウントが送信したメッセージを編集

message_react

書き込み

リアクションを追加

message_ack

書き込み

メッセージまでチャンネルを既読にする

thread_create

書き込み

スレッドを開始。既存のメッセージからも可能

forum_post

書き込み

フォーラム投稿を最初のメッセージ付きで作成

フォーラムの読み取りは、フォーラムチャンネルのスレッドを一覧表示することで機能します。各投稿には、それを開始したメッセージと適用されたタグが付いて返されるため、追加の呼び出しなしで投稿を読むことができます。

破壊的ツール

さらに7つの操作が存在しますが、それらのカテゴリが有効化されない限り、一切登録されません。ツール一覧には表示されないため、どのホストもモデルも到達できません。

ツール

カテゴリ

message_delete

messages

thread_delete

threads

channel_delete

channels

guild_leave

guilds

member_kick, member_ban

members

member_roles

roles

必要なものだけ有効にしてください:

{ "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/ にあります。

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    6
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables interaction with Discord through natural language, including reading and sending messages, managing servers, and user actions.

View all related MCP servers

Related MCP Connectors

  • Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.

  • Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fmarcac/discord-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server