meat-ball 15991-768x591

Discord から Claude Code とやり取りしてみた

Claude Code v2.1.80 から Research Preview 版として Claude Code channels(以下、チャンネル)が利用できるようになりました。チャンネルとは実行中の Claude Code のセッションに対して、外部からイベントを送ることができる MCP サーバーのことです。この記事では、Discord からチャンネルを通じて Claude Code とやり取りする方法を紹介します。

Claude Code v2.1.80 から Research Preview 版として Claude Code channels(以下、チャンネル)が利用できるようになりました。チャンネルとは実行中の Claude Code のセッションに対して、外部からイベントを送ることができる MCP サーバーのことです。チャンネルは双方向通信が可能で、Claude Code がイベントを受け取ったとき同じチャンネルを通じて応答できます。チャンネルを使用して外部サービスからやり取りしたい場合、Claude Code のセッションが開いている必要があるため、Claude Code をバックグラウンドプロセスもしくはサーバーとして実行しておく必要があります。

公式のチャンネルのプラグインとして以下が提供されています。プラグインを使用せずに独自のチャンネルの実装も可能です。

  • Telegram
  • Discord
  • fakechat(デモ用のチャットクライアント)

この記事では、Discord からチャンネルを通じて Claude Code とやり取りする方法を紹介します。Discord チャンネルプラグインの MCP サーバーの実行には Bun が必要です。以下のコマンドで Bun をインストールしてください。

curl -fsSL https://bun.sh/install | bash

既に Bun をインストールしている場合でも、最新版にアップデートしておくことをおすすめします。

bun upgrade
 
bun --version
1.3.11

Discord bot の作成

はじめに Discord の開発者ポータル にアクセスして、Discord bot を作成します。ダッシュボード画面で「新しいアプリケーション」ボタンをクリックして、アプリケーションを作成します。アプリケーションの名前は任意で構いません。

アプリケーションの作成が完了したら、左側のメニューから「Bot」を選択して、「トークン」→「トークンをリセット」ボタンをクリックして Bot トークンを発行します。発行されたトークンは後で使用するので、控えておいてください。トークンはセキュリティ上の理由から作成後にのみ表示されます。

さらに下にスクロールして、「Privileged Gateway Intents」セクションで「Message Content Intent」を有効にします。これは Bot がメッセージの内容を読み取るために必要な設定です。

作成した Bot はサーバーに招待する必要があります。左側のメニューから「OAuth2」→「OAuth2 URL ジェネレーター」を選択して、Bot スコープにチェックを入れます。さらに、Bot の権限に以下の権限を追加します。

  • チャンネルを表示
  • メッセージを送信
  • Threads でメッセージを送信
  • メッセージ履歴を読む
  • ファイルを添付
  • リアクションを追加

「生成された URL」セクションに表示されている URL にアクセスして、Bot をサーバーに招待します。あらかじめ Bot を招待するサーバーを作成しておいてください。

サーバーのメンバーに Bot が追加されたことを確認してください。

Claude Code のチャンネルプラグインをインストール

続いて Claude Code 側の設定をします。Discord チャンネルプラグインは「claude-plugins-official」マーケットプレイスで管理されているため、まずはこのマーケットプレイスが最新の状態であることを確認してください。/plugin コマンドの「Marketplace」タブを開いて、「claude-plugins-official」が表示されていれば問題ありません。もし表示されていない場合は、「+Add Marketplace」を選択して「claude-plugins-official」を追加してください。

「Plugin」タブを開いて検索バーに「discord」と入力して、Discord チャンネルプラグインを見つけます。見つけたら「Install」ボタンをクリックしてインストールしてください。

インストールが完了したら /reload-plugins コマンドを実行して、プラグインの状態を更新してください。/skills に「configure · discord」と「access · discord」が表示されていれば、プラグインは正常にインストールされています。以下のコマンドを実行して前の手順で発行した Bot トークンを設定してください。

/discord:configure <token>

.claude/channels/discord/.env ファイルに Bot トークンが保存されます。続いて一度 Claude Code を終了し、--channels オプションを付けて再度起動します。

claude --channels plugin:discord@claude-plugins-official

--channels オプションを使用して起動すると、Discord 上の Bot がオンラインになっていることが確認できます。Bot に DM を送信するとペアリングコードが返信されます。

Claude Code のセッションに戻り、以下のコマンドを実行してペアリングコードを入力してください。

/discord:access pair <pairing_code>

ペアリングコードが有効期限内であれば、.claude/channels/discord/access.json ファイルの allowFrom セクションに Discord のユーザー ID が追加されます。これで Discord からチャンネルを通じて Claude Code とやり取りできるようになりました。Claude Code から「Paired! Say hi to Claude.」というメッセージが Discord に送信されるはずです。

これ以上ユーザーを追加する必要がなければ、DM ポリシーを pairing から allowlist に変更することをおすすめします。DM ポリシーを allowlist に変更すると、allowFrom セクションに追加されたユーザー以外のメッセージを一切受け付けなくなります。ペアリングもできなくなるため、ユーザーを追加したい場合は手動で access.json ファイルを編集してユーザー ID を追加する必要があります。以下のコマンドを実行して DM ポリシーを変更してください。

/discord:access policy allowlist

.claude/channels/discord/access.jsondmPolicyallowlist に変更されます。

.claude/channels/discord/access.json
  {
-    "dmPolicy": "pairing",
+    "dmPolicy": "allowlist",
    "allowFrom": [
      "123456789012345678"
    ]
  }

試しに Discord 上からメッセージを送信してみましょう。/review-article 記事「Discord から Claude Code とやり取りしてみた」をレビューして というメッセージを送信してみます。ターミナル上で Discord から送信したメッセージをトリガーにして、Claude Code が応答していることが確認できます。

Claude Code はセッションが完了したら MCP サーバー discordreply ツールを通じて Discord に応答を返します。

Warning

Bun のバージョンが最新版(v1.3.11 以降)でない場合、MCP サーバーのツールを発見できないというエラーが発生しました。MCP サーバーの実行に失敗した場合には、Bun のバージョンを確認してみてください。

Discord チャンネルプラグインは以下の MCP ツールを提供しています。

  • reply: chat_idtext を受け取って、指定されたチャットにメッセージを送信するツール。オプションで reply_tofiles も指定できる。送信されたメッセージ ID が返される
  • react: 任意のメッセージにリアクションを追加するツール。
  • edit_message: 送信されたメッセージを編集するツール。
  • fetch_messages: チャンネルから最近のメッセージを古い順に取得するツール。1 回の呼び出しで最大 100 件のメッセージを取得できる。
  • download_attachment: メッセージに添付されたファイルをダウンロードするツール。ダウンロードされたファイルのパスが返される。

まとめ

  • Claude Code channels を使用すると、外部サービスから実行中の Claude Code セッションにイベントを送ることができる。
  • 公式のチャンネルプラグインとして Telegram、Discord、fakechat が提供されている。
  • Discord チャンネルプラグインを使用するには、Discord bot を作成して、Bot トークンを Claude Code に設定する。
  • claude-plugins-official マーケットプレイスから Discord チャンネルプラグインをインストールして、/discord:configure コマンドで Bot トークンを設定する。
  • チャンネルを使用するには、Claude Code を --channels オプションを付けて起動する必要がある。これにより、Discord 上の Bot がオンラインになり、ペアリングコードを使用して Claude Code とペアリングできるようになる。
  • /discord:access コマンドを使用してペアリングコードを入力すると、Discord からチャンネルを通じて Claude Code とやり取りできるようになる。

参考

記事の理解度チェック

以下の問題に答えて、記事の理解を深めましょう。

Discord チャンネルプラグインの MCP サーバーを実行するために必要なランタイムはどれですか?

  • Bun

    正解!

  • Node.js

    もう一度考えてみましょう

    Discord チャンネルプラグインは Node.js ではなく Bun が必要です。

  • Deno

    もう一度考えてみましょう

    Deno ではなく Bun が必要です。

  • Python

    もう一度考えてみましょう

    Python ではなく Bun が必要です。

Claude Code を Discord チャンネルを使って起動するための正しいコマンドはどれですか?

  • claude --discord

    もう一度考えてみましょう

    オプション名は --discord ではなく --channels です。

  • claude --plugin discord

    もう一度考えてみましょう

  • claude --channels discord

    もう一度考えてみましょう

  • claude --channels plugin:discord@claude-plugins-official

    正解!

    --channels オプションに「plugin:discord@claude-plugins-official」を指定して起動します。これにより Discord 上の Bot がオンラインになります。