discord-mcp
Discord MCPサーバー
90以上のツールを備えた軽量なマルチギルド対応Discord MCPサーバー
Claude Desktop、Claude Code、Cursor、VS Code Copilot、またはMCP互換クライアントからDiscordサーバー全体を管理できます。 メッセージ、チャンネル、ロール、権限、モデレーション、フォーラム、Webhookなどを自然言語で操作可能です。
なぜこれを使うのか?
90以上のツール — メッセージ、チャンネル、ロール、権限、モデレーション、フォーラム、Webhook、スケジュールイベント、招待、DM、埋め込みなど
マルチギルド対応 — 複数のサーバーで動作し、
GUILD_IDによる制限はありません軽量 — TypeScript + Node.js、約25kBのパッケージ、約73MBのDockerイメージ(Javaベースの代替品は400MB以上)
モジュール式 — クリーンなアーキテクチャで、新しいツールの追加が容易
2つのインストール方法 — npmまたはDockerから選択可能
クイックスタート
MCPクライアントの設定に以下を追加し、YOUR_TOKEN_HEREをボットトークンに置き換えてください:
{
"mcpServers": {
"discord": {
"command": "npx",
"args": ["-y", "@pasympa/discord-mcp"],
"env": {
"DISCORD_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}インストールは不要です — npxがすべて処理します。
ボットをまだお持ちでないですか?Discordボットの作成をご覧ください。
設定
上記の設定をclaude_desktop_config.jsonに追加してください:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
保存後、Claude Desktopを再起動してください。
claude mcp add discord -e DISCORD_TOKEN=YOUR_TOKEN_HERE -- npx -y @pasympa/discord-mcp上記の設定を~/.cursor/mcp.jsonに追加してください。詳細はCursor MCPドキュメントを参照してください。
.vscode/mcp.jsonに追加してください:
{
"inputs": [
{
"type": "promptString",
"id": "discord-token",
"description": "Discord Bot Token",
"password": true
}
],
"servers": {
"discord": {
"command": "npx",
"args": ["-y", "@pasympa/discord-mcp"],
"env": {
"DISCORD_TOKEN": "${input:discord-token}"
}
}
}
}詳細はVS Code MCPドキュメントを参照してください。
{
"mcpServers": {
"discord": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "DISCORD_TOKEN=YOUR_TOKEN_HERE",
"pasympa/discord-mcp:latest"
]
}
}
}git clone https://github.com/PaSympa/discord-mcp
cd discord-mcp
npm install && npm run build{
"mcpServers": {
"discord": {
"command": "node",
"args": ["/absolute/path/to/discord-mcp/dist/index.js"],
"env": {
"DISCORD_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}MCP設定にトークンを渡す代わりに、プロジェクトルートに.envファイルを作成します:
DISCORD_TOKEN=YOUR_TOKEN_HEREサーバーはdotenvを介して自動的に.envを読み込みます。
Discordボットの作成
New Application > 名前を付ける
Botタブ > Reset Token > トークンをコピー
Privileged Gateway Intentsを有効にする:
Server Members Intent
Message Content Intent
OAuth2 > URL Generator:
Scopes:
botPermissions:
Send Messages,Read Message History,Manage Channels,Manage Roles,Kick Members,Ban Members,Moderate Members,View Audit Log,Manage Messages,Manage Threads,Add Reactions,Manage Guild,Manage Webhooks,Manage Events,Create Instant Invite
生成されたURLをコピーし、ボットをサーバーに招待する
利用可能なツール (91)
発見とナビゲーション
ツール | 説明 |
| ボットが接続しているすべてのサーバーを一覧表示 |
| 詳細なギルド情報を取得(名前、メンバー、チャンネル、ロール、ブースト) |
| カテゴリ別にグループ化されたギルド内の全チャンネルを一覧表示 |
| 名前でチャンネルを検索(部分一致) |
メッセージ (18ツール)
ツール | 説明 |
| テキストチャンネルから最新のN件のメッセージを読み取る |
| プレーンテキストメッセージを送信 |
| 特定のメッセージに返信する |
| ボットが送信したメッセージを編集 |
| 特定のメッセージを削除 |
| メッセージにリアクション絵文字を追加 |
| リアクションを削除(すべて、絵文字ごと、またはユーザーごと) |
| 特定の絵文字でリアクションしたユーザーを一覧表示 |
| メッセージから、または単独でスレッドを作成 |
| 複数のメッセージを一括削除 (2-100) |
| すべてのオプションを備えたリッチ埋め込みを送信 |
| ボットが以前に送信した埋め込みを編集 |
| 1つのメッセージで最大10個の埋め込みを送信 |
| メッセージをピン留め/解除 |
| チャンネル内のすべてのピン留めメッセージを一覧表示 |
| キーワードでメッセージを検索 (最新100件) |
| アナウンスチャンネルのフォロワーにメッセージを公開 |
| メッセージを別のチャンネルに転送 |
チャンネル (8ツール)
ツール | 説明 |
| テキスト、ボイスチャンネル、またはカテゴリを作成 |
| チャンネルを削除 |
| 名前、トピック、低速モード、NSFWフラグを編集 |
| チャンネルをカテゴリ内に移動/外へ移動 |
| 権限設定を含めてチャンネルを複製 |
| カテゴリ内での表示順序を設定 |
| アナウンスチャンネルをフォロー |
| 親カテゴリと権限を同期 |
チャンネル権限 (6ツール)
ツール | 説明 |
| チャンネル上のすべての権限オーバーライドを一覧表示 |
| チャンネル上のロールに対して権限を許可/拒否 |
| チャンネル上のメンバーに対して権限を許可/拒否 |
| すべてのオーバーライドを削除(継承状態にリセット) |
| あるチャンネルから別のチャンネルへオーバーライドをコピー |
| すべてのチャンネルに対する完全な権限監査 |
メンバー (11ツール)
ツール | 説明 |
| ロールを含むギルドメンバーを一覧表示 |
| 詳細なメンバー情報(ロール、権限、参加日) |
| ユーザー名またはニックネームでメンバーを検索 |
| メンバーのニックネームを設定またはクリア |
| メンバーをキック |
| メンバーをBAN(オプションで最近のメッセージを削除) |
| ユーザーのBANを解除 |
| 複数のユーザーを一括BAN(レイド対策) |
| BANされたユーザーを一覧表示 |
| メンバーをタイムアウト(0で解除) |
| 非アクティブなメンバーを削除(ドライラン機能付き) |
ロール (9ツール)
ツール | 説明 |
| 権限とメンバー数を含む全ロールを一覧表示 |
| 新しいロールを作成 |
| ロールを編集(名前、色、権限、表示設定、メンション可否) |
| ロールを削除 |
| メンバーにロールを付与 |
| メンバーからロールを剥奪 |
| 特定のロールを持つ全メンバーを一覧表示 |
| 階層内でのロールの順序を変更 |
| ロールにカスタムアイコンまたはUnicode絵文字を設定 |
フォーラム (10ツール)
ツール | 説明 |
| ギルド内の全フォーラムチャンネルを一覧表示 |
| 新しいフォーラムチャンネルを作成 |
| フォーラム内に投稿/スレッドを作成 |
| 投稿の詳細とメッセージを取得 |
| スレッドを一覧表示(アクティブ + アーカイブ済み) |
| フォーラム投稿に返信 |
| フォーラムスレッドを削除 |
| 利用可能なタグを取得 |
| フォーラムのタグを設定/更新 |
| タイトル、アーカイブ状態、ロック状態、タグを更新 |
Webhooks (8ツール)
ツール | 説明 |
| チャンネルにWebhookを作成 |
| Webhook経由で送信(カスタムユーザー名/アバター、埋め込み) |
| Webhookの名前、アバター、またはチャンネルを編集 |
| Webhookを削除 |
| チャンネルまたはギルドのWebhookを一覧表示 |
| Webhookが送信したメッセージを編集 |
| Webhookが送信したメッセージを削除 |
| 特定のWebhookメッセージを取得 |
スケジュールイベント (7ツール)
ツール | 説明 |
| ギルド内の全スケジュールイベントを一覧表示 |
| スケジュールイベントの詳細情報を取得 |
| ボイス、ステージ、または外部イベントを作成 |
| 既存のスケジュールイベントを編集 |
| スケジュールイベントを削除 |
| 「興味あり」としたユーザーを取得 |
| イベントにリンクされた招待を作成 |
ダイレクトメッセージ
ツール | 説明 |
| ユーザーIDを指定してダイレクトメッセージを送信 |
招待 (5ツール)
ツール | 説明 |
| ギルド内の全アクティブな招待を一覧表示 |
| 特定のチャンネルの招待を一覧表示 |
| コードで招待の詳細を取得 |
| チャンネルの招待リンクを作成 |
| 招待を取り消す |
モデレーションとスクリーニング
ツール | 説明 |
| ギルドの監査ログを取得 |
| メンバーシップスクリーニングフォームを取得 |
| 新規メンバー用のスクリーニングルールを更新 |
統計
ツール | 説明 |
| サーバー統計: メンバー数、チャンネル数、ロール数、ブーストレベル |
使用例
"List all servers the bot is in"
"Read the last 10 messages in #general"
"Send 'Hello everyone!' to the announcements channel"
"Create a forum channel called 'feedback' with tags Bug, Feature, Question"
"Show the full permission audit for the server"
"Create a webhook on #notifications and send a test message"
"Ban user 112233445566 and delete their messages from the last 3 days"
"Create an event called 'Game Night' for next Friday at 8pm"
"List all upcoming events in the server"
"Create a permanent invite for #general"
"List all active invites and delete expired ones"
"Send a DM to user 112233445566 saying 'Your build passed!'"
"Search for members named 'john'"
"List all banned users in the server"
"Show all pinned messages in #general"
"Forward that message to #announcements"Discord IDの検索
Discordで開発者モードを有効にします:
設定 > 詳細設定 > 開発者モード
その後、サーバー、チャンネル、またはユーザーを右クリック > IDをコピー。
プロジェクト構造
discord-mcp/
├── src/
│ ├── index.ts ← Entry point (MCP server + transport)
│ ├── client.ts ← Discord client + shared helpers
│ ├── constants.ts ← Shared constants (limits, defaults)
│ └── tools/
│ ├── index.ts ← Tool registry
│ ├── types.ts ← Shared TypeScript interfaces
│ ├── discovery.ts ← Guild/channel discovery
│ ├── messages.ts ← Message CRUD, reactions, threads, embeds
│ ├── channels.ts ← Channel management
│ ├── permissions.ts ← Permission overwrites
│ ├── members.ts ← Member management
│ ├── roles.ts ← Role CRUD and assignment
│ ├── moderation.ts ← Audit log
│ ├── screening.ts ← Membership screening
│ ├── stats.ts ← Server statistics
│ ├── forums.ts ← Forum channels, posts, tags
│ ├── webhooks.ts ← Webhook management
│ ├── scheduledEvents.ts ← Scheduled events
│ ├── invites.ts ← Invite management
│ └── dm.ts ← Direct messages
├── .github/workflows/ ← CI/CD (build check + auto release)
├── Dockerfile
├── .dockerignore
├── .env.example
├── package.json
├── tsconfig.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── SECURITY.md
└── README.md新しいツールの追加
src/tools/に新しいファイルを作成 (例:events.ts)definitions(ツールスキーマ) とhandle()(ツールロジック) をエクスポートsrc/tools/index.tsのmodules配列にインポートして追加
セキュリティ
DiscordトークンをGitにコミットしないでください
環境変数または
.envファイル(バージョン管理対象外)を使用してくださいボットには必要な権限のみを付与してください
貢献
貢献を歓迎します!
リポジトリをフォーク
フィーチャーブランチを作成 (
git checkout -b feature/my-feature)モジュール構造に従う — 新しいツールの追加を参照
変更をコミットし、プルリクエストを作成
ライセンス
MIT — 詳細はLICENSEを参照してください。
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/PaSympa/discord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server