mcpField
D
discord-automation

discord-automation

github.com/composiohq生産性78.3k84 回インストール14 週間前に更新
リポジトリ

discord-automation について

Rube MCP と Composio の Discord ツールキットを通じて、Discord の操作を自動化するスキルです。メッセージ、ロール、Webhook、リアクションを扱い、ボットとユーザーの接続に対応します。

主な機能

  1. 01チャンネルメッセージと DM の送信
  2. 02サーバーロールの作成と管理
  3. 03Webhook の作成と実行
  4. 04メッセージリアクションの表示や削除
  5. 05ボット操作とユーザー操作への対応

活用シーン

  1. 01Discord チャンネルへのメッセージ投稿
  2. 02メンバーへのダイレクトメッセージ送信
  3. 03サーバーメンバーへのロール付与
  4. 04Webhook を通じたコンテンツ投稿

MCP 対応

MCP クライアントから Rube MCP に接続し、Composio の Discord および Discordbot ツールキットを利用します。事前に該当する Discord 接続が必要です。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/composiohq/awesome-claude-skills --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 提供

コメント