mcpField
D
Discord

Discord

ローカル
github.comコミュニケーション05 日前に更新

Discord について

discord-mcpは、LLMやMCPクライアントからDiscordを管理するMCPサーバーで、メッセージ、モデレーション、チャンネル、ロールなど168のツールを備えています。リッチメッセージや再起動後も残るロールメニューに対応し、URL取得の保護機能とstdio・HTTPの通信方式を備えています。

主な機能

  1. 01メッセージ、チャンネル、ロール、スレッドの管理
  2. 02サーバーのモデレーションとAutoMod管理
  3. 03リッチメッセージ、投票、ファイルの作成
  4. 04再起動後も残るロールメニュー
  5. 05stdio、HTTP、Unixソケットの通信方式

活用シーン

  1. 01返信、埋め込み、投票、ファイルの投稿
  2. 02チャンネル権限とサーバーロールの管理
  3. 03モデレーションキューとAutoModの確認
  4. 04永続的なロール選択インタラクションの提供

MCP 対応

MCPクライアントにDiscord管理用の168のツールを提供します。stdioとHTTPに対応し、HTTPではUnixソケットでの待ち受けも可能です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"willuhmjs-discord": {
"command": "npx",
"args": [
"-y",
"@willuhmjs/discord-mcp"
],
"env": {
"DISCORD_TOKEN": "<DISCORD_TOKEN>",
"DISCORD_GUILD_ID": "<DISCORD_GUILD_ID>",
"ENABLE_MEMBERS_INTENT": "<ENABLE_MEMBERS_INTENT>"
}
}
}
}
起動コマンドnpx -y @willuhmjs/discord-mcp
設定が必要な環境変数
DISCORD_TOKENシークレットDiscord bot token from https://discord.com/developers/applications
DISCORD_GUILD_IDDefault server (guild) ID used when a tool call omits guildId
ENABLE_MEMBERS_INTENTSet to 1 to enable the privileged Server Members intent (needed for member-list tools)

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

パッケージ
npm@willuhmjs/discord-mcp1.1.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

discord-mcp

npm CI License: MIT

LLM が Discord サーバーを操作できる MCP サーバーです。メッセージ、モデレーション、チャンネル、 ロール、スレッド、イベント、招待、Webhook、AutoMod などに対応する 168 個のツールを備えています。Claude、Cursor、VS Code、その他の あらゆる MCP クライアントで動作します。

  • リッチメッセージ:埋め込み、Components V2、投票、ファイル、返信に対応しています。Discord に送信する前に検証し、問題のあるフィールドを示すエラーを返します。
  • インタラクション:再起動後も維持されるロールメニューに加え、誰が何をクリックしたかのログを記録します。
  • デフォルトで安全:127.0.0.1 にバインドし、URL フェッチには SSRF 対策を適用します。Webhook トークンを応答に含めることはありません。

クイックスタート

  1. 開発者ポータルでボットを作成し、Discord サーバーに招待して、Message Content インテント(Bot → Privileged Gateway Intents)を有効にします。
  2. MCP クライアントの設定(mcp.json、claude_desktop_config.json、.cursor/mcp.json など)に以下を追加します。
{
  "mcpServers": {
    "discord": {
      "command": "npx",
      "args": ["-y", "@willuhmjs/discord-mcp", "--stdio"],
      "env": {
        "DISCORD_TOKEN": "your-bot-token",
        "DISCORD_GUILD_ID": "your-server-id"
      }
    }
  }
}

VS Code では "mcpServers" の代わりに "servers" を使用します。Windows でクライアントが npx を見つけられない場合は、"command": "cmd" と "args": ["/c", "npx", "-y", "@willuhmjs/discord-mcp", "--stdio"] を使用してください。

Claude Code — 1 つのコマンドで実行できます。

claude mcp add discord -e DISCORD_TOKEN=... -e DISCORD_GUILD_ID=... -- npx -y @willuhmjs/discord-mcp --stdio

Docker — http://127.0.0.1:8085/mcp で長時間稼働する HTTP サーバーを起動します。

docker run --rm -e DISCORD_TOKEN=... -p 127.0.0.1:8085:8085 ghcr.io/willuhmjs/discord-mcp

npx の実行には Node.js 22 以降が必要です。

設定

変数デフォルト意味
DISCORD_TOKEN—(必須)ボットのトークンです。
DISCORD_GUILD_ID—guildId が省略された場合にツールが使用するデフォルトのサーバーです。
ENABLE_MEMBERS_INTENToff特権 Server Members インテントを有効にします(ポータルでも有効にしてください)。メンバーリスト関連のツールに必要です。
MCP_TRANSPORThttp標準入力/標準出力を使用する場合は stdio を指定します。--stdio フラグでも同じ設定になります。
HOST / PORT127.0.0.1 / 8085HTTP のバインドアドレスとポートです。
MCP_SOCKET—HOST:PORT の代わりに Unix ソケットで待ち受けます(HTTP モードのみ)。

HTTP モードでは、POST /mcp が MCP を提供し(Mcp-Session-Id を使ったステートフルセッション)、ボットの接続後に GET /health が 200 を返します。

HTTP エンドポイントを非公開に保つ

HTTP エンドポイントには認証がありません。接続できる人は誰でも、ボットとしてすべてのツールを使用できます。ループバックまたはプライベートネットワーク上で運用してください。共有マシンでは、他のアカウントからもループバックポートに接続できるため、自分だけが開ける Unix ソケットを使用してください。

mkdir -m 700 ~/.mcp
MCP_SOCKET=~/.mcp/discord.sock DISCORD_TOKEN=... npx @willuhmjs/discord-mcp
curl --unix-socket ~/.mcp/discord.sock http://localhost/health

ソケットはモード 600 で作成されます。NFS などのネットワークファイルシステムは使用しないでください。Docker イメージは 0.0.0.0 にバインドするため、コンテナは内部ネットワーク上に置いてください。stdio モードではネットワークに一切公開されません。

ツール

各ツールとそのパラメーター、必要な Discord 権限は、規約(文字列 ID、JSON 文字列ペイロード、監査ログ用の reason)およびメッセージ/コンポーネントの形式とともに、 docs/TOOLS.md に記載されています。

セキュリティ

  • ツールが取得する URL(絵文字、ステッカー、ファイル、アバター)は、すべて保護されたフェッチャーを経由します。http/https のみを許可し、リクエストの前とリダイレクトのたびに、プライベート/ループバック/メタデータ IP をブロックします。また、サイズと時間に制限を設けています。
  • Webhook トークンは認証情報です。create_webhook は URL を一度だけ返し、一覧/取得ツールでは表示しません。
  • サーバーのファイルシステムを読み取るツールはありません。

開発

npm ci
npm run build       # tsc -> dist/
npm test            # vitest, no Discord token needed
npm run typecheck

コントラクトテストにより、すべてのツール名とパラメーターセットが tests/fixtures/tool-contract.json と一致するよう検証されます。 TESTING.md は、実際のテストサーバーで実行するための手動チェックリストです。

リリースは自動化されています。Conventional Commits に従った main へのコミット(feat:、fix:、feat!:)によってリリース PR が作成されます。これをマージすると、npm、MCP Registry、GHCR に公開されます。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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