チャネルを使用して実行中のセッションにイベントをプッシュする
チャネルを使用して、MCP サーバーから実行中の Claude Code セッションにメッセージ、アラート、ウェブフックをプッシュします。CI 結果、チャットメッセージ、監視イベントを転送して、あなたが不在の間に Claude が対応できるようにします。
[!NOTE]
チャネルはリサーチプレビュー段階にあります。Anthropic 認証が claude.ai または Console API キーを通じて必要で、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry では利用できません。Team および Enterprise 組織は明示的に有効にする必要があります。
チャネルは MCP サーバーで、実行中の Claude Code セッションにイベントをプッシュするため、あなたがターミナルにいない間に起こることに Claude が対応できます。チャネルは双方向にすることができます。Claude がイベントを読み取り、同じチャネルを通じて返信します。チャットブリッジのようなものです。イベントはセッションが開いている間だけ到着するため、常時稼働セットアップの場合は、Claude をバックグラウンドプロセスまたは永続的なターミナルで実行します。
新しいクラウドセッションを生成するか、ポーリングされるのを待つ統合とは異なり、イベントはすでに開いているセッションに到着します。チャネルの比較方法を参照してください。
チャネルをプラグインとしてインストールし、独自の認証情報で設定します。Telegram、Discord、iMessage はリサーチプレビューに含まれています。
Claude がチャネルを通じて返信する場合、ターミナルに受信メッセージが表示されますが、返信テキストは表示されません。ターミナルはツール呼び出しと確認(「送信済み」など)を表示し、実際の返信は他のプラットフォームに表示されます。
Team、Enterprise、または Console 組織を管理している場合は、組織のチャネルを有効にするを参照してください。独自のチャネルを構築するには、チャネルリファレンスを参照してください。
サポートされているチャネル
サポートされている各チャネルはプラグインで、Bun が必要です。実際のプラットフォームを接続する前にプラグインフローの実践的なデモを試すには、fakechat クイックスタートを試してください。
Telegram
完全なTelegram プラグインソースを表示します。
1. Telegram ボットを作成する
Telegram で BotFather を開き、/newbot を送信します。表示名と bot で終わる一意のユーザー名を指定します。BotFather が返すトークンをコピーします。
2. プラグインをインストールする
ターミナルで claude を実行して Claude Code を起動し、そのプロンプトで以下を入力します。
/plugin install telegram@claude-plugins-official
インストールが失敗した場合は、Claude Code が報告するメッセージと照合してください。
Marketplace "claude-plugins-official" not found:/plugin marketplace add anthropics/claude-plugins-officialでマーケットプレイスを追加してから、インストールを再試行してください。Plugin "<name>" not found in marketplace "claude-plugins-official":ローカルにあるマーケットプレイスカタログのコピーが古くなっている可能性があります。/plugin marketplace update claude-plugins-officialで更新してから、インストールを再試行してください。再試行しても同じメッセージが表示される場合は、Plugin not found in marketplace を参照してください。
インストールがインストールスコープを求めるとき、ユーザースコープオプションを選択して、プラグインがすべてのプロジェクト全体で利用可能になるようにしてください。インストール概要を確認してください。Run /reload-plugins to apply. と報告されている場合は、プラグイン変更を再起動なしで適用するを参照して、プラグインの設定コマンドを利用可能にしてください。
3. トークンを設定する
BotFather からのトークンで設定コマンドを実行します。
/telegram:configure <token>
これは ~/.claude/channels/telegram/.env に保存されます。Claude Code を起動する前に、シェル環境で TELEGRAM_BOT_TOKEN を設定することもできます。
4. チャネルを有効にして再起動する
Claude Code を終了し、チャネルフラグで再起動します。これにより Telegram プラグインが起動し、ボットからのメッセージのポーリングが開始されます。
claude --channels plugin:telegram@claude-plugins-official
5. アカウントをペアリングする
Telegram を開き、ボットに任意のメッセージを送信します。ボットはペアリングコードで返信します。
[!NOTE]
ボットが応答しない場合は、前のステップから
--channelsで Claude Code が実行されていることを確認してください。ボットはチャネルがアクティブな間だけ返信できます。
Claude Code に戻り、以下を実行します。
/telegram:access pair <code>
その後、アクセスをロックダウンして、アカウントだけがメッセージを送信できるようにします。
/telegram:access policy allowlist
Discord
完全なDiscord プラグインソースを表示します。
1. Discord ボットを作成する
Discord Developer Portal に移動し、New Application をクリックして名前を付けます。Bot セクションでユーザー名を作成し、Reset Token をクリックしてトークンをコピーします。
2. Message Content Intent を有効にする
ボットの設定で、Privileged Gateway Intents までスクロールし、Message Content Intent を有効にします。
3. ボットをサーバーに招待する
OAuth2 > URL Generator に移動します。bot スコープを選択し、以下の権限を有効にします。
- View Channels
- Send Messages
- Send Messages in Threads
- Read Message History
- Attach Files
- Add Reactions
生成された URL を開いてボットをサーバーに追加します。
4. プラグインをインストールする
ターミナルで claude を実行して Claude Code を起動し、そのプロンプトで以下を入力します。
/plugin install discord@claude-plugins-official
インストールが失敗した場合は、Claude Code が報告するメッセージと照合してください。
Marketplace "claude-plugins-official" not found:/plugin marketplace add anthropics/claude-plugins-officialでマーケットプレイスを追加してから、インストールを再試行してください。Plugin "<name>" not found in marketplace "claude-plugins-official":ローカルにあるマーケットプレイスカタログのコピーが古くなっている可能性があります。/plugin marketplace update claude-plugins-officialで更新してから、インストールを再試行してください。再試行しても同じメッセージが表示される場合は、Plugin not found in marketplace を参照してください。
インストールがインストールスコープを求めるとき、ユーザースコープオプションを選択して、プラグインがすべてのプロジェクト全体で利用可能になるようにしてください。インストール概要を確認してください。Run /reload-plugins to apply. と報告されている場合は、プラグイン変更を再起動なしで適用するを参照して、プラグインの設定コマンドを利用可能にしてください。
5. トークンを設定する
コピーしたボットトークンで設定コマンドを実行します。
/discord:configure <token>
これは ~/.claude/channels/discord/.env に保存されます。Claude Code を起動する前に、シェル環境で DISCORD_BOT_TOKEN を設定することもできます。
6. チャネルを有効にして再起動する
Claude Code を終了し、チャネルフラグで再起動します。これにより Discord プラグインが接続され、ボットがメッセージを受信して応答できるようになります。
claude --channels plugin:discord@claude-plugins-official
7. アカウントをペアリングする
Discord でボットに DM を送信します。ボットはペアリングコードで返信します。
[!NOTE]
ボットが応答しない場合は、前のステップから
--channelsで Claude Code が実行されていることを確認してください。ボットはチャネルがアクティブな間だけ返信できます。
Claude Code に戻り、以下を実行します。
/discord:access pair <code>
その後、アクセスをロックダウンして、アカウントだけがメッセージを送信できるようにします。
/discord:access policy allowlist
iMessage
完全なiMessage プラグインソースを表示します。
iMessage チャネルは Messages データベースを直接読み取り、AppleScript を通じて返信を送信します。macOS が必要で、ボットトークンや外部サービスは不要です。
1. フルディスクアクセスを許可する
~/Library/Messages/chat.db にある Messages データベースは macOS によって保護されています。サーバーが初めてそれを読み取るとき、macOS はアクセスを求めるプロンプトを表示します。Allow をクリックします。プロンプトは Bun を起動したアプリ(Terminal、iTerm、IDE など)の名前を表示します。
プロンプトが表示されない場合、または Don't Allow をクリックした場合は、System Settings > Privacy & Security > Full Disk Access でアクセスを手動で許可し、ターミナルを追加します。これがないと、サーバーは authorization denied で直ちに終了します。
2. プラグインをインストールする
ターミナルで claude を実行して Claude Code を起動し、そのプロンプトで以下を入力します。
/plugin install imessage@claude-plugins-official
インストールが失敗した場合は、Claude Code が報告するメッセージと照合してください。
Marketplace "claude-plugins-official" not found:/plugin marketplace add anthropics/claude-plugins-officialでマーケットプレイスを追加してから、インストールを再試行してください。Plugin "<name>" not found in marketplace "claude-plugins-official":ローカルにあるマーケットプレイスカタログのコピーが古くなっている可能性があります。/plugin marketplace update claude-plugins-officialで更新してから、インストールを再試行してください。再試行しても同じメッセージが表示される場合は、Plugin not found in marketplace を参照してください。
インストールがインストールスコープを求めるとき、ユーザースコープオプションを選択して、プラグインがすべてのプロジェクト全体で利用可能になるようにしてください。
インストール概要で Run /reload-plugins to apply. と報告された場合でも、次のステップで再起動するとプラグインが読み込まれるため、ここで対応する必要はありません。
3. チャネルを有効にして再起動する
Claude Code を終了し、チャネルフラグで再起動します。
claude --channels plugin:imessage@claude-plugins-official
4. 自分自身にテキストを送信する
Apple ID にサインインしているデバイスで Messages を開き、自分自身にメッセージを送信します。それは Claude に直ちに到着します。セルフチャットはセットアップなしでアクセス制御をバイパスします。
[!NOTE]
Claude が送信する最初の返信は、ターミナルが Messages を制御できるかどうかを尋ねる macOS Automation プロンプトをトリガーします。OK をクリックします。
5. 他の送信者を許可する
デフォルトでは、独自のメッセージだけが通過します。別の連絡先が Claude に到達できるようにするには、ハンドルを追加します。
/imessage:access allow +15551234567
ハンドルは +country 形式の電話番号または user@example.com のような Apple ID メールです。
クイックスタート
Fakechat は公式にサポートされているデモチャネルで、localhost 上でチャット UI を実行し、認証が不要で外部サービスの設定も必要ありません。
Fakechat をインストールして有効にすると、ブラウザで入力したメッセージが Claude Code セッションに到着します。Claude が返信し、その返信がブラウザに表示されます。Fakechat インターフェースをテストした後、Telegram、Discord、または iMessage を試してみてください。
Fakechat デモを試すには、以下が必要です。
- Claude Code が インストールされ、認証済み(claude.ai アカウントまたは Claude Console API キーを使用)
- Bun がインストール済み。事前構築されたチャネルプラグインは Bun スクリプトです。
bun --versionで確認してください。失敗する場合は、Bun をインストールしてください。 - Team、Enterprise、または管理対象 Console org:管理者が管理設定で チャネルを有効にする 必要があります
1. Fakechat チャネルプラグインをインストールする
ターミナルで claude を実行して Claude Code を起動し、そのプロンプトでインストールコマンドを入力します。
/plugin install fakechat@claude-plugins-official
インストールが失敗した場合は、Claude Code が報告するメッセージに一致させてください。
Marketplace "claude-plugins-official" not found:/plugin marketplace add anthropics/claude-plugins-officialでマーケットプレイスを追加してから、インストールを再試行してください。Plugin "<name>" not found in marketplace "claude-plugins-official":ローカルにあるマーケットプレイスカタログのコピーが古くなっている可能性があります。/plugin marketplace update claude-plugins-officialで更新してから、インストールを再試行してください。再試行しても同じメッセージが表示される場合は、Plugin not found in marketplace を参照してください。
インストールがインストールスコープを求めるとき、ユーザースコープオプションを選択して、プラグインがすべてのプロジェクト全体で利用可能になるようにしてください。
インストール概要が Run /reload-plugins to apply. を報告する場合、ここで対応する必要はありません。次のステップで再起動するときにプラグインが取得されるためです。
2. チャネルを有効にして再起動する
Claude Code を終了し、--channels で再起動してインストールした Fakechat プラグインを渡します。
claude --channels plugin:fakechat@claude-plugins-official
Fakechat サーバーが自動的に起動します。スタートアップ画面には、plugin:fakechat@claude-plugins-official からのメッセージがこのセッションに直接注入されることを示すチャネル通知が表示されます。プラグインがインストールされていないか、承認許可リストにない場合、その問題を示す警告行がその通知の下に表示されます。
[!TIP]
複数のプラグインを
--channelsに渡すことができます。スペース区切りです。
3. メッセージを送信する
http://localhost:8787 で Fakechat UI を開き、メッセージを入力します。
what's in my working directory?
メッセージが Claude Code セッションに到着します。ターミナルは ← fakechat · web: what's in my working directory? のようなインバウンドチャネル行として表示し、モデルはプラグインのスコープ付きサーバー名を使用して <channel source="plugin:fakechat:fakechat"> イベントとして受け取ります。Claude がそれを読み、作業を実行し、Fakechat の reply ツールを呼び出します。Claude Code が最初の返信の権限を求める場合、それを承認してください。答えがチャット UI に表示されます。
Claude がターミナルから離れている間に権限プロンプトに達した場合、セッションは応答するまで一時停止します。権限リレー機能を宣言するチャネルサーバーは、これらのプロンプトをあなたに転送して、リモートで承認または拒否できるようにします。無人使用の場合、--dangerously-skip-permissions はほとんどのプロンプトをバイパスしますが、信頼できる環境でのみ使用してください。それでも、どのモードも自動承認しないアクションは引き続き適用されます。
チャネルを -p で非対話モードで実行する場合、複数選択質問やプランモード承認など、ターミナル入力が必要なツールは無効になり、セッションは入力を待つために停止することはありません。
セキュリティ
承認されたすべてのチャネルプラグインは送信者許可リストを保持します。追加した ID だけがメッセージをプッシュでき、他のすべては静かにドロップされます。
Telegram と Discord はペアリングでリストをブートストラップします。
- Telegram または Discord でボットを見つけ、任意のメッセージを送信します。
- ボットはペアリングコードで返信します。
- Claude Code セッションで、プロンプトが表示されたときにコードを承認します。
- 送信者 ID が許可リストに追加されます。
iMessage は異なります。自分自身にテキストを送信するとゲートを自動的にバイパスし、/imessage:access allow でハンドルを使用して他の連絡先を追加します。
その上に、--channels で各セッションで有効なサーバーを制御し、組織は claude.ai Team および Enterprise プランと、管理設定をデプロイする Console 組織で channelsEnabled で可用性を制御します。
.mcp.json にあるだけではメッセージをプッシュするのに十分ではありません。サーバーも --channels で名前を付ける必要があります。
許可リストは、チャネルが宣言する場合、パーミッションリレーもゲートします。チャネルを通じて返信できるすべてのユーザーは、セッションでのツール使用を承認または拒否できるため、その権限を信頼できる許可リスト送信者だけを追加してください。
Enterprise コントロール
管理者は 2 つの管理設定を通じて可用性を制御します。ユーザーはこれらをオーバーライドできません。デフォルトは認証方法によって異なります。
- claude.ai Team および Enterprise:チャネルは Owner が有効にするまでブロックされます。
- Anthropic Console と API キー認証:チャネルはデフォルトで許可されます。組織が管理設定をデプロイする場合のみこの設定が必要です。
すべての場合において、ユーザーが --channels でセッションにオプトインするまで、チャネルは実行されません。
| 設定 | 目的 | 設定されていない場合 |
|---|---|---|
channelsEnabled |
マスタースイッチ。チャネルがメッセージを配信するには true である必要があります。組織のチャネルを有効にするを参照してください。オフの場合、開発フラグを含むすべてのチャネルをブロックします。 |
claude.ai Team および Enterprise:チャネルがブロックされます。Console:組織が管理設定をデプロイしない限りチャネルが許可されます。その場合、このキーが設定されるまでチャネルがブロックされます。 |
allowedChannelPlugins |
チャネルが有効になったら、どのプラグインが登録できるか。設定されている場合、Anthropic が管理するリストを置き換えます。 | Anthropic デフォルトリストが適用されます。 |
組織のない Pro および Max ユーザーはこれらのチェックを完全にスキップします。チャネルが利用可能で、ユーザーは --channels でセッションごとにオプトインします。
組織のチャネルを有効にする
Organization settings > Claude Code > Channels から組織のチャネルを有効にします。これには Owner ロールが必要です。または、管理設定で channelsEnabled を true に設定します。
有効にすると、組織内のユーザーは --channels を使用して個別のセッションにチャネルサーバーをオプトインできます。設定が無効または未設定の場合、MCP サーバーは接続され、そのツールは機能しますが、チャネルメッセージは到着しません。スタートアップ警告は、ユーザーに管理者が設定を有効にするよう指示します。
チャネルプラグインが実行できるものを制限する
デフォルトでは、Anthropic が管理する許可リスト上のプラグインはチャネルとして登録できます。Team および Enterprise プランの管理者は、管理設定で allowedChannelPlugins を設定することで、その許可リストを独自のものに置き換えることができます。これを使用して、許可されている公式プラグインを制限したり、独自の内部マーケットプレイスからチャネルを承認したり、その両方を行ったりします。各エントリは、プラグインとそれが由来するマーケットプレイスに名前を付けます。
{
"channelsEnabled": true,
"allowedChannelPlugins": [
{ "marketplace": "claude-plugins-official", "plugin": "telegram" },
{ "marketplace": "claude-plugins-official", "plugin": "discord" },
{ "marketplace": "acme-corp-plugins", "plugin": "internal-alerts" }
]
}
空の配列を設定すると、許可リストからすべてのチャネルプラグインをブロックしますが、--dangerously-load-development-channels はローカルテストのためにそのブロックをバイパスできます。開発フラグを含むチャネルを完全にブロックするには、代わりに channelsEnabled を設定されていないままにします。
この設定には channelsEnabled: true が必要です。ユーザーが --channels にリストにないプラグインを渡す場合、Claude Code は通常起動しますが、チャネルは登録されず、スタートアップ通知はプラグインが組織の承認リストにないことを説明します。v2 MCP クライアントランタイムでは、Claude Code がプロトコルリビジョン 2026-07-28 をネゴシエートするチャネルサーバーを登録しないため、チャネルが登録に失敗することもあります。
リサーチプレビュー
チャネルはリサーチプレビュー機能です。可用性は段階的にロールアウトされており、--channels フラグの構文とプロトコルコントラクトはフィードバックに基づいて変更される可能性があります。
プレビュー中、--channels と --dangerously-load-development-channels は claude --help に表示されません。フラグは表示されていなくても機能します。
プレビュー中、--channels は Anthropic が管理する許可リストからのプラグイン、または管理者が allowedChannelPlugins を設定している場合は組織の許可リストからのプラグインのみを受け入れます。claude-plugins-official のチャネルプラグインはデフォルトで承認されたセットです。有効な許可リストにないものを渡す場合、Claude Code は通常起動しますが、チャネルは登録されず、スタートアップ通知は理由を伝えます。
構築しているチャネルをテストするには、plugin:<name>@<marketplace> または server:<name> の形式で --dangerously-load-development-channels に渡してください。構築するカスタムチャネルのテストについては、リサーチプレビュー中のテストを参照してください。
Claude Code GitHub リポジトリで問題またはフィードバックを報告してください。
チャネルの比較方法
Claude Code のいくつかの機能はターミナルの外のシステムに接続し、それぞれ異なる種類の作業に適しています。
| 機能 | 何をするか | 適している用途 |
|---|---|---|
| クラウドセッション | GitHub からクローンされた新しいクラウドサンドボックスでタスクを実行 | 後で確認する自己完結型の非同期作業を委任する |
| Slack の Claude | チャネルまたはスレッドの @Claude メンションからクラウドセッションを生成 |
チームの会話コンテキストから直接タスクを開始する |
| 標準 MCP サーバー | Claude はタスク中にそれをクエリします。セッションには何もプッシュされません | Claude にシステムを読み取るまたはクエリするオンデマンドアクセスを提供する |
| Remote Control | claude.ai または Claude モバイルアプリからローカルセッションを駆動 | デスクから離れている間に進行中のセッションを操舵する |
チャネルは、Claude 以外のソースからのイベントをすでに実行中のローカルセッションにプッシュすることで、そのリストのギャップを埋めます。
- チャットブリッジ:Telegram、Discord、または iMessage を通じて電話から Claude に何かを尋ね、答えが同じチャットに戻ってきます。作業はマシンで実際のファイルに対して実行されます。
- ウェブフックレシーバー:CI、エラートラッカー、デプロイパイプライン、または他の外部サービスからのウェブフックが、Claude がファイルをすでに開いており、デバッグしていたことを覚えている場所に到着します。
次のステップ
チャネルが実行されたら、これらの関連機能を探索してください。
- 独自のチャネルを構築して、まだプラグインがないシステムに対応する
- Remote Control を使用して、イベントをそれに転送する代わりに電話からローカルセッションを駆動する
- セッションスコープのスケジュールタスクを使用して、プッシュされたイベントに対応する代わりにタイマーでポーリングする