discord-automation について
Rube MCP 上の Composio ツールキットを通じて、Discord のメッセージ、ロール、Webhook、リアクションを自動化するワークフロースキルです。接続確認やツール定義の取得、権限を踏まえた操作をエージェントに案内します。
主な機能
- 01チャンネルメッセージの送信と編集
- 02ダイレクトメッセージの作成と送信
- 03サーバーロールの作成と管理
- 04Webhook の作成と実行
- 05リアクションの確認と削除
活用シーン
- 01Discord チャンネルのメッセージ投稿や更新
- 02Discord ユーザーへのダイレクトメッセージ送信
- 03サーバーメンバーへのロール付与や削除
- 04Webhook を使ったメッセージ投稿
MCP 対応
Rube MCP と Composio の Discord および Discordbot ツールキットを利用します。操作前に最新のツール定義を取得し、認証済みで有効な Discord 接続を確立するようクライアントに案内します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill discord-automationインストール後、Claude Code で/discord-automationを入力して読み込まれたか確認します。
詳細
Rube MCP を介した Discord の自動化
Rube MCP を介して Composio の Discord/Discordbot ツールキットを利用し、Discord の操作を自動化します。
前提条件
- Rube MCP が接続されていること(RUBE_SEARCH_TOOLS が利用可能であること)
- ツールキット
discordとdiscordbotを使用するRUBE_MANAGE_CONNECTIONSによる有効な Discord 接続 - 現在のツールスキーマを取得するため、必ず最初に
RUBE_SEARCH_TOOLSを呼び出してください
セットアップ
Rube MCP の取得:クライアントの設定で https://rube.app/mcp を MCP サーバーとして追加します。エンドポイントはホストに従って接続し、認証する必要があります。各サービスへの接続には、それぞれ別途、承認済みアカウントとスコープが必要です。
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 を送信できません
- 既存のチャンネルがある場合、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. ウェブフックを管理する
使用する場面:ユーザーが外部連携用のウェブフックを作成または使用したい場合
ツールの呼び出し順序:
DISCORDBOT_GET_GUILD_WEBHOOKS/DISCORDBOT_LIST_CHANNEL_WEBHOOKS- ウェブフックを一覧表示します[任意]DISCORDBOT_CREATE_WEBHOOK- 新しいウェブフックを作成します[任意]DISCORDBOT_EXECUTE_WEBHOOK- ウェブフックを介してメッセージを送信します[任意]DISCORDBOT_UPDATE_WEBHOOK- ウェブフックの設定を更新します[任意]
主なパラメーター:
webhook_id:ウェブフック IDwebhook_token:ウェブフックのシークレットトークンchannel_id:ウェブフックの作成先チャンネルname:ウェブフック名content/embeds:実行時に送信するメッセージの内容
注意点:
- ウェブフックトークンは秘密情報です。安全に取り扱ってください
- ウェブフックでは、メッセージごとにカスタムのユーザー名とアバターを設定して投稿できます
- 作成には 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:メッセージのスノーフレーク IDemoji_name:URL エンコードされた絵文字、またはカスタム絵文字用のname:iduser_id:特定のリアクションを削除するユーザー ID
注意点:
- Unicode 絵文字は URL エンコードする必要があります(例:サムズアップの場合は「%F0%9F%91%8D」)
- カスタム絵文字には
name:id形式を使用します - DELETE_ALL には MANAGE_MESSAGES 権限が必要です
よくあるパターン
スノーフレーク ID
Discord では、すべてのエンティティにスノーフレーク ID(文字列としての 64 ビット整数)を使用します:
- ギルド、チャンネル、ユーザー、ロール、メッセージ、ウェブフック
権限ビットフィールド
権限はビット単位の OR を使って組み合わせます:
- SEND_MESSAGES = 0x800
- MANAGE_ROLES = 0x10000000
- MANAGE_MESSAGES = 0x2000
- ADMINISTRATOR = 0x8
ページネーション
- ほとんどの一覧エンドポイントは
limit、before、afterパラメーターに対応しています - メッセージ:リクエストあたり最大 100 件
- リアクション:リクエストあたり最大 100 件。ページネーションには
afterを使用します
既知の注意点
ボットトークンとユーザートークン:
discordbotツールキットはボットトークンを使用し、discordはユーザー OAuth を使用します- 自動化ではボットによる操作が推奨されます
レート制限:
- 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 |
| ウェブフックを作成 | DISCORDBOT_CREATE_WEBHOOK | channel_id, name |
| ウェブフックを実行 | DISCORDBOT_EXECUTE_WEBHOOK | webhook_id, webhook_token |
| ウェブフックを一覧表示 | 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 |
使用するタイミング
このスキルは、概要に記載されたワークフローまたはアクションを実行する場合に適用できます。
例
ユーザーのリクエスト:
Rube MCP(Composio)を使って、メッセージ、チャンネル、ロール、ウェブフック、リアクションなどの Discord タスクを自動化してください。
制限事項
- タスクが上記の説明の範囲に明確に該当する場合にのみ、このスキルを使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を止めて確認してください。
メッセージ、DM、またはウェブフックの投稿を送信する前に、対象のギルド、チャンネル、送信先、および内容を確認してください。ユーザーが連絡を許可した場合にのみ送信してください。ロールの変更には承認済みの権限範囲が必要です。便宜上 ADMINISTRATOR を付与してはなりません。利用可能な許可対象メンションの制御機能を使って、意図しないメンションを抑止してください。ウェブフックトークンは非公開に保ち、送信結果が不明な場合は再試行する前に状態を確認してください。