mcpField
D
discord-automation

discord-automation

github.com/davepoon生産性3.7k122 回インストール今日更新
リポジトリ

discord-automation について

discord-automationは、Rube MCPとComposioのDiscordツールキットでDiscord操作を自動化するスキルです。サーバー運用に関わるメッセージ、ロール、Webhook、リアクションを扱います。

主な機能

  1. 01チャンネルやDMへのメッセージ送信
  2. 02ボットが送信したメッセージの編集
  3. 03ロールの作成、付与、削除
  4. 04Webhookの作成と実行
  5. 05メッセージのリアクション確認・削除

活用シーン

  1. 01Discordチャンネルへの更新投稿
  2. 02ユーザーへのダイレクトメッセージ送信
  3. 03サーバーメンバーのロール管理
  4. 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 キーは不要です。エンドポイントを追加するだけで動作します。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを確認します
  2. ボット操作にはツールキット discordbot、ユーザー操作には discord を指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクに従って Discord 認証を完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します

主なワークフロー

1. メッセージを送信する

使用する場面: ユーザーがチャンネルまたは DM にメッセージを送信したい場合

ツールの順序:

  1. DISCORD_LIST_MY_GUILDS - ボットが参加しているギルドを一覧表示します [前提条件]
  2. DISCORDBOT_LIST_GUILD_CHANNELS - ギルド内のチャンネルを一覧表示します [前提条件]
  3. DISCORDBOT_CREATE_MESSAGE - メッセージを送信します [必須]
  4. DISCORDBOT_UPDATE_MESSAGE - 送信済みのメッセージを編集します [任意]

主なパラメーター:

  • channel_id: チャンネルのスノーフレーク ID
  • content: メッセージ本文(最大 2000 文字)
  • embeds: リッチコンテンツ用の埋め込みオブジェクトの配列
  • guild_id: チャンネル一覧取得用のギルド ID

注意点:

  • ボットにはチャンネルで SEND_MESSAGES 権限が必要です
  • 高頻度の送信はルートごとのレート制限に達する場合があります。Retry-After ヘッダーに従ってください
  • 編集できるのは、同じボットが送信したメッセージのみです
2. ダイレクトメッセージを送信する

使用する場面: ユーザーが Discord ユーザーに DM を送りたい場合

ツールの順序:

  1. DISCORDBOT_CREATE_DM - DM チャンネルを作成または取得します [必須]
  2. DISCORDBOT_CREATE_MESSAGE - DM チャンネルにメッセージを送信します [必須]

主なパラメーター:

  • recipient_id: DM の宛先となるユーザーのスノーフレーク ID
  • channel_id: CREATE_DM から取得した DM チャンネル ID

注意点:

  • DM が無効になっているユーザーや、ボットをブロックしているユーザーには DM を送信できません
  • 既存の DM チャンネルがある場合、CREATE_DM はそのチャンネルを返します
3. ロールを管理する

使用する場面: ユーザーがロールを作成、割り当て、または削除したい場合

ツールの順序:

  1. DISCORDBOT_CREATE_GUILD_ROLE - 新しいロールを作成します [任意]
  2. DISCORDBOT_ADD_GUILD_MEMBER_ROLE - メンバーにロールを割り当てます [任意]
  3. DISCORDBOT_DELETE_GUILD_ROLE - ロールを削除します [任意]
  4. DISCORDBOT_GET_GUILD_MEMBER - メンバーの詳細を取得します [任意]
  5. DISCORDBOT_UPDATE_GUILD_MEMBER - メンバー情報(ロール、ニックネームなど)を更新します [任意]

主なパラメーター:

  • guild_id: ギルドのスノーフレーク ID
  • user_id: ユーザーのスノーフレーク ID
  • role_id: ロールのスノーフレーク ID
  • name: ロール名
  • permissions: ビット単位の権限値
  • color: RGB カラーの整数値

注意点:

  • ロールの割り当てには MANAGE_ROLES 権限が必要です
  • 対象のロールは、ボットの最高位のロールよりも下位である必要があります
  • DELETE を実行すると、すべてのメンバーからロールが完全に削除されます
4. Webhook を管理する

使用する場面: ユーザーが外部連携用の Webhook を作成または使用したい場合

ツールの順序:

  1. DISCORDBOT_GET_GUILD_WEBHOOKS / DISCORDBOT_LIST_CHANNEL_WEBHOOKS - Webhook を一覧表示します [任意]
  2. DISCORDBOT_CREATE_WEBHOOK - 新しい Webhook を作成します [任意]
  3. DISCORDBOT_EXECUTE_WEBHOOK - Webhook 経由でメッセージを送信します [任意]
  4. DISCORDBOT_UPDATE_WEBHOOK - Webhook の設定を更新します [任意]

主なパラメーター:

  • webhook_id: Webhook ID
  • webhook_token: Webhook の秘密トークン
  • channel_id: Webhook の作成先チャンネル
  • name: Webhook 名
  • content/embeds: 実行時に送信するメッセージの内容

注意点:

  • Webhook トークンは秘密情報です。安全に取り扱ってください
  • Webhook では、メッセージごとにカスタムのユーザー名とアバターを指定して投稿できます
  • 作成には MANAGE_WEBHOOKS 権限が必要です
5. リアクションを管理する

使用するタイミング:ユーザーがメッセージのリアクションを表示または管理したい場合

ツールの順序:

  1. DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI - リアクションしたユーザーを一覧表示します[任意]
  2. DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS - すべてのリアクションを削除します[任意]
  3. DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI - 特定の絵文字のリアクションを削除します[任意]
  4. DISCORDBOT_DELETE_USER_MESSAGE_REACTION - 特定のユーザーのリアクションを削除します[任意]

主なパラメーター:

  • channel_id:チャンネル ID
  • message_id:メッセージの Snowflake ID
  • emoji_name:URL エンコードされた絵文字、またはカスタム絵文字の name:id
  • user_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_CHANNELSguild_id
メッセージを送信DISCORDBOT_CREATE_MESSAGEchannel_id, content
メッセージを編集DISCORDBOT_UPDATE_MESSAGEchannel_id, message_id
メッセージを取得DISCORDBOT_LIST_MESSAGESchannel_id, limit
DM を作成DISCORDBOT_CREATE_DMrecipient_id
ロールを作成DISCORDBOT_CREATE_GUILD_ROLEguild_id, name
ロールを割り当てDISCORDBOT_ADD_GUILD_MEMBER_ROLEguild_id, user_id, role_id
ロールを削除DISCORDBOT_DELETE_GUILD_ROLEguild_id, role_id
メンバーを取得DISCORDBOT_GET_GUILD_MEMBERguild_id, user_id
メンバーを更新DISCORDBOT_UPDATE_GUILD_MEMBERguild_id, user_id
ギルドを取得DISCORDBOT_GET_GUILDguild_id
Webhook を作成DISCORDBOT_CREATE_WEBHOOKchannel_id, name
Webhook を実行DISCORDBOT_EXECUTE_WEBHOOKwebhook_id, webhook_token
Webhook を一覧表示DISCORDBOT_GET_GUILD_WEBHOOKSguild_id
リアクションを取得DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJIchannel_id, message_id, emoji_name
リアクションをすべて削除DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONSchannel_id, message_id
認証をテストDISCORDBOT_TEST_AUTH(なし)
チャンネルを取得DISCORDBOT_GET_CHANNELchannel_id

Composio 提供

コメント