メインコンテンツへスキップ
ブログ一覧

Claude Codeの「Channels」機能でTelegramと連携する方法

Claude CodeMCPTelegramAI

はじめに

Claude Codeに「Channels」という新機能が追加されました。この機能を使うと、TelegramやDiscordなどの外部プラットフォームから、実行中のClaude Codeセッションにリアルタイムでメッセージを送信できます。

例えば、外出先のスマホからTelegram経由でClaude Codeに指示を出したり、CI/CDの結果通知を受け取って即座に対応を依頼したりといったワークフローが可能になります。

なお、Channelsは現在 Research Preview の段階です。--channelsフラグの構文やプロトコルの仕様は、フィードバックに基づいて変更される可能性があります。

Channelsとは何か

MCPサーバーとしてのChannels

ChannelsはMCP(Model Context Protocol)サーバーとして動作します。外部プラットフォームで発生したイベント(メッセージの受信など)を、実行中のClaude Codeセッションにプッシュする仕組みです。

通信は双方向で、Claudeはイベントを受け取って処理し、同じチャネルを通じて返信できます。いわばチャットブリッジのような役割を果たします。

Claudeがチャネル経由で返信すると、ターミナルにはツールコールと確認メッセージ(「sent」など)が表示されますが、実際の返信テキストはTelegramやDiscordなど対象のプラットフォーム上に表示されます。

対応プラットフォーム

Research Previewの段階で、以下のプラットフォームに対応しています。

  • Telegram — Botを作成して連携
  • Discord — Botを作成して連携
  • fakechat — ローカルホストで動作するデモ用チャネル

動作の前提条件

Channelsを利用するには、以下の条件を満たす必要があります。

  • claude.aiでのログインが必須 — APIキー認証やConsole認証では利用できません
  • Bunのインストールが必要 — プリビルドのチャネルプラグインはBunスクリプトとして動作します。bun --versionで確認し、未インストールの場合はBun公式サイトからインストールしてください
  • Team/Enterpriseプランの場合 — 組織の管理者がchannelsEnabledを明示的に有効化する必要があります

Telegram連携のセットアップ手順

Step 1: BotFatherでボットを作成

TelegramアプリでBotFatherを開き、/newbotコマンドを送信します。

  1. ボットの表示名を入力します
  2. ボットのユニークなユーザー名を入力します(末尾はbotで終わる必要があります)
  3. BotFatherが返すトークンをコピーしておきます

このトークンは次のステップで使用します。

Step 2: プラグインをインストール

Claude Codeのセッション内で、以下のコマンドを実行します。

text
/plugin install telegram@claude-plugins-official

Step 3: トークンを設定

BotFatherから取得したトークンを使って、設定コマンドを実行します。

text
/telegram:configure <your-bot-token>

このコマンドにより、トークンはプロジェクトの.claude/channels/telegram/.envに保存されます。

代替手段として、Claude Code起動前にシェル環境変数TELEGRAM_BOT_TOKENを設定する方法もあります。

Step 4: Channelsフラグ付きで起動

Claude Codeを一度終了し、--channelsフラグを付けて再起動します。

bash
claude --channels plugin:telegram@claude-plugins-official

このコマンドでTelegramプラグインが起動し、ボットへのメッセージのポーリングが開始されます。

Step 5: アカウントのペアリング

Telegramアプリでボットを開き、任意のメッセージを送信します。ボットがペアリングコードを返信します。

Claude Codeに戻り、以下のコマンドでペアリングを承認します。

text
/telegram:access pair <code>

ペアリング後、アクセスを自分のアカウントだけに制限します。

text
/telegram:access policy allowlist

これでセットアップは完了です。Telegramからメッセージを送ると、Claude Codeセッションにリアルタイムで届くようになります。

セキュリティ設定

アクセスポリシーの種類

Channelsでは、メッセージを送信できるユーザーを制御するアクセスポリシーが用意されています。

ポリシー 説明
pairing ペアリングコードを使って承認されたユーザーのみがメッセージを送信可能
allowlist 許可リストに登録されたユーザーIDのみがメッセージを送信可能。それ以外はサイレントにドロップされる
disabled チャネルからのメッセージ受信を無効化

許可リストの設定方法

ペアリング完了後、以下のコマンドでポリシーをallowlistに変更します。

text
/telegram:access policy allowlist

許可リストに含まれないユーザーからのメッセージはサイレントにドロップされるため、意図しないアクセスを防ぐことができます。

ベストプラクティス

  • ペアリング後は必ずallowlistポリシーに変更する — デフォルトのペアリングモードのままだと、トークンを知る他のユーザーがペアリングを試みる可能性があります
  • --channelsフラグはセッションごとに指定する.mcp.jsonに登録されているだけでは、チャネルとしてメッセージをプッシュする権限は付与されません。--channelsで明示的に有効化する必要があります
  • Team/Enterpriseでは管理者がチャネルを有効化 — 管理者はclaude.ai → Admin settings → Claude Code → Channelsから設定できます

Telegramで使える主要ツール

Channelsを通じてClaudeが利用できるTelegram向けツールは以下の通りです。

ツール 説明
reply メッセージに返信する。ファイルの添付にも対応(filesパラメータにパスを指定)
react メッセージに絵文字リアクションを追加する
edit_message 以前に送信したメッセージを編集する(例: 進捗状況を結果に更新)

グループチャットにも対応しており、チームでの利用も可能です。ただし、Telegram Bot APIにはメッセージ履歴の取得や検索の機能がないため、Claudeはメッセージの到着時にのみ内容を確認できます。過去のコンテキストが必要な場合は、ユーザーがペーストまたは要約する必要があります。

実際の活用シナリオ

外出先からスマホでClaude Codeに指示

PCの前にいなくても、スマホのTelegramアプリからClaude Codeに作業を依頼できます。例えば「テストを実行して結果を教えて」「このファイルの内容を確認して」といった指示を送ることで、リモートで開発作業を進められます。

CI/CD結果の通知と即対応

CI/CDパイプラインの結果通知をTelegramで受け取り、問題があればそのままClaude Codeに修正を依頼するワークフローが構築できます。edit_messageツールを使えば、「処理中...」から「完了」へメッセージを更新するといった進捗表示も可能です。

チーム利用

グループチャットにボットを追加し、allowlistでチームメンバーを登録することで、複数人でClaude Codeセッションを共有できます。コードレビューの依頼やバグ調査の指示など、チームのコミュニケーションツールとして活用できます。

fakechatで事前に動作確認

本番のTelegramやDiscordを設定する前に、fakechatデモで動作を確認できます。

bash
# プラグインのインストール(Claude Code内で実行)
/plugin install fakechat@claude-plugins-official

# Channels付きで再起動
claude --channels plugin:fakechat@claude-plugins-official

ブラウザで http://localhost:8787 を開くと、チャットUIが表示されます。メッセージを入力するとClaude Codeセッションに届き、Claudeの返信がブラウザに表示されます。外部サービスの認証が不要なので、Channelsの動作を手軽に体験できます。

Enterprise向けの設定

プラン デフォルトの動作
Pro / Max(組織なし) Channels利用可能。ユーザーが--channelsでセッションごとにオプトイン
Team / Enterprise 管理者が明示的に有効化するまでChannelsは無効

Team/Enterpriseプランの管理者は、以下のいずれかの方法でChannelsを有効化できます。

  • claude.ai → Admin settings → Claude Code → Channels から有効化
  • managed settingschannelsEnabledtrueに設定

有効化後、組織のユーザーは--channelsフラグを使ってセッションにチャネルを追加できるようになります。

まとめ

Claude CodeのChannels機能を使うことで、TelegramからClaude Codeセッションにリアルタイムでメッセージを送信し、双方向のコミュニケーションが可能になります。

セットアップの要点を振り返ります。

  1. BotFatherでTelegramボットを作成してトークンを取得
  2. プラグインをインストールして/telegram:configureでトークンを設定
  3. --channelsフラグ付きで起動してペアリングを完了
  4. allowlistポリシーに変更してセキュリティを確保

現在はResearch Preview段階のため、仕様が変更される可能性があります。最新情報は公式ドキュメントを確認してください。

問題報告やフィードバックはClaude Code GitHubリポジトリで受け付けています。

もっと読む他の技術記事も読む