discord-automation について
discord-automationは、Rube MCPとComposioのDiscordツールキットでDiscord操作を自動化するスキルです。サーバー運用に関わるメッセージ、ロール、Webhook、リアクションを扱います。
主な機能
- 01チャンネルやDMへのメッセージ送信
- 02ボットが送信したメッセージの編集
- 03ロールの作成、付与、削除
- 04Webhookの作成と実行
- 05メッセージのリアクション確認・削除
活用シーン
- 01Discordチャンネルへの更新投稿
- 02ユーザーへのダイレクトメッセージ送信
- 03サーバーメンバーのロール管理
- 04Webhookによる連携メッセージの投稿
MCP 対応
Rube MCP経由でComposioのDiscordおよびDiscordbotツールキットを呼び出します。前者はユーザー操作、後者はボット操作に使います。実行前に該当する接続を確立し、最新のツールスキーマを取得します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill discord-automationインストール後、Claude Code で/discord-automationを入力して読み込まれたか確認します。
詳細
Rube MCP による Discord の自動化
Rube MCP を通じて、Composio の Discord/Discordbot ツールキットを使用し、Discord の操作を自動化します。
ツールキットのドキュメント: composio.dev/toolkits/discord
前提条件
- Rube MCP が接続されている必要があります(RUBE_SEARCH_TOOLS が利用可能)
RUBE_MANAGE_CONNECTIONSを通じた有効な Discord 接続が必要です。ツールキットはdiscordとdiscordbotです- 現在のツールスキーマを取得するため、必ず最初に
RUBE_SEARCH_TOOLSを呼び出してください
セットアップ
Rube MCP を入手する: クライアントの設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確認します- ボット操作にはツールキット
discordbot、ユーザー操作にはdiscordを指定してRUBE_MANAGE_CONNECTIONSを呼び出します - 接続が ACTIVE でない場合は、返された認証リンクに従って Discord 認証を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
主なワークフロー
1. メッセージを送信する
使用する場面: ユーザーがチャンネルまたは DM にメッセージを送信したい場合
ツールの順序:
DISCORD_LIST_MY_GUILDS- ボットが参加しているギルドを一覧表示します [前提条件]DISCORDBOT_LIST_GUILD_CHANNELS- ギルド内のチャンネルを一覧表示します [前提条件]DISCORDBOT_CREATE_MESSAGE- メッセージを送信します [必須]DISCORDBOT_UPDATE_MESSAGE- 送信済みのメッセージを編集します [任意]
主なパラメーター:
channel_id: チャンネルのスノーフレーク IDcontent: メッセージ本文(最大 2000 文字)embeds: リッチコンテンツ用の埋め込みオブジェクトの配列guild_id: チャンネル一覧取得用のギルド ID
注意点:
- ボットにはチャンネルで SEND_MESSAGES 権限が必要です
- 高頻度の送信はルートごとのレート制限に達する場合があります。Retry-After ヘッダーに従ってください
- 編集できるのは、同じボットが送信したメッセージのみです
2. ダイレクトメッセージを送信する
使用する場面: ユーザーが Discord ユーザーに DM を送りたい場合
ツールの順序:
DISCORDBOT_CREATE_DM- DM チャンネルを作成または取得します [必須]DISCORDBOT_CREATE_MESSAGE- DM チャンネルにメッセージを送信します [必須]
主なパラメーター:
recipient_id: DM の宛先となるユーザーのスノーフレーク IDchannel_id: CREATE_DM から取得した DM チャンネル ID
注意点:
- DM が無効になっているユーザーや、ボットをブロックしているユーザーには DM を送信できません
- 既存の DM チャンネルがある場合、CREATE_DM はそのチャンネルを返します
3. ロールを管理する
使用する場面: ユーザーがロールを作成、割り当て、または削除したい場合
ツールの順序:
DISCORDBOT_CREATE_GUILD_ROLE- 新しいロールを作成します [任意]DISCORDBOT_ADD_GUILD_MEMBER_ROLE- メンバーにロールを割り当てます [任意]DISCORDBOT_DELETE_GUILD_ROLE- ロールを削除します [任意]DISCORDBOT_GET_GUILD_MEMBER- メンバーの詳細を取得します [任意]DISCORDBOT_UPDATE_GUILD_MEMBER- メンバー情報(ロール、ニックネームなど)を更新します [任意]
主なパラメーター:
guild_id: ギルドのスノーフレーク IDuser_id: ユーザーのスノーフレーク IDrole_id: ロールのスノーフレーク IDname: ロール名permissions: ビット単位の権限値color: RGB カラーの整数値
注意点:
- ロールの割り当てには MANAGE_ROLES 権限が必要です
- 対象のロールは、ボットの最高位のロールよりも下位である必要があります
- DELETE を実行すると、すべてのメンバーからロールが完全に削除されます
4. Webhook を管理する
使用する場面: ユーザーが外部連携用の Webhook を作成または使用したい場合
ツールの順序:
DISCORDBOT_GET_GUILD_WEBHOOKS/DISCORDBOT_LIST_CHANNEL_WEBHOOKS- Webhook を一覧表示します [任意]DISCORDBOT_CREATE_WEBHOOK- 新しい Webhook を作成します [任意]DISCORDBOT_EXECUTE_WEBHOOK- Webhook 経由でメッセージを送信します [任意]DISCORDBOT_UPDATE_WEBHOOK- Webhook の設定を更新します [任意]
主なパラメーター:
webhook_id: Webhook IDwebhook_token: Webhook の秘密トークンchannel_id: Webhook の作成先チャンネルname: Webhook 名content/embeds: 実行時に送信するメッセージの内容
注意点:
- Webhook トークンは秘密情報です。安全に取り扱ってください
- Webhook では、メッセージごとにカスタムのユーザー名とアバターを指定して投稿できます
- 作成には MANAGE_WEBHOOKS 権限が必要です
5. リアクションを管理する
使用するタイミング:ユーザーがメッセージのリアクションを表示または管理したい場合
ツールの順序:
DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI- リアクションしたユーザーを一覧表示します[任意]DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS- すべてのリアクションを削除します[任意]DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI- 特定の絵文字のリアクションを削除します[任意]DISCORDBOT_DELETE_USER_MESSAGE_REACTION- 特定のユーザーのリアクションを削除します[任意]
主なパラメーター:
channel_id:チャンネル IDmessage_id:メッセージの Snowflake IDemoji_name:URL エンコードされた絵文字、またはカスタム絵文字のname:iduser_id:特定のリアクションを削除するユーザー ID
注意点:
- Unicode 絵文字は URL エンコードする必要があります(例:親指を立てた絵文字の場合は「%F0%9F%91%8D」)
- カスタム絵文字には
name:id形式を使用します - DELETE_ALL には MANAGE_MESSAGES 権限が必要です
よく使われるパターン
Snowflake ID
Discord では、すべてのエンティティに Snowflake ID(文字列形式の 64 ビット整数)を使用します:
- ギルド、チャンネル、ユーザー、ロール、メッセージ、Webhook
権限ビットフィールド
権限はビットごとの OR を使って組み合わせます:
- SEND_MESSAGES = 0x800
- MANAGE_ROLES = 0x10000000
- MANAGE_MESSAGES = 0x2000
- ADMINISTRATOR = 0x8
ページネーション
- ほとんどの一覧エンドポイントは
limit、before、afterパラメーターをサポートしています - メッセージ:1 リクエストあたり最大 100 件
- リアクション:1 リクエストあたり最大 100 件。ページネーションには
afterを使用します
既知の注意点
Bot トークンとユーザートークン:
discordbotツールキットは Bot トークンを使用し、discordはユーザー OAuth を使用します- 自動化には Bot の操作が推奨されます
レート制限:
- Discord はルートごとにレート制限を設けています
- 429 レスポンスの
Retry-Afterヘッダーに従ってください
クイックリファレンス
| タスク | ツールスラッグ | 主なパラメーター |
|---|---|---|
| ギルドを一覧表示 | DISCORD_LIST_MY_GUILDS | (なし) |
| チャンネルを一覧表示 | DISCORDBOT_LIST_GUILD_CHANNELS | guild_id |
| メッセージを送信 | DISCORDBOT_CREATE_MESSAGE | channel_id, content |
| メッセージを編集 | DISCORDBOT_UPDATE_MESSAGE | channel_id, message_id |
| メッセージを取得 | DISCORDBOT_LIST_MESSAGES | channel_id, limit |
| DM を作成 | DISCORDBOT_CREATE_DM | recipient_id |
| ロールを作成 | DISCORDBOT_CREATE_GUILD_ROLE | guild_id, name |
| ロールを割り当て | DISCORDBOT_ADD_GUILD_MEMBER_ROLE | guild_id, user_id, role_id |
| ロールを削除 | DISCORDBOT_DELETE_GUILD_ROLE | guild_id, role_id |
| メンバーを取得 | DISCORDBOT_GET_GUILD_MEMBER | guild_id, user_id |
| メンバーを更新 | DISCORDBOT_UPDATE_GUILD_MEMBER | guild_id, user_id |
| ギルドを取得 | DISCORDBOT_GET_GUILD | guild_id |
| Webhook を作成 | DISCORDBOT_CREATE_WEBHOOK | channel_id, name |
| Webhook を実行 | DISCORDBOT_EXECUTE_WEBHOOK | webhook_id, webhook_token |
| Webhook を一覧表示 | DISCORDBOT_GET_GUILD_WEBHOOKS | guild_id |
| リアクションを取得 | DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI | channel_id, message_id, emoji_name |
| リアクションをすべて削除 | DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS | channel_id, message_id |
| 認証をテスト | DISCORDBOT_TEST_AUTH | (なし) |
| チャンネルを取得 | DISCORDBOT_GET_CHANNEL | channel_id |
Composio 提供